Este tópico descreve como sincronizar em lote uma única tabela do EMR Hive para o MaxCompute, abordando as melhores práticas para configuração da fonte de dados, conectividade de rede e configuração de tarefas.
Contexto
Baseado no Hadoop, o Hive é uma ferramenta de data warehouse usada para armazenar, consultar e analisar dados em grande escala. O Hive mapeia arquivos de dados estruturados para uma tabela de banco de dados e fornece recursos de consulta SQL ao converter instruções SQL em jobs MapReduce. Use o Data Integration para sincronizar dados entre o Hive e outras fontes de dados.
Pré-requisitos
Adquira um serverless resource group.
Crie fontes de dados do Hive e do MaxCompute. Para mais informações, consulte Configure a data source.
-
Estabeleça conectividade de rede entre o grupo de recursos e a fonte de dados. Para mais informações, consulte Overview of network connectivity solutions.
NotaAo conectar-se a um cluster EMR a partir de um grupo de recursos exclusivo pela internet pública, adicione regras ao grupo de segurança do cluster EMR. Essas regras devem permitir tráfego de entrada do EIP do grupo de recursos exclusivo para as portas necessárias do cluster EMR, como 10000, 9093 e 8020.
Limitações
Não há suporte para sincronização de dados da source para tabelas externas do MaxCompute.
Procedimento
Etapa 1: Criar um nó e configurar a tarefa
Para obter instruções sobre como criar e configurar um nó na Codeless UI, consulte Configure a task in the Codeless UI.
Etapa 2: Configurar a fonte e o destino dos dados
Configurar a fonte de dados (Hive)
A fonte de dados é uma tabela do Hive. A tabela a seguir descreve os principais parâmetros.
|
Parâmetro |
Descrição |
|
Hive Read Method |
Nota
O método HDFS é mais eficiente. O método JDBC gera um programa MapReduce, o que resulta em menor desempenho. O método HDFS não oferece suporte a filtragem condicional nem à leitura de dados de uma view. Escolha o método que melhor atenda às suas necessidades. |
|
Table |
Selecione a tabela do Hive a ser sincronizada. Recomendamos que a tabela tenha o mesmo schema nos ambientes de desenvolvimento e produção da fonte de dados do Hive. Nota
A UI exibe a lista de tabelas e schemas do ambiente de desenvolvimento da sua fonte de dados do Hive. Se as definições da tabela diferirem entre os ambientes de desenvolvimento e produção, a tarefa poderá ser configurada corretamente, mas falhar no ambiente de produção com um erro como 'table not found' ou 'column not found'. |
|
Parquet schema |
Se a tabela do Hive estiver armazenada no formato Parquet, configure o schema Parquet correspondente. |
Configurar o destino dos dados (MaxCompute)
O destino dos dados é uma tabela do MaxCompute. A tabela a seguir descreve os principais parâmetros.
Para parâmetros não descritos na tabela a seguir, use os valores padrão.
|
Parâmetro |
Descrição |
|
Tunnel Resource Group |
Recurso de transferência de dados do MaxCompute, também conhecido como cota de túnel. Por padrão, 'public transport resources' vem selecionado, representando a cota gratuita do MaxCompute. Se sua cota de túnel exclusiva ficar indisponível devido a expiração ou pagamento em atraso, a tarefa alternará automaticamente para os recursos de transporte públicos durante a execução. |
|
Table |
Selecione a tabela de destino do MaxCompute. Ao usar um workspace padrão do DataWorks, certifique-se de que exista uma tabela do MaxCompute com o mesmo nome e schema nos ambientes de desenvolvimento e produção. Você também pode clicar em Generate Destination Table Schema. Essa ação cria automaticamente uma tabela e permite editar manualmente a instrução CREATE TABLE. Nota
Observe o seguinte:
|
|
Partition Information |
Para tabelas particionadas, especifique valores para as colunas de partição.
|
|
Write Method |
Especifique se deseja sobrescrever os dados existentes na tabela de destino ou anexar novos dados. |
Etapa 3: Configurar e validar a tarefa
Mapeamento de campos: Geralmente, Map Fields with the Same Name ou Map Fields in the Same Line é suficiente. Se a ordem ou os nomes dos campos na source e no destino forem diferentes, ajuste os mapeamentos manualmente.
Controle de canal: Defina Policy for Dirty Data Records para rejeitar dados sujos e garantir a qualidade dos dados. Inicialmente, use os valores padrão para os demais parâmetros.
Etapa 4: Depurar e executar a tarefa
No lado direito da página de configuração do nó de sincronização em lote, clique em Run Configuration. Defina o Resource Group e os Script Parameters para a execução de depuração. Em seguida, clique em Run na barra de ferramentas superior para testar o pipeline de sincronização.
-
No painel de navegação à esquerda, clique em
e, em seguida, clique em
à direita de Personal Directory para criar um arquivo com extensão .sql. Execute a seguinte instrução SQL para consultar e verificar os dados na tabela de destino.NotaPara consultar dados dessa forma, vincule o projeto do MaxCompute de destino como recursos de computação para o DataWorks. Consulte bind the destination MaxCompute project as computing resources for DataWorks.
No lado direito do editor de arquivos
.sql, clique em Run Configuration, especifique o Type da fonte de dados, os Computing Resources e o Resource Group. Em seguida, clique em Run na barra de ferramentas superior.
SELECT * FROM <your_maxcompute_table> WHERE pt=<your_partition> LIMIT 20;
Etapa 5: Configurar o agendamento e publicar a tarefa
No lado direito da tarefa de sincronização em lote, clique em Scheduling Settings. Configure os parâmetros para execuções periódicas conforme descrito em Scheduling configuration. Depois, clique em Publish na barra de ferramentas superior. No painel exibido, siga as instruções na tela para publish the task.