Data Engineer
¿Para qué necesitabas Data Vault en general?
En la pantalla mostrada hay dos estructuras de datos; ¿en cuál de ellas la búsqueda del valor 2 será más rápida y por qué?
¿Has tenido experiencia trabajando con Table Engine Join en ClickHouse?
¿Cómo evaluar la configuración para transferir un terabyte de datos de PostgreSQL a ClickHouse?
¿Qué es RDD en Apache Spark y en qué se diferencia de otras abstracciones de Spark?
¿Qué grupos de operadores SQL conoces? ¿A qué pertenecen?
desde 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( ... )
Resultado final: | customer_id | gap_days | |-------------|----------| | 1 | 123 | | 2 | 120 | con cte como( seleccionar order_id, customer_id, order_dt, lag(order_dt) sobre(partición por customer_id ordenar por order_dt) como prev_order_ft, datediff(día, prev_order_ft, order_dt) como gap_days de Orders ) seleccionar customer_id, max(gap_days) como gap_days de cte donde gap_days > 60 grupo por customer_id
¿Qué tipo de tipificación se utiliza en Python: estática o dinámica?
¿Cómo organizar la lectura de un mismo mensaje de Kafka por varios consumidores diferentes (fan-out)?
¿En qué equipo y bajo qué liderazgo te sientes más cómodo trabajando?
¿Cuál fue tu papel en un equipo de 4 personas y cómo ves tu carrera en 3-4 años, qué metas te propones?
¿Cómo cargar datos desde Kafka a ClickHouse a través de streaming para informes en tiempo real?
Cuente su experiencia de migración de Spring Boot 2 a Spring Boot 3
¿Cómo guardar un JSON en una carpeta (en el contexto de Airflow DAG)?
¿Cómo crear múltiples tareas iguales en Airflow en paralelo (por ejemplo, cargar muchos archivos iguales)?
¿En qué casos se aplica la normalización y en cuáles la desnormalización?
¿Qué tecnologías utilizaste para cargar los datos en Parquet, y qué mecanismos se usaron para obtener y cargar los datos?
¿Qué es la versionación semántica? ¿Cuándo aumentar major, minor, patch?
¿Has trabajado con funciones de ventana? ¿Qué tipos de funciones de ventana conoces?