Sobes.tech

Data Engineer

Какво е Materialized View и как се различава от обикновен изглед?

Middle
FOM GROUP
33

Какво се случи и как да възстановите работата?

Junior
01.tech
33

На какви проекти на Scala сте работили преди? Споделете конкретни задачи и постижения в тази технология.

Junior
01.tech
33

Как написа DAG и задачите в Airflow — ръчно или с шаблони?

Middle
МВидеоМВидео
33

Как да изведете последното пълно име за всеки клиент, ако е известна само началната дата (крайната дата не е известна)?

Middle
СБЕРСБЕР
33

Какво е семантично версиониране? Кога да увеличаваме major, minor, patch?

Senior
ИП Ганус Александр Андреевич
33

Кои магически методи на Python трябва да се вземат предвид?

Middle
МТСМТС
33

С зависимости между работи, между DAG — използвахте сензори, за да се стартират няколко работи една след друга?

Middle
МВидеоМВидео
33

Как организирате проектите си? Пишете README или нещо друго?

Middle
ютэйр
33

Кога е подходящ ThreadPoolExecutor?

Middle
FOM GROUP
33

Получихте задача с номер ABC. Какъв е вашият ред на действия в Git при започване на работа?

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

Имал ли си ad-hoc задачи въпреки наличието на ясен технически задание, и как се отнасяш към ad-hoc заявки и промени в приоритетите?

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

от interview.utils импортирайте get_clickhouse_client от airflow импортирайте DAG от airflow.operators.python импортирайте PythonOperator от airflow.sensors.external_task импортирайте ExternalTaskSensor от datetime импортирайте datetime импортирайте pandas като pd импортирайте clickhouse_driver импортирайте os CLICKHOUSE_CLIENT = get_clickhouse_client() default_args = { "start_date": datetime(2024, 1, 1) } с DAG( dag_id="datamarts.daily_revenue_per_country", default_args=default_args, schedule_interval="@daily", catchup=False ) като 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

Имаме таблица с клиенти (id, име, адрес и т.н.), продукти (id, име и т.н.), движение на стоки (тук имаме id на клиента, продукт, дата, количество, сума), трябва да намерим кои продукти са продадени на 1 януари, само уникалните, и също така да покажем името на купувача и...

Middle
СБЕРСБЕР
32

Как да сравним оригиналната („на живо“) и целевата таблица, ако източникът постоянно се променя?

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

Подробно опишете алгоритъма за улавяне на инкремента от източника, за да не се губи нищо при промяна на честотата на зареждане.

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

Как са свързани партициите на Spark и партициите в таблиците (например в Iceberg)?

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

Кога може да се използва семейството формати CSV?

Middle
AstonAston
32

Как да решим проблема, когато процесът на четене може да види междинното (несъответстващо) състояние на таблицата по време на многостепенно ETL (delete+insert) в Iceberg?

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

Как да приложа функция към всички редове или елементи в pandas?

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