Sobes.tech

Data Engineer

Pracoval jste s FTP pro získání souborů nebo dat přes portál?

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

Raději pracujete jako expert individuálně nebo v týmu vývojářů?

Middle
СБЕРСБЕР
32

Co je to partice? Co je to sharding? Co je to replikace?

Middle+
СБЕРСБЕР
32

Tabulka notifications obsahuje pole status, jehož hodnoty jsou: 'sent', 'delivered', 'read'. Který z dotazů je správný? 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

Jak jsou orchestrace spuštění v DBT? Používáte Airflow?

Middle+
СБЕРСБЕР
32

S jakými zdroji dat jste pracovali? Jak přesně probíhala interakce se zdroji?

Middle
КИПР NDA(IGaming)
32

Úkol #3 Najděte zákazníky, u nichž je rozdíl mezi jejich objednávkami větší než 60 dní. Pro tyto zákazníky zobrazte maximální rozdíl (gap_days). Tabulka objednávek: | 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] | Finální výsledek: | customer_id | gap_days | |-------------|----------| | 1 | 123 | | 2 | 120 |

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

Co lze říci o správnosti následujícího dotazu? select * from sessions where ended_at is null and status != 'pending';

Junior
01.tech
32

Zpráva pro logistickou společnost Jste analytikem logistické společnosti, která zaznamenává operace na skladech. Musíte sestavit zprávu o efektivitě každého skladu. Pro každý sklad vypočtěte: • celkový počet operací (count_operations); • celkový počet zpracovaných zboží na skladě (sum_quantity); • průměrnou dobu zpracování operace (avg_processing_time), pouze pro operace s určeným časem (ne NULL), zaokrouhlenou na celé číslo; • maximální a minimální počet zpracovaných zboží v jedné operaci (max_quantity, min_quantity); • počet operací každého typu («dodávka», «odeslání», «přesun») ve zvláštních sloupcích: supply_operations, shipment_operations, transfer_operations. Filtrovat sklady, jejichž celkový počet operací je větší než 2 a průměrná doba zpracování nepřesahuje 60 minut. Seřadit výsledek podle ID skladu vzestupně. Formát vstupu Tabulka operations: • operation_id (int) — unikátní identifikátor operace • warehouse_id (int) — ID skladu • operation_type (text) — typ operace: «dodávka», «odeslání», «přesun»

Junior
01.tech
32

[jméno] se zeptal: Co je třeba přidat do motoru tabulek, aby byla data aktuální na všech uzlech clusteru?

Middle
Utair
32

Můžete vysvětlit partitioning v Oracle: k čemu se používá a jaké typy existují?

Middle
AstonAston
32

[jméno] se zeptal: Pole 'našli le lety' má pouze dvě hodnoty (ano/ne). Jak je nejlépe reprezentovat v ClickHouse? Jaký datový typ se interně používá pro Bool?

Middle
Utair
32

Pracoval jste s incidenty kvality dat?

Middle
СБЕРСБЕР
32

V jakých případech používat B-strom a hash indexy v PostgreSQL?

Senior
ТЕХНОНИКОЛЬ
32

Pracoval jste někdy s dekorátory v Pythonu? Co jsou a kde se používají?

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

Co je to plán dotazů? K čemu jsou potřeba?

Middle
Леман про
31

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

Middle
wb
31

Jaké jsou vlastnosti používání XCom v Airflow?

Middle
КИПР NDA(IGaming)
31

Jaký je rozdíl mezi ROWS BETWEEN a RANGE BETWEEN?

Middle
wb
31

Co je to index? Čím se liší clusterovaný index od neklausterizovaného?

Middle
СБЕРСБЕР
31
/32