Quão bem conhece Linux/Docker?
Data Engineer
O que é shuffle no Spark e para que serve?
Como gerir o shuffle no Spark (particionamento, broadcast join, etc.)?
O que o formato Iceberg traz em comparação com o Parquet comum?
Conhece expressões de tabela comuns (CTE)? Dê um exemplo de uso.
O que é estatística no contexto de SGBDs e otimização de consultas?
Como encontrar uma substring numa coluna específica de um ficheiro de log no Linux (por exemplo, a data na terceira coluna)?
[nome] falou sobre sua experiência com diferentes SGBDs, até que ponto teve que se aprofundar na otimização e nos detalhes internos.
Detalhe o algoritmo de captura de incremento da fonte para que nada seja perdido ao alterar a frequência de carregamento.
Como organizar a leitura de uma mesma mensagem do Kafka por vários consumidores diferentes (fan-out)?
Como resolver o problema quando o processo de leitura pode ver um estado intermédio (inconsistente) da tabela durante um ETL de múltiplas etapas (delete+insert) no Iceberg?
O que é uma "tupla morta" (dead tuple)?
Como comparar a tabela original ("live") e a tabela de destino se a fonte está constantemente a mudar?
Como estão relacionadas as partições do Spark e as partições nas tabelas (por exemplo, no Iceberg)?
Fale sobre as melhores práticas de utilização de índices - quando e com que frequência usá-los.
O que é Spark JDBC e como carregar eficientemente uma grande tabela através dele?
Como detectar desequilíbrios de dados (data skew) no Spark?
O que é o log de transações (WAL) em um SGBD e por que é necessário?
Foi utilizado o método de comparação de hashes de registos para calcular a diferença entre a fonte e a tabela de destino?
Para que servem cache e persist no Spark?