Data Engineer
Milyen további Data Vault entitások kerültek használatra, például same-as links vagy transactional links, a hub, link és satellite mellett?
Milyen technikai mezőket használtak a satellites, links és hubs Data Vault-ban?
Használható-e a véletlenszerű eloszlás a Greenplum-ban, és mikor érdemes?
Kérdés #1 Hány rekordot ad vissza a lekérdezés az inner, left, right, full join segítségével két tábla összekapcsolásakor az id attribútum szerint? t1 t2 | id | | id | |-----| |-----| | 1 | | 1 | | 2 | | 1 | | 3 | | 3 | | 0 | | 5 | | NULL| | NULL| | NULL| inner: left: right: full outer:
Tárolták az eredményeket táblázatos nézetekből Parquet vagy más módon az S3-ban?
Miért keres új munkát?
Mit felel a Sorocsoport a Parquet fájl szerkezetében?
Miért fontolgatod most az új ajánlatokat?
Mennyit dolgozott összesen Spark-kal, és milyen mélyen merült el benne?
Írjon SQL-t a rendelés összegének halmozott összegének hozzáadásához felhasználónként és dátum szerint.
Mi az a CROSS JOIN és mi az eredménye a használatának?
Hogyan oldottad meg az optimalizációs problémákat, amikor a lekérdezés hosszú ideig tartott és teljes szkennelt? Hogyan közelítettél egy ilyen új feladathoz?
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
Mit csinál a depends_on_past paraméter az Airflow-ban?
Miért volt szükséged általában a Data Vault-ra?
Használta-e a rekordok hash összehasonlítási módszerét a forrás és a cél tábla közötti különbség kiszámítására?
Mi történik, ha alkalmazod a `s ** 2`-t a `s = [1, 2, 3]` listára?
1. Rendelések: - order_date datetime NEM NULL - user_id int NEM NULL - order_id int NEM NULL 2. Áruk: - order_id int NEM NULL - model int NEM NULL - cat_1 varchar(50) NEM NULL - price int NEM NULL - quantity int NEM NULL Értékek a cat_1-ben: - Ruházat - Cipő - Kozmetikumok - Otthoni termékek - Játékok Mutassa meg a rendelések számát és a "szükséges kategóriájú termékek számát a rendelésben" 2021-ben a "Ruházat" kategóriában és 2022-ben a "Cipő" kategóriában (eredmény: 2 sor. Mezők: év, termékek száma, rendelések száma) with cte as( select year(o.order_date) as year_orders, g.cat_1, count(distinct o.order_id) as count_orders, sum(g.quantity) as count_quan from Orders o join Goods g on o.order_id = g.order_id where g.cat_1 = 'Ruházat' and Year(o.order_date) = 2021 or g.cat_1 = 'Cipő' and Year(o.order_date) = 2022 group by year_orders, g.cat_1 ) select year_orders, count_quan, count_orders from cte
Milyen fájlformátumokkal dolgozott?
Milyen fizikai JOIN típusok léteznek a Spark-ben?