Use o Data Integration do DataWorks para sincronizar grandes volumes de dados em lote do PolarDB for Xscale (PolarDB-X) para o Alibaba Cloud Elasticsearch (ES) em poucos minutos.
Como funciona
O Data Integration do DataWorks usa um grupo de recursos exclusivo como mecanismo de execução. Esse grupo conecta-se à instância do PolarDB-X e ao cluster do Elasticsearch por meio de uma Virtual Private Cloud (VPC), recupera os registros da tabela de origem e os grava no índice ES de destino em uma única execução em lote. A instância do PolarDB-X, o cluster do ES e o workspace do DataWorks devem compartilhar a mesma região e fuso horário. Assim, o grupo de recursos alcança ambos os endpoints sem latência entre regiões ou discrepâncias de carimbo de data/hora.
Limitações
Somente clusters do Alibaba Cloud Elasticsearch são compatíveis como destinos de sincronização. Clusters do Elasticsearch autogerenciados não têm suporte.
A instância do PolarDB-X, o cluster do ES e o workspace do DataWorks devem estar na mesma região.
A instância do PolarDB-X, o cluster do ES e o workspace do DataWorks devem estar no mesmo fuso horário. Diferenças de fuso horário causam desvios nos campos de carimbo de data/hora dos dados sincronizados.
Pré-requisitos
Antes de começar, verifique se você tem:
Uma instância do PolarDB-X com dados de source
Um cluster do Alibaba Cloud Elasticsearch com Auto Indexing ativado. Consulte Criar um cluster do Alibaba Cloud Elasticsearch e Configurar o arquivo YML
Um workspace do DataWorks. Consulte Criar um workspace
Faturamento
Para obter informações sobre preços de clusters do Elasticsearch, consulte Itens faturáveis do Elasticsearch.
Para obter informações sobre preços de grupos de recursos exclusivos, consulte Faturamento de grupos de recursos exclusivos para Data Integration (assinatura).
Etapa 1: Preparar os dados de source
Insira os dados que deseja sincronizar na instância do PolarDB-X 1.0. Para sintaxe SQL, consulte Operações básicas de SQL.
A figura a seguir mostra os dados de teste usados neste tutorial.Operações básicas de SQL

