Data Engineer
Onde é possível ver os logs das tarefas no Airflow?
CREATE TABLE orders ( driver_id varchar, city varchar, order_id varchar ); -- Obter os 10 principais motoristas por número de pedidos em cada cidade
Dadas duas tabelas t1 e t2. A tarefa é listar todos os tipos de joins que conhece e o resultado da consulta select * from t1 <join> t2 on t1.t = t2.t para cada um deles. |t1.t| ------ 1 2 4 null ------ |t2.t| ------ 1 3 null null
Onde a compressão de dados funciona melhor — no armazenamento por colunas ou por linhas, e por quê?
O que são índices em bancos de dados, para que servem e qual é a sua estrutura interna?
SELECIONA * DE tabela1 COMO t1 JUNÇÃO ESQUERDA tabela2 COMO t2 ON t1.date_start > t2.date_start d = { True: 42, 1: 2, 1.0: 100500 } print(d)
SELECT * FROM table1 AS t1 LEFT JOIN table2 AS t2 ON t1.date_start > t2.date_start
Análise de frequência de visitas a clubes de fitness Você trabalha como analista numa rede de clubes de fitness. Você possui informações sobre as visitas dos utilizadores e os tipos de assinatura que eles compram. É necessário analisar a eficácia do uso das assinaturas. Calcule para cada tipo de assinatura: • o número total de utilizadores que usaram esse tipo de assinatura. Considere apenas user_id únicos; • o número total de visitas por essa assinatura. Considere todas as visitas dos utilizadores com essa assinatura; • a proporção de utilizadores dessa assinatura em percentagem do total de utilizadores (arredondada para uma casa decimal). Para calcular a proporção, use a relação entre o número de utilizadores com essa assinatura e o total de utilizadores únicos. Cada utilizador pode ter apenas uma assinatura. Ordene o resultado por tipo de assinatura em ordem alfabética. Formato de entrada Tabela memberships: • membership_id (int) — identificador único da assinatura • user_id (int) — identificador único do utilizador • membership_type (text) — tipo de assinatura Tabela visits: • visit_id (int) — identificador único da visita • user_id (int) — identificador do utilizador • visit_date (timestamp) — data e hora da visita Os dados não contêm valores ausentes ou incorretos. Formato de saída A consulta deve retornar uma tabela com os seguintes campos na ordem: • membership_type (text) — tipo de assinatura • users_count (int) — número de utilizadores únicos com esse tipo de assinatura • total_visits (int) — número total de visitas desses utilizadores • user_share (numeric) — proporção de utilizadores com esse tipo de assinatura em percentagem do total, arredondada a uma casa decimal O resultado deve ser ordenado por tipo de assinatura em ordem alfabética.
Fala sobre o que sabes sobre armazenamento de dados em colunas e linhas. Quando e qual deve ser escolhido e por quê?
Fala sobre a tua experiência de trabalho: tarefas, stack de tecnologias
Qual é a diferença entre RANK() e DENSE_RANK()?
Threading, multiprocessing, asyncio: qual é a diferença e quando é melhor usar cada um?
Conte-nos sobre sua experiência com Greenplum, DBT e Data Vault. Por que mudou do modelo de floco de neve para o Data Vault?
Qual é a diferença entre um ciclo sobre uma string e um ciclo sobre uma tupla em Python? Quais tipos são básicos e como isso afeta o desempenho?
Como abordar a situação quando o negócio pede um relatório com visualização de dados sobre uma nova promoção?
Como trabalhavam com Impala?
Onde aparece o paralelismo no Airflow?
Quanto de memória adicional uma solução com dicionário requer, sem contar os dados retornados?
Como o Pandas lida com dados ausentes?
Por que o Pandas é melhor do que listas e dicionários normais em Python?