Data Engineer
Жалпы алғанда, сізге Data Vault не үшін керек болды?
Көрсетілген экранда екі деректер құрылымы бар; қайсында 2 мәнін іздеу жылдамырақ болады және неге?
Сізде ClickHouse-те Table Engine Join-мен жұмыс істеу тәжірибесі бар ма?
PostgreSQL-ден ClickHouse-қа бір терабайт деректерді көшіру үшін конфигурацияны қалай бағалауға болады?
Apache Spark-те RDD деген не және ол басқа Spark абстракцияларынан қалай ерекшеленеді?
SQL операторларының қандай топтарын білесіз? Оларға не кіреді?
interview.utils-тен get_clickhouse_client-ті импорттау airflow-тен DAG-ты импорттау airflow.operators.python-тен PythonOperator-ды импорттау airflow.sensors.external_task-тен ExternalTaskSensor-ды импорттау datetime-ды импорттау pandas-ты pd ретінде импорттау clickhouse_driver-ды импорттау 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( ... )
Қорытынды нәтиже: | клиенттің ID-і | бос орындар саны | |----------------|----------------| | 1 | 123 | | 2 | 120 | with cte as( select order_id, customer_id, order_dt, lag(order_dt) over(partition by customer_id order by order_dt) as prev_order_ft, datediff(day, prev_order_ft, order_dt) as gap_days from Orders ) select customer_id, max(gap_days) as gap_days from cte where gap_days > 60 group by customer_id
Python-да қандай типтеу пайдаланылады — статикалық пе немесе динамикалық па?
Kafka-дан бір хабарламаны бірнеше тұтынушы (fan-out) қалай оқуға ұйымдастыруға болады?
Қай командада және қандай жетекшілік астында жұмыс істеу сіз үшін ең ыңғайлы?
4 адамнан тұратын командада сіздің рөліңіз қандай болды, ал 3-4 жылдан кейін мансабыңызды қалай көресіз, қандай мақсаттар қойдыңыз?
Kafka-дан ClickHouse-қа деректерді нақты уақыттағы есеп беру үшін ағынды түрде қалай жүктеуге болады?
Spring Boot 2-ден Spring Boot 3-ке көшу тәжірибеңіз туралы айтыңыз.
JSON-ды папкаға қалай жазуға болады (Airflow DAG контекстінде)?
Airflow-те бірдей бірнеше тапсырманы қалай бір уақытта жасауға болады (мысалы, бірдей файлдарды бірнеше рет жүктеу үшін)?
Қандай жағдайларда нормализация қолданылады, ал қандай жағдайларда денормализация?
Parquet, сіз деректерді жүктедіңіз — деректерді қабылдау және жүктеу үшін қандай технологиялар қолданылды және қандай механизмдер пайдаланылды?
Семантикалық нұсқалау дегеніміз не? Қашан негізгі, қосымша, патч нұсқаларын жаңарту керек?
Терезе функцияларымен жұмыс істедіңіз бе? Қандай терезе функцияларын білесіз?