Data Engineer
Kendinizden bahsedin: deneyimler, görevler, özellikler veya gurur duyduğunuz başarılar.
FastAPI ile ilgili deneyiminiz var mı?
Toplamda Spark ile ne kadar süre çalıştınız ve ne kadar derinlemesine dahil oldunuz?
dict1 = { (1, 2), [3, 4, 5] : 0 } var = 1, 2
Son 2,5 yılda şirkette ilginç bir görevden bahsedin, örneğin ClickHouse ile ilgili.
Hangi durumda sözlükte arama en kötü duruma kadar gerileyebilir?
Sorgulama uzun sürdüğünde ve tam tarama yaptığında optimizasyon sorunlarını nasıl çözdünüz? Yeni böyle bir göreve nasıl yaklaşırdınız?
Kullanıcı başına mevcut ve önceki iki günün toplam siparişlerinin hareketli ortalamasını nasıl eklerim?
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( "INSERT INTO raw.transactions (transaction_id, user_id, amount, created_at) VALUES", rows ) def build_aggregate_view(): query = """ INSERT INTO datamarts.daily_revenue_per_country SELECT toDate(r.created_at) as event_date, u.country, sum(r.amount) as total_revenue FROM raw.transactions r LEFT JOIN core.userMetadata u ON r.user_id = u.UserId WHERE toDate(r.created_at) = '{}' GROUP BY event_date, u.country """.format(datetime.now().strftime("%Y-%m-%d")) CLICKHOUSE_CLIENT.execute(query) 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" ) extract = PythonOperator( task_id="extract", python_callable=extract_from_s3, provide_context=True ) load = PythonOperator( task_id="load", python_callable=load_to_raw_table, provide_context=True ) aggregate = PythonOperator( task_id="aggregate", python_callable=build_aggregate_view ) transactions_sensor >> extract >> load >> aggregate
Airflow'da depends_on_past parametresi ne yapar?
Genel olarak Data Vault'a neden ihtiyacınız vardı?
Çözümlediğiniz çoğaltma yapılandırma görevi hakkında bilgi verin.
Kayıtlardaki hash karşılaştırma yöntemi, kaynak ve hedef tablo arasındaki farkı hesaplamak için kullanıldı mı?
Veri kalitesi sınırı tetiklendiğinde ne oluyordu: uyarı, çökme, yeniden başlatma?
ETL ve ELT yaklaşımlarını karşılaştırın: fark nedir ve her biri ne zaman kullanılır?
1C ile nasıl çalıştılar: verileri doğrudan veritabanından mı alıyorlardı, yoksa bir iletişim hattı veya başka bir yöntemle mi?
Hangi veritabanlarıyla çalıştınız? MongoDB nasıl çalışır ve nasıl ölçeklenir?
Kayıt zaten mevcut olduğunu ve tekrar kaydetmeye gerek olmadığını nasıl belirlediniz?
NULL artı 5 — kaç olur?
Spark'ta tek bir Parquet dosyasından verileri paralel okuyabilir miyiz, yoksa sadece bir görevde bir çekirdek mi kullanılır?