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
ACID жана CAP теорияларынын айырмасы эмнеде?
`s ** 2` дегенди `s = [1, 2, 3]` тизмесине колдонсоңуз эмне болот?
ETL жана ELT ыкмаларын салыштырыңыз: айырмасы эмне жана кайсы учурда колдонулат?
1C менен иштешкенде: маалыматтарды түздөн-түз маалыматтар базасынан алдыңарбы, же шина аркылуу же башка жол мененби?
Кайсы маалыматтар базаларында иштедиңиз? MongoDB кантип иштейт жана кантип масштабдалып жатат?
Эмне үчүн жазуу мурда эле бар экенин жана кайра жазуу керек эместигин кандай аныктадыңыз?
NULL plus 5 — канча болот?
Sparkта бир эле Parquet файлынан маалыматтарды параллелдүү окуу мүмкүнбү, же бир гана ядро менен бир тапшырмадабы?
Маалыматтарды бириктирүү кайсы талааларда болду жана витриналарда дублдалары кантип жоюлду?
Sparkтеги spill жөнүндө эмне билесиз?
Apache Sparkтеги RDD эмне жана ал башка Spark абстракцияларынан эмнеге айырмаланат?
Кайсы Python китепканаларында иштедиңиз?
CROSS JOIN деген эмне жана анын натыйжасы кандай болот?
OpenMetadata менен кантип байланышып, эмне кылдыңыз?
@ синтаксиссиз декоратор түзүп жана колдонсо болотпу?
Маалыматтарды бөлүштүрүүнүн кайсы стратегиялары бар?
Эгер DAGтин графиги @daily болсо, ал чын эле качан ишке кирет?
Кандай бөлүм түрлөрү бар?
[Контекст] учурунда PostgreSQL-ден Spark-ка чоң таблицанын параллелдүү жүктөлүшү кандайча ишке ашырылган?