Etapa 2: Adquirir e crie um grupo de recursos exclusivo
Um grupo de recursos exclusivo executa o trabalho de sincronização em lote e garante uma transferência de dados rápida e estável. Após adquirir o grupo de recursos, anexe-o às VPCs das instâncias do PolarDB-X e do Elasticsearch e associe-o ao seu workspace do DataWorks.
Faça login no console do DataWorksconsole do DataWorks.
Na barra de menus superior, selecione uma região. No painel de navegação à esquerda, clique em Resource Group.
Na aba Resource Groups, clique em Create Resource Group > Data Integration Resource Group.
Na página DataWorks Exclusive Resources (Subscription), defina Resource Type como Exclusive Resource Group For Data Integration, insira um nome e clique em Buy Now. Para mais detalhes, consulte Etapa 1: Criar um grupo de recursos exclusivo para Data Integration.
-
Na coluna Actions do grupo de recursos criado, clique em Network Settings para anexar uma VPC. O grupo de recursos precisa conectar-se às VPCs das instâncias do PolarDB-X e do Elasticsearch. Anexe o grupo de recursos à VPC, Zone e vSwitch de cada instância. Para consultar os detalhes da VPC de uma instância, consulte Visualizar as informações básicas de uma instância do Elasticsearch. Para mais detalhes, consulte Anexar uma VPC.
ImportanteApós anexar a VPC, adicione o bloco CIDR da vSwitch às listas de permissões de acesso privado das instâncias do PolarDB-X e do Elasticsearch. Consulte Configurar uma lista de permissões de acesso público ou privado para uma instância do Elasticsearch.
Este tutorial usa uma conexão VPC. Para sincronizar pela Internet, consulte Configurar uma lista de permissões de endereços IP .
No canto superior esquerdo, clique no ícone de voltar para retornar à página Resource Groups.
Localize o grupo de recursos e clique em Attach Workspace na coluna Actions para associá-lo ao workspace de destino. Para mais detalhes, consulte Etapa 2: Associar o grupo de recursos exclusivo para Data Integration a um workspace.
Etapa 3: Adicionar fontes de dados
Adicione as fontes de dados do PolarDB-X e do Elasticsearch no Data Integration do DataWorks.
-
Acesse a página Data Integration.
Faça login no console do DataWorksconsole do DataWorks.
No painel de navegação à esquerda, clique em Workspace.
Localize seu workspace e escolha Shortcuts > Data Integration na coluna Actions.
No painel de navegação à esquerda, clique em Data Source.
Clique em Add Data Source.
Pesquise e selecione DRDS.
Na página Add DRDS Data Source, preencha os parâmetros de conexão e execute o teste de conectividade. Após a aprovação no teste, clique em Complete. Para detalhes sobre os parâmetros, consulte Adicionar uma fonte de dados do PolarDB-X.
Adicione a fonte de dados do Elasticsearch da mesma maneira. Consulte Adicionar uma fonte de dados do Elasticsearch.
Etapa 4: Configure e execute uma tarefa de sincronização em lote
A tarefa de sincronização em lote é executada no grupo de recursos exclusivo. Esse grupo lê os dados da source PolarDB-X e os grava no índice do Elasticsearch.
Este tutorial usa a interface visual sem código no Data Development legado (DataStudio) . Para usar 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 console do DataWorksconsole do DataWorks.
No painel de navegação à esquerda, clique em Workspaces.
Na coluna Actions do seu workspace, escolha Quick Access > Data Development.
-
Crie uma tarefa de sincronização em lote.
No painel de navegação à esquerda, vá para a aba Data Development. Clique no ícone
e escolha New > Business Flow. Crie um fluxo de negócios conforme solicitado.Clique com o botão direito no fluxo de negócios e escolha Create Node > Batch Synchronization.
Na caixa de diálogo Create Node, insira um nome e clique em Confirm.
-
Configure a rede e os recursos.
Na seção Source, defina Source como DRDS e Data Source como o nome da sua fonte de dados do PolarDB-X.
Na seção Resource Group, selecione o grupo de recursos exclusivo criado.
Na seção Destination, defina Destination como Elasticsearch e Data Source como o nome da sua fonte de dados do Elasticsearch.
Clique em Next.
-
Configure a tarefa de sincronização.
Na seção Source, selecione a tabela de source.
Na seção Destination, configure os parâmetros de destino.
-
Na seção Field Mapping, mapeie os Source Fields para os Target Fields. Neste exemplo, os campos de source permanecem inalterados e apenas os campos de destino são personalizados. À direita de Destination Field, clique no ícone
e insira as definições dos campos:{"name":"Name","type":"text"} {"name":"Platform","type":"text"} {"name":"Year_of_Release","type":"date"} {"name":"Genre","type":"text"} {"name":"Publisher","type":"text"} {"name":"na_Sales","type":"float"} {"name":"EU_Sales","type":"float"} {"name":"JP_Sales","type":"float"} {"name":"Other_Sales","type":"float"} {"name":"Global_Sales","type":"float"} {"name":"Critic_Score","type":"long"} {"name":"Critic_Count","type":"long"} {"name":"User_Score","type":"float"} {"name":"User_Count","type":"long"} {"name":"Developer","type":"text"} {"name":"Rating","type":"text"}Para a lista completa de parâmetros de destino, consulte Configurar uma tarefa de sincronização offline na interface visual sem código.
Na seção Channel Control, configure os parâmetros do canal.
-
Execute a tarefa. Quando a tarefa for concluída com êxito, o log conterá a mensagem
Shell run successfully!.(Opcional) Clique em Scheduling Configuration no lado direito da página para configure um agendamento recorrente. Consulte Configuração de agendamento.
Na barra de ferramentas, clique no ícone Save.
-
Clique no ícone Submit para envie a tarefa.
Se você configurou um agendamento, a tarefa será executada automaticamente nos horários programados.
Para execute a tarefa imediatamente, clique no ícone Run na barra de ferramentas.
Etapa 5: Verifique os resultados da sincronização
Faça login no console do Kibana da sua instância do Elasticsearch. Consulte Fazer login no console do Kibana.
No painel de navegação à esquerda, clique em Dev Tools.
-
No Console, execute a seguinte consulta para contar os documentos sincronizados. Compare esse número com a contagem de linhas da sua tabela de source para confirme se todos os registros foram transferidos.
GET drdstest/_search { "query": { "match_all": {} } }Se o comando for bem-sucedido, o seguinte resultado será retornado.

-
Execute a seguinte consulta para filtrar documentos por um valor de campo específico:
GET drdstest/_search { "query": { "term": { "Publisher.keyword": { "value": "Nintendo" } } } }Se o comando for executado com êxito, a seguinte saída será retornada.

Próximos passos
Para sincronizar dados de forma incremental ou em tempo real, consulte Criar uma tarefa de sincronização em tempo real para sincronizar dados com o Elasticsearch.
Para sincronizar um banco de dados inteiro de uma só vez, consulte Criar uma tarefa de sincronização em lote para sincronizar todos os dados de um banco de dados com o Elasticsearch.