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 бихонем, ё танҳо бо як ядро дар як вазифа?
Дар кадом майдонҳо ҳамҷоя кардани маълумотҳо сурат гирифт ва чӣ гуна такрорҳо дар витрина бартараф карда шуданд?
Шумо дар бораи spill дар Spark чӣ медонед?
RDD дар Apache Spark чист ва чӣ гуна аз дигар абстраксияҳои Spark фарқ мекунад?
Бо кадом китобхонаҳои Python кор кардаед?
CROSS JOIN чист ва натижасини қандай ҳисобланади?
Чӣ гуна ба OpenMetadata пайваст шудед ва бо он чӣ кардем?
Оё имкон дорад декораторро бе синтаксиси @ эҷод ва истифода бурдан мумкин аст?
Стратегияҳои тақсимоти маълумотҳо кадомҳоянд?
Агар тақвими DAG @daily бошад, воқеан кай оғоз мешавад?
Кадом намудҳои партисияҳо мавҷуданд?
Чӣ тавр ба таври техникӣ боргирии параллелии як ҷадвали калон аз PostgreSQL ба Spark дар ҳолати [контекст] амалӣ карда шуд?