Sobes.tech

Data Engineer

def extract_from_s3(**kwargs): df = pd.read_csv("s3://my-bucket/data/transactions_{}.csv".format(datetime.now().strftime("%Y-%m-%d"))) kwargs["ti"].xcom_push(key="df", value=df.to_dict()) def load_to_raw_table(**kwargs): df = pd.DataFrame(kwargs["ti"].xcom_pull(task_ids="extract", key="df")) rows = [tuple(r) for r in df[["transaction_id", "user_id", "amount", "created_at"]].to_numpy()] CLICKHOUSE_CLIENT.execute( "INSERT INTO raw.transactions (transaction_id, user_id, amount, created_at) VALUES", rows ) def build_aggregate_view(): query = """ INSERT INTO datamarts.daily_revenue_per_country SELECT toDate(r.created_at) as event_date, u.country, sum(r.amount) as total_revenue FROM raw.transactions r LEFT JOIN core.userMetadata u ON r.user_id = u.UserId WHERE toDate(r.created_at) = '{}' GROUP BY event_date, u.country """.format(datetime.now().strftime("%Y-%m-%d")) CLICKHOUSE_CLIENT.execute(query) transactions_sensor = S3KeySensor( task_id="transactions_sensor", bucket_key="data/transactions_{}.csv".format(datetime.now().strftime("%Y-%m-%d")), bucket_name="my-bucket", aws_conn_id="aws_default", timeout=600, poke_interval=30, mode="poke" ) extract = PythonOperator( task_id="extract", python_callable=extract_from_s3, provide_context=True ) load = PythonOperator( task_id="load", python_callable=load_to_raw_table, provide_context=True ) aggregate = PythonOperator( task_id="aggregate", python_callable=build_aggregate_view ) transactions_sensor >> extract >> load >> aggregate

Middle
wb
15

ACID жана CAP теорияларынын айырмасы эмнеде?

Middle
ОстровокОстровок
15

`s ** 2` дегенди `s = [1, 2, 3]` тизмесине колдонсоңуз эмне болот?

Middle
НЛМК
15

ETL жана ELT ыкмаларын салыштырыңыз: айырмасы эмне жана кайсы учурда колдонулат?

Middle
НЛМК
15

1C менен иштешкенде: маалыматтарды түздөн-түз маалыматтар базасынан алдыңарбы, же шина аркылуу же башка жол мененби?

Middle+
Лига Цифровой ЭкономикиЛига Цифровой Экономики
15

Кайсы маалыматтар базаларында иштедиңиз? MongoDB кантип иштейт жана кантип масштабдалып жатат?

Senior
ТЕХНОНИКОЛЬ
15

Эмне үчүн жазуу мурда эле бар экенин жана кайра жазуу керек эместигин кандай аныктадыңыз?

Middle+
Лига Цифровой ЭкономикиЛига Цифровой Экономики
15

NULL plus 5 — канча болот?

Middle
wb
15

Sparkта бир эле Parquet файлынан маалыматтарды параллелдүү окуу мүмкүнбү, же бир гана ядро менен бир тапшырмадабы?

Middle+
ПАО Сбербанк
15

Маалыматтарды бириктирүү кайсы талааларда болду жана витриналарда дублдалары кантип жоюлду?

Middle
АНО ЦИСМ
15

Sparkтеги spill жөнүндө эмне билесиз?

Middle
ОстровокОстровок
15

Apache Sparkтеги RDD эмне жана ал башка Spark абстракцияларынан эмнеге айырмаланат?

Middle
НЛМК
15

Кайсы Python китепканаларында иштедиңиз?

Middle
АНО ЦИСМ
15

CROSS JOIN деген эмне жана анын натыйжасы кандай болот?

Middle
RedLab
14

OpenMetadata менен кантип байланышып, эмне кылдыңыз?

Middle+
Лига Цифровой ЭкономикиЛига Цифровой Экономики
14

@ синтаксиссиз декоратор түзүп жана колдонсо болотпу?

Middle
ООО Лоция
14

Маалыматтарды бөлүштүрүүнүн кайсы стратегиялары бар?

Middle
ООО Лоция
14

Эгер DAGтин графиги @daily болсо, ал чын эле качан ишке кирет?

Middle
ОстровокОстровок
14

Кандай бөлүм түрлөрү бар?

Middle
ООО Лоция
14

[Контекст] учурунда PostgreSQL-ден Spark-ка чоң таблицанын параллелдүү жүктөлүшү кандайча ишке ашырылган?

Senior
ТЕХНОНИКОЛЬ
14
/32