Data Engineer
-- Znaleźć wszystkich pasażerów, którzy odbyli podróże dwa lub więcej dni z rzędu
Które zasoby są najbardziej wykorzystywane podczas Nested Loop Join?
CREATE TABLE core.localUserMetadata ON CLUSTER cluster_4x2 ( UserId String, Country String, LastLoginDate DateTime ) ENGINE = ReplikowanyReplacingMergeTree() ORDER BY (UserId); CREATE TABLE core.userMetadata ON CLUSTER cluster_4x2 ( UserId String, Country String, LastLoginDate DateTime ) ENGINE = Rozproszony('cluster_4x2', 'core', 'localUserMetadata', cityHash64(LastLoginDate));
Czym różni się RANK od DENSE_RANK?
Co zostanie przechwycone jako wynik, jeśli połączysz transakcje z klientami według client_id i date_start (bez BETWEEN)?
Czy musiałeś kiedyś pisać pakiety w Oracle?
Jak ORDER BY wpływa na tabelę ClickHouse i które klucze są lepsze do wyboru?
Wymień pięć poleceń Git.
Jak zwykle podchodzisz do budowy procesów ETL i ELT? W czym różnią się te procesy?
Co oznacza UNBOUNDED PRECEDING w granicach okna funkcji okna?
[imię] opowiedział o swoim doświadczeniu z różnymi systemami zarządzania bazami danych, jak głęboko musiał zagłębiać się w optymalizację i szczegóły wewnętrzne.
Jaka była Twoja architektura w projekcie? DWH czy coś innego?
z interview.utils import get_clickhouse_client from airflow import DAG from airflow.operators.python import PythonOperator from airflow.sensors.external_task import ExternalTaskSensor from datetime import datetime import pandas as pd import clickhouse_driver import os CLICKHOUSE_CLIENT = get_clickhouse_client() default_args = { "start_date": datetime(2024, 1, 1) } with DAG( dag_id="datamarts.daily_revenue_per_country", default_args=default_args, schedule_interval="@daily", catchup=False ) as dag: 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" ) 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( ... )
Wspomniałeś o procesach Docker, czy możesz powiedzieć więcej o tym, jak to u was zorganizowane?
Jak zorganizować odczyt tej samej wiadomości z Kafka przez kilku różnych konsumentów (fan-out)?
Czym jest shuffle w Spark i dlaczego ważne jest jego minimalizowanie?
dict1 = {(1,2, [3,4]): 0} var = 1,
Czy masz doświadczenie z Table Engine Join w ClickHouse?
Jak ocenić konfigurację do przeniesienia jednego terabajta danych z PostgreSQL do ClickHouse?
Jakie technologie były używane do pobierania i ładowania danych do Parquet, oraz jakie mechanizmy były stosowane?