Sobes.tech
02 / 03

Data Engineer

Vai tev ir bijušas ad-hoc uzdevumi, neskatoties uz skaidru tehnisko uzdevumu, un kā tu raugies uz ad-hoc pieprasījumiem un prioritāšu maiņām?

Middle
Альфа-БанкАльфа-Банк
33

no interview.utils importēt get_clickhouse_client no airflow importēt DAG no airflow.operators.python importēt PythonOperator no airflow.sensors.external_task importēt ExternalTaskSensor no datetime importēt datetime importēt pandas kā pd importēt clickhouse_driver importēt os CLICKHOUSE_CLIENT = get_clickhouse_client() default_args = { "start_date": datetime(2024, 1, 1) } ar DAG( dag_id="datamarts.daily_revenue_per_country", default_args=default_args, schedule_interval="@daily", catchup=False ) kā 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( ... )

Middle
wb
32

Kā optimizēja tabulas un vaicājumus: daļas, indeksi, izvēles loģika?

Middle+
Лига Цифровой ЭкономикиЛига Цифровой Экономики
32

Kas ir Catalyst optimizators Spark un kādus konkrētus optimizācijas piemērus tas veic (piemēram, predicate pushdown)?

Middle+
ПАО Сбербанк
32

Kā salīdzināt sākotnējo („dzīvo”) un mērķa tabulu, ja avots pastāvīgi mainās?

Senior
ООО Блейз Аналитикс
32

Detalizēti algoritmu, kā no avota iegūt inkrementu, lai nekas netiktu zaudēts, mainot ielādes frekvenci.

Senior
ООО Блейз Аналитикс
32

Kā ir saistītas Spark sadalījumi un sadalījumi tabulās (piemēram, Iceberg)?

Senior
ООО Блейз Аналитикс
32

Kad var izmantot CSV formātu ģimeni?

Middle
AstonAston
32

Kā pandas piemēro funkciju visiem rindiņām vai elementiem?

Middle
газпромнефть снабжение
32

Kas ir mainīgais var, kāda veida tas ir?

Middle
МТСМТС
32

PostgreSQL ir nepieciešams optimizēt transakciju veiktspēju, izmantojot minimālo izolācijas līmeni, kurā: • paralēlās transakcijas var redzēt neizpildītas izmaiņas citām; • ir iespējami "netīri lasījumi" (dirty read). Kādu izolācijas līmeni jānorāda transakcijai, lai sasniegtu šo mērķi? netīrs lasījums nav iespējams PostgreSQL repeatable read read uncommitted read committed serializable

Junior
01.tech
32

Vai jūs izmantojāt Bridge un PIT tabulas Data Vault? Sniedziet piemēru un paskaidrojiet to mērķi.

Middle+
Лига Цифровой ЭкономикиЛига Цифровой Экономики
32

Vai esat strādājis ar FTP, lai saņemtu failus vai datus caur portālu?

Middle+
Лига Цифровой ЭкономикиЛига Цифровой Экономики
32

Vai tev patīk vairāk strādāt kā eksperts individuāli vai izstrādātāju komandā?

Middle
СБЕРСБЕР
32

Kas ir partizēšana? Kas ir sharding? Kas ir replikācija?

Middle+
СБЕРСБЕР
32

notifications tabulā ir lauks status, kura vērtības ir: 'sent', 'delivered', 'read'. Kurš vaicājums ir pareizs? select * from notifications where status like '%sent%' order by created_at desc limit 5 select * from notifications where status = 'read' order by created_at desc limit 5 select * from notifications order by status desc limit 5 select * from notifications where status not in ('sent', 'delivered') order by created_at asc limit 5 select * from notifications where status in ('sent', 'delivered') order by created_at desc limit 5

Junior
01.tech
32

Kā tiek organizēti izlaišanas DBT? Vai izmantojat Airflow?

Middle+
СБЕРСБЕР
32

Ar kuriem datu avotiem jums izdevās strādāt? Kā tieši notika sadarbība ar avotiem?

Middle
КИПР NDA(IGaming)
32

Uzdevums #3 Jāatrod klienti, kuru pasūtījumu starpība ir lielāka par 60 dienām. Šiem klientiem jāparāda maksimālā starpība (gap_days). Pasūtījumu tabula: | order_id | customer_id | order_dt | |----------|-------------|------------| | 1 | 1 | [phone] | | 2 | 1 | [phone] | | 3 | 1 | [phone] | | 4 | 1 | [phone] | | 5 | 2 | [phone] | | 6 | 2 | [phone] | | 7 | 3 | [phone] | Galarezultāts: | customer_id | gap_days | |-------------|----------| | 1 | 123 | | 2 | 120 |

Middle
ОстровокОстровок
32

Ko var teikt par šīs vaicājuma pareizību? select * from sessions where ended_at is null and status != 'pending';

Junior
01.tech
32
/32