Data Engineer
Já trabalhou com Git? O que armazenava no Git?
Os ficheiros de troca — como eles afetam o desempenho? Quando mais podem ocorrer ficheiros de troca?
Tiveste alguma experiência com imagens Docker, configurando ambientes numa máquina virtual?
Como atualizar uma tabela no ClickHouse de forma que os utilizadores não percebam nada (substituição atómica)?
Você realizava as verificações de qualidade dos dados você mesmo, ou os requisitos vinham do negócio/cliente?
Por favor, conte-nos por que está interessado nesta vaga.
O que é normalização e desnormalização, quando são necessárias?
Como é que o Spark determina que uma tabela é suficientemente 'pequena' para um broadcast join (limite superior)?
Conte-nos sua experiência com Airflow (orquestrador). O que você usou?
Qual é a complexidade algorítmica da pesquisa num dicionário no pior caso?
O que deve fazer se quiser alterar o ramo para o qual o submódulo aponta? - Submódulos não suportam mudança de ramos - Eliminar o submódulo e adicioná-lo novamente com o ramo desejado - Alterar o ramo no submódulo e fazer um commit no repositório principal - Executar git checkout no ramo desejado no submódulo e registar as alterações no repositório principal - Executar git submodule update --branch especificando o novo ramo
Que consultas SQL escreves: verificações simples ou scripts complexos para armazéns de dados?
O que é uma CTE (Expressão de Tabela Comum)?
Você carregou dados do Spark para o S3 no formato Parquet, e depois do Parquet para o Greenplum — como é o processo de carregamento?
Quão realistas são os planos da empresa para construir um sistema de coleta, normalização e análise de dados?
Fala-me sobre particionamento. Quais operações interessantes tiveste que fazer?
Explique os cálculos preguiçosos e imediatos no Spark.
Relatório para a empresa logística Você é um analista de uma empresa logística que mantém registros de operações nos armazéns. Você precisa elaborar um relatório sobre a eficiência de cada armazém. Para cada armazém, calcule: • o número total de operações (count_operations); • o número total de produtos processados no armazém (sum_quantity); • o tempo médio de processamento de uma operação (avg_processing_time), considerando apenas operações com tempo especificado (não NULL), arredondado para o número inteiro mais próximo; • o número máximo e mínimo de produtos processados em uma única operação (max_quantity, min_quantity); • o número de operações de cada tipo («fornecimento», «expedição», «transferência») em colunas separadas: supply_operations, shipment_operations, transfer_operations. Filtre os armazéns cujo número total de operações seja maior que 2 e o tempo médio de processamento não ultrapasse 60 minutos. Ordene o resultado pelo ID do armazém em ordem crescente. Formato de entrada Tabela operations: • operation_id (int) — identificador único da operação • warehouse_id (int) — identificador do armazém • operation_type (text) — tipo de operação: «fornecimento», «expedição», «transferência»
Fala sobre bases de dados relacionais em geral — o que são?
Fala-me sobre o esquema de dados Data Vault 2.0 que projetaste