Para resolver a alta latência de consulta durante análises interativas de big data no Hadoop, sincronize os dados com um cluster do Alibaba Cloud Elasticsearch. O Elasticsearch retorna resultados em segundos para diversos tipos de consulta, especialmente consultas ad hoc. Este tópico descreve como usar o service Data Integration do DataWorks para sincronizar rapidamente grandes volumes de dados com um cluster do Alibaba Cloud Elasticsearch.
Contexto
O DataWorks é uma plataforma completa de desenvolvimento e governança de big data, construída sobre mecanismos de big data. Ele integra recursos como desenvolvimento de dados, agendamento de tarefas e gerenciamento de dados. Use as tarefas de sincronização do DataWorks para transferir rapidamente dados de várias fontes para o Alibaba Cloud Elasticsearch.
-
Fontes de dados suportadas incluem:
Bancos de dados da Alibaba Cloud (MySQL, PostgreSQL, SQL Server, MongoDB e HBase)
Alibaba Cloud PolarDB-X (atualizado a partir do DRDS)
Alibaba Cloud MaxCompute
Alibaba Cloud OSS
Alibaba Cloud Tablestore
Versões autogerenciadas de HDFS, Oracle, FTP, DB2 e outros tipos de banco de dados suportados
-
Cenários de uso:
Sincronização offline de big data para o Alibaba Cloud Elasticsearch. É possível sincronizar um banco de dados inteiro ou todos os dados de uma tabela específica. Para mais informações, consulte Offline synchronization of an entire MySQL database to Elasticsearch.
Sincronização em tempo real de big data para o Alibaba Cloud Elasticsearch. Este método suporta sincronização completa e incremental. Para mais informações, consulte Real-time synchronization of an entire MySQL database to Elasticsearch.
Pré-requisitos
-
Crie um cluster do Alibaba Cloud Elasticsearch e ative seu recurso de indexação automática. Para mais informações, consulte Create an Alibaba Cloud Elasticsearch cluster e Configure YML parameters.
NotaA sincronização de dados ocorre apenas com clusters do Alibaba Cloud Elasticsearch. Clusters Elasticsearch autogerenciados não são suportados.
Um workspace do DataWorks deve estar criado. Para mais informações, consulte Create a workspace.
Você deve possuir um cluster Hadoop contendo dados.
O cluster Hadoop, o cluster do Alibaba Cloud Elasticsearch e o workspace do DataWorks precisam estar na mesma região.
O cluster Hadoop, o cluster do Alibaba Cloud Elasticsearch e o workspace do DataWorks devem compartilhar o mesmo fuso horário. Caso contrário, diferenças de fuso horário podem causar discrepâncias entre os dados de origem e os dados sincronizados.
Faturamento
Para detalhes sobre as taxas de uma instância do Alibaba Cloud Elasticsearch, consulte Elasticsearch billable items.
Para informações sobre os custos de um grupo de recursos do Data Integration, consulte Resource group fees.
Procedimento
Etapa 1: Criar um grupo de recursos exclusivo
Para garantir uma transmissão de dados rápida e estável, adquira um grupo de recursos exclusivo para o Data Integration e associe-o a um workspace e a uma Virtual Private Cloud (VPC).
Faça login no DataWorks console.
Na barra de navegação superior, selecione uma região. No painel de navegação à esquerda, clique em Resource Groups.
Na aba Exclusive Resource Group, clique em .
-
Na página de compra DataWorks Exclusive Resources (Subscription), defina o Exclusive Resource Type como exclusive resource group for Data Integration, insira um nome para o grupo de recursos e clique em Buy Now.
Para mais informações, consulte Step 1: Purchase a resource group.
-
Localize o grupo de recursos exclusivo criado e clique em Network Settings na coluna Actions para associar o grupo de recursos a uma VPC. Para mais informações, consulte Bind a VPC.
NotaEste tópico utiliza um grupo de recursos exclusivo do Data Integration para sincronizar dados via VPC como exemplo. Para saber como sincronizar dados pela internet, consulte Configure an IP address whitelist.
O grupo de recursos exclusivo precisa estar conectado às VPCs dos clusters Hadoop e Elasticsearch para permitir a sincronização de dados entre eles. Portanto, associe o grupo de recursos exclusivo à Virtual Private Cloud (VPC), Zone e VSwitch tanto do cluster Hadoop quanto do cluster Elasticsearch. Para visualizar a VPC, a zona e o vSwitch do cluster Elasticsearch, consulte View the basic information of an Elasticsearch cluster.
ImportanteApós associar o grupo de recursos exclusivo a uma VPC, adicione o vSwitch CIDR Block às listas de permissões de acesso privado da VPC dos clusters Hadoop e Elasticsearch. Para mais informações, consulte Configure a public or private IP address whitelist for an Elasticsearch cluster.
No canto superior esquerdo da página, clique no ícone de voltar para retornar à página Resource List.
-
Encontre o grupo de recursos exclusivo criado e clique em Associate Workspace na coluna Actions para associar o grupo de recursos ao workspace de destino.
Para mais informações, consulte Step 2: Associate a workspace with the resource group.
Etapa 2: Adicionar fontes de dados
-
Acesse a página Data Integration.
Faça login no DataWorks console .
No painel de navegação à esquerda, clique em Workspace.
Localize o workspace desejado e escolha na coluna Actions.
No painel de navegação à esquerda, clique em Data Source.
-
Adicione uma fonte de dados HDFS.
Na página Data Sources, clique em Add Data Source.
Na caixa de diálogo Add Data Source, pesquise e selecione HDFS.
-
Na página Add HDFS Data Source, configure os parâmetros da fonte de dados.
Para mais informações, consulte Configure an HDFS data source.
Clique em Test Connectivity. Se Connected for exibido, o grupo de recursos está conectado à fonte de dados.
Clique em Complete.
De forma semelhante, adicione uma fonte de dados Elasticsearch. Para mais informações, consulte Elasticsearch data source.
Etapa 3: Executar uma tarefa de sincronização em lote
Uma tarefa de sincronização em lote é executada em um grupo de recursos exclusivo. Esse grupo obtém dados da source no Data Integration e os grava no cluster Elasticsearch de destino.
É possível configurar uma tarefa de sincronização em lote no modo assistente ou no modo script. Este tópico usa o modo assistente como exemplo. Para saber como utilizar o modo script, consulte Configure a task in script mode e Elasticsearch Writer.
As etapas a seguir são realizadas na página legacy Data Development (DataStudio).
-
Acesse a página Data Development.
Faça login no DataWorks console.
No painel de navegação à esquerda, clique em Workspace.
Na coluna Actions do workspace de destino, escolha .
-
Crie um nó de sincronização offline.
Na aba Data Development (
), escolha .Clique com o botão direito no workflow criado e escolha .
Na caixa de diálogo Create Node, insira um nome para o nó e clique em OK.
-
Configure a rede e os recursos.
Na seção Source, defina Source como HDFS e Data Source Name como o nome da fonte de dados HDFS que você deseja sincronizar.
Na seção Resource Group, selecione o grupo de recursos exclusivo.
Na seção Destination, defina Destination como Elasticsearch e Data Source Name como o nome da fonte de dados Elasticsearch.
Clique em Next.
-
Configure a tarefa.
Na seção Source, selecione a tabela que deseja sincronizar.
Na seção Destination, configure os parâmetros.
Na seção Field Mapping, configure os mapeamentos entre Source Column e Target Column.
Na seção Channel Control, configure os parâmetros do canal.
Para mais informações, consulte Configure a batch synchronization task in wizard mode.
-
Execute a tarefa.
(Opcional) Configure as propriedades de agendamento da tarefa. No painel à direita, clique em Properties e configure os parâmetros conforme necessário. Para mais detalhes sobre os parâmetros, consulte Scheduling configuration.
Na barra de ferramentas da aba de configuração do nó, clique no ícone Save.
-
Na barra de ferramentas da aba de configuração do nó, clique no ícone Commit.
Se você configurou propriedades de agendamento, a tarefa será executada periodicamente. Também é possível clicar no ícone Run na barra de ferramentas para executar a tarefa imediatamente.
Uma mensagem
Shell run successfully!no log de execução indica que a tarefa foi concluída com sucesso.
Etapa 4: Verificar o resultado
-
Faça login no console Kibana do seu cluster Alibaba Cloud Elasticsearch de destino.
Para mais informações, consulte Log on to the Kibana console.
No painel de navegação à esquerda, clique em Dev Tools.
-
No Console, execute o seguinte comando para visualizar os dados sincronizados.
POST /hive_esdoc_good_sale/_search?pretty { "query": { "match_all": {}} }Notahive_esdoc_good_saleé o valor especificado para o parâmetroindexno script de sincronização de dados.Se os dados foram sincronizados com sucesso, um resultado semelhante ao seguinte será retornado.
{ "took" : 6, "timed_out" : false, "_shards" : { "total" : 5, "successful" : 5, "skipped" : 0, "failed" : 0 }, "hits" : { "total" : 4, "max_score" : 1.0, "hits" : [ { "_index" : "hive_esdoc_good_sale", "_type" : "_doc", "_id" : "2018-08-21 00:00:00", "_score" : 1.0, "_source" : { "trans_num" : 3, "click_cnt" : 7, "category" : "Outerwear", "buyer_id" : "lilei", "trans_amount" : 500.6, "brand" : "Brand A" } }, { "_index" : "hive_esdoc_good_sale", "_type" : "_doc", "_id" : "2018-08-23 00:00:00", "_score" : 1.0, "_source" : { "trans_num" : 5, "click_cnt" : 4, "category" : "Outerwear", "buyer_id" : "jimmy", "trans_amount" : 100.2, "brand" : "Brand E" } }, { "_index" : "hive_esdoc_good_sale", "_type" : "_doc", "_id" : "2018-08-22 00:00:00", "_score" : 1.0, "_source" : { "trans_num" : 2, "click_cnt" : 3 } } ] } }