O Data Integration do DataWorks permite sincronizar grandes volumes de dados do MaxCompute para um cluster do Alibaba Cloud Elasticsearch no modo offline (em lote). Após a configuração da tarefa de sincronização, a transferência de dados geralmente é concluída em alguns minutos. Assim, os dados sincronizados ficam imediatamente disponíveis para busca de texto completo, consultas multidimensionais e análises estatísticas.
Pré-requisitos
Antes de começar, verifique se você tem:
Um projeto do MaxCompute. Para mais informações, consulte Criar um projeto do MaxCompute.
Um cluster do Alibaba Cloud Elasticsearch com Auto Indexing ativado. Para mais informações, consulte Criar um cluster do Alibaba Cloud Elasticsearch e Configurar o arquivo YML.
Um workspace do DataWorks. Para mais informações, consulte Criar um workspace.
As seguintes restrições se aplicam:
A sincronização de dados oferece suporte apenas a instâncias do Alibaba Cloud Elasticsearch. Não há suporte para clusters auto-gerenciados do Elasticsearch.
O projeto do MaxCompute, a instância do Elasticsearch e o workspace do DataWorks devem estar na mesma região.
Todos os três recursos devem estar no mesmo fuso horário. Diferenças de fuso horário causam timestamps incorretos após a sincronização de dados temporais.
Faturamento
Para obter preços de clusters do Elasticsearch, consulte Itens faturáveis do Elasticsearch.
Para obter preços de grupos de recursos exclusivos, consulte Faturamento de grupos de recursos exclusivos para Data Integration (assinatura).
Fontes de dados compatíveis
O Data Integration do DataWorks permite sincronizar dados das seguintes fontes para o Alibaba Cloud Elasticsearch:
Bancos de dados da Alibaba Cloud: ApsaraDB RDS for MySQL, ApsaraDB RDS for PostgreSQL, ApsaraDB RDS for SQL Server, ApsaraDB for MongoDB e ApsaraDB for HBase
Alibaba Cloud PolarDB for Xscale (PolarDB-X) (anteriormente DRDS)
Alibaba Cloud MaxCompute
Alibaba Cloud Object Storage Service (OSS)
Alibaba Cloud Tablestore
Bancos de dados auto-gerenciados: HDFS, Oracle, FTP, Db2, MySQL, PostgreSQL, SQL Server, MongoDB e HBase
Modos de sincronização compatíveis:
Offline (em lote): Sincronize um banco de dados ou tabela inteira. Consulte Criar uma tarefa de sincronização em lote para sincronizar todos os dados de um banco de dados para o Elasticsearch.
Tempo real: Sincronize dados completos e incrementais continuamente. Consulte Criar uma tarefa de sincronização em tempo real para sincronizar dados para o Elasticsearch.
O que será criado
Este tutorial cria os seguintes recursos:
Um grupo de recursos exclusivo para Data Integration, conectado à virtual private cloud (VPC) do seu cluster do Elasticsearch
Uma fonte de dados do MaxCompute e uma fonte de dados do Elasticsearch no Data Integration
Um nó de sincronização offline que lê do MaxCompute e grava no Elasticsearch
Etapa 1: Preparar os dados de source
Crie uma tabela no MaxCompute e importe dados. Para mais informações, consulte Criar tabelas e Importar dados para tabelas.
Este tutorial utiliza o seguinte esquema de tabela e dados:
Esquema da tabela

Dados de exemplo da tabela

Etapa 2: Adquirir e configure um grupo de recursos exclusivo
Um grupo de recursos exclusivo para Data Integration gerencia a transferência de dados entre a origem e o destino, garantindo throughput rápido e estável. Neste tutorial, o grupo de recursos se conecta ao seu cluster do Elasticsearch por meio de uma VPC.
Faça login no DataWorks consoleDataWorks consoleDataWorks console.
Na barra de navegação superior, selecione uma região. No painel de navegação à esquerda, clique em Resource Group.
Na aba Exclusive Resource Groups, clique em Create Legacy Resource Group > Data Integration Resource Group.
Na página de compra DataWorks Exclusive Resource (Subscription), defina Exclusive Resource Type como Exclusive Resource For Data Integration, insira um nome e clique em Buy Now. Para obter detalhes, consulte Etapa 1: Criar um grupo de recursos exclusivo para Data Integration.
-
Localize o grupo de recursos criado. Na coluna Actions, clique em Network Settings para anexar uma VPC. Para obter detalhes sobre como anexar uma VPC, consulte Anexar uma VPC.
ImportanteO grupo de recursos deve se conectar à VPC onde reside seu cluster do Elasticsearch. Associe o grupo de recursos à VPC, Zone e vSwitch do cluster do Elasticsearch. Para consultar esses valores, visualize Visualizar as informações básicas de um cluster. Após associar a VPC, adicione o vSwitch CIDR Block à lista de permissões de acesso interno da VPC da instância do Elasticsearch. Para mais informações, consulte Configurar uma lista de permissões de acesso público ou interno para uma instância do Elasticsearch.
Este tutorial sincroniza dados por meio de uma VPC. Para sincronizar pela Internet, consulte Configurar uma lista de permissões de endereços IP .
Clique no ícone de voltar no canto superior esquerdo para retornar à página Resource Group List.
Na coluna Operation do grupo de recursos, clique em Attach Workspace para associá-lo ao seu workspace de destino. Para obter detalhes, consulte Etapa 2: Associar o grupo de recursos exclusivo para Data Integration a um workspace.
Etapa 3: Adicionar fontes de dados
Adicione o MaxCompute e o Elasticsearch como fontes de dados no Data Integration do DataWorks.
-
Acesse a página Data Integration.
Faça login no DataWorks consoleDataWorks consoleDataWorks console.
No painel de navegação à esquerda, clique em Workspaces.
Na coluna Operation do seu workspace, escolha Quick Access > Data Integration.
No painel de navegação à esquerda, clique em Data Source.
-
Adicione uma fonte de dados do MaxCompute.
Na página Data Source List, clique em Add Data Source.
Pesquise e selecione MaxCompute.
Na caixa de diálogo Add MaxCompute Data Source, configure os parâmetros na seção Basic Information. Para obter detalhes, consulte Adicionar uma fonte de dados do MaxCompute.
Na seção Connection Configuration, clique em Test Connectivity. Confirme se o status exibe Connected.
Clique em Complete.
Adicione uma fonte de dados do Elasticsearch da mesma maneira. Para obter detalhes, consulte Adicionar uma fonte de dados do Elasticsearch.
Etapa 4: Configure e execute uma tarefa de sincronização de dados
A tarefa de sincronização utiliza o grupo de recursos exclusivo para ler dados do MaxCompute e gravá-los no Elasticsearch.
É possível configure a tarefa usando a interface sem código ou o editor de código. Este tutorial usa a interface sem código com o Data Development (DataStudio) legado . Para instruções sobre o editor de código, consulte Configurar uma tarefa de sincronização em lote usando o editor de código e Elasticsearch Writer .
-
Acesse a página Data Development.
Faça login no DataWorks consoleDataWorks consoleDataWorks console.
No painel de navegação à esquerda, clique em Workspaces.
Na coluna Operation do seu workspace, escolha Quick Access > Data Development.
-
Crie uma tarefa de sincronização em lote.
No painel de navegação à esquerda, escolha Create > Create Workflow.
Clique com o botão direito no novo workflow e escolha Create Node > Offline synchronization.
Na caixa de diálogo Create Node, defina o Name e clique em Confirm.
-
Configure a rede e o grupo de recursos.
Na seção Data Source, defina Source como MaxCompute (ODPS) e Data Source Name como sua fonte de dados do MaxCompute.
Na seção My Resource Group, selecione o grupo de recursos exclusivo criado.
Na seção Data Destination, defina Destination como Elasticsearch e Data Source Name como sua fonte de dados do Elasticsearch.
Clique em Next.
-
Configure as definições da tarefa. Para obter detalhes completos dos parâmetros, consulte Configurar uma tarefa de sincronização em lote usando a interface sem código.
Definição
Descrição
Data Source (origem)
Selecione a tabela de origem no MaxCompute
Data Destination
Configure o índice do Elasticsearch de destino e os parâmetros relacionados
Field Mapping
Mapeie cada Source Field para o Destination Field correspondente
Channel Control
Configure o paralelismo e os limites de largura de banda para a transferência de dados
-
Salve e execute a tarefa. Quando a tarefa for bem-sucedida, o log conterá
Shell run successfully!:(Opcional) Configure o agendamento. No painel de navegação à direita, clique em Properties e defina os parâmetros de agendamento. Para obter detalhes, consulte Configuração de agendamento.
Clique no ícone Save no canto superior direito.
Clique no ícone Submit. Se você configurou o agendamento, a tarefa será executada automaticamente conforme programado. Para executá-la imediatamente, clique no ícone Run.
2023-10-31 16:52:35 INFO Exit code of the Shell command 0 2023-10-31 16:52:35 INFO --- Invocation of Shell command completed --- 2023-10-31 16:52:35 INFO Shell run successfully! 2023-10-31 16:52:35 INFO Current task status: FINISH 2023-10-31 16:52:35 INFO Cost time is: 33.106s
Etapa 5: Verifique o resultado da sincronização de dados
Use o console do Kibana para confirme se os dados foram gravados no Elasticsearch e execute consultas de exemplo.
Faça login no console do Kibana da sua instância do Elasticsearch. Para obter detalhes, consulte Fazer login no console do Kibana.
Clique no ícone
no canto superior esquerdo e selecione Dev Tools.-
No Console, execute o seguinte comando para visualizar todos os documentos sincronizados.
odps_indexé o valor do campoindexdefinido na tarefa de sincronização. Se os dados forem sincronizados com sucesso, a resposta conterá os documentos correspondentes.
POST /odps_index/_search?pretty { "query": { "match_all": {} } } -
Execute o seguinte comando para recuperar apenas os campos
categoryebrand.POST /odps_index/_search?pretty { "query": { "match_all": {} }, "_source": ["category", "brand"] } -
Execute o seguinte comando para filtrar documentos em que
categorysejafresh produce.POST /odps_index/_search?pretty { "query": { "match": { "category": "fresh produce" } } } -
Execute o seguinte comando para ordenar os documentos por
trans_numem ordem decrescente.POST /odps_index/_search?pretty { "query": { "match_all": {} }, "sort": { "trans_num": { "order": "desc" } } }
Para obter mais exemplos e sintaxe de consulta do Elasticsearch, consulte o Elastic.co Help Center.
Perguntas frequentes
Problema: Um erro indica falha na conexão com a instância do Alibaba Cloud ES.
Solução:
-
Verifique se você selecionou o grupo de recursos criado na página Data Integration Resource Group Configuration antes de execute o script de sincronização.
Se sim, vá para a próxima etapa.
Se não, selecione o grupo de recursos criado na página Data Integration Resource Group Configuration, salve e execute o script.
-
Se o endpoint da instância do Alibaba Cloud ES usado no script não estiver na mesma VPC que o grupo de recursos, verifique se o endereço IP do grupo de recursos foi adicionado à lista de permissões da instância do ES.
Se sim, vá para a próxima etapa.
-
Se não, adicione o endereço IP do grupo de recursos à lista de permissões da instância do ES.
ImportanteSe você usar um endpoint privado, configure a VPC Private Access Whitelist para a instância na página Security da instância do ES. Se usar um endpoint público, configure a Public Endpoint Whitelist para a instância.
-
Verifique se o script de sincronização está configurado corretamente.
A configuração inclui o
endpoint(o endpoint privado ou público da instância do Alibaba Cloud ES),accessId(o nome de usuário para acessar a instância do ES, que é elastic por padrão) eaccessKey(a senha para acessar a instância do ES).