Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Computação
Elastic Cloud Server
Bare Metal Server
Auto Scaling
Image Management Service
Dedicated Host
FunctionGraph
Cloud Phone Host
Huawei Cloud EulerOS
Redes
Virtual Private Cloud
Elastic IP
Elastic Load Balance
NAT Gateway
Direct Connect
Virtual Private Network
VPC Endpoint
Cloud Connect
Enterprise Router
Enterprise Switch
Global Accelerator
Gerenciamento e governança
Cloud Eye
Identity and Access Management
Cloud Trace Service
Resource Formation Service
Tag Management Service
Log Tank Service
Config
Resource Access Manager
Simple Message Notification
Application Performance Management
Application Operations Management
Organizations
Optimization Advisor
Cloud Operations Center
Resource Governance Center
Migração
Server Migration Service
Object Storage Migration Service
Cloud Data Migration
Migration Center
Cloud Ecosystem
KooGallery
Partner Center
User Support
My Account
Billing Center
Cost Center
Resource Center
Enterprise Management
Service Tickets
HUAWEI CLOUD (International) FAQs
ICP Filing
Support Plans
My Credentials
Customer Operation Capabilities
Partner Support Plans
Professional Services
Análises
MapReduce Service
Data Lake Insight
CloudTable Service
Cloud Search Service
Data Lake Visualization
Data Ingestion Service
GaussDB(DWS)
DataArts Studio
IoT
IoT Device Access
Outros
Product Pricing Details
System Permissions
Console Quick Start
Common FAQs
Instructions for Associating with a HUAWEI CLOUD Partner
Message Center
Segurança e conformidade
Security Technologies and Applications
Web Application Firewall
Host Security Service
Cloud Firewall
SecMaster
Anti-DDoS Service
Data Encryption Workshop
Database Security Service
Cloud Bastion Host
Data Security Center
Cloud Certificate Manager
Situation Awareness
Managed Threat Detection
Blockchain
Blockchain Service
Serviços de mídia
Media Processing Center
Video On Demand
Live
SparkRTC
Armazenamento
Object Storage Service
Elastic Volume Service
Cloud Backup and Recovery
Cloud Server Backup Service
Storage Disaster Recovery Service
Scalable File Service
Volume Backup Service
Data Express Service
Dedicated Distributed Storage Service
Containers
Cloud Container Engine
SoftWare Repository for Container
Application Service Mesh
Ubiquitous Cloud Native Service
Cloud Container Instance
Bancos de dados
Relational Database Service
Document Database Service
Data Admin Service
Data Replication Service
GeminiDB
GaussDB
Distributed Database Middleware
Database and Application Migration UGO
TaurusDB
Middleware
Distributed Cache Service
API Gateway
Distributed Message Service for Kafka
Distributed Message Service for RabbitMQ
Distributed Message Service for RocketMQ
Cloud Service Engine
EventGrid
Dedicated Cloud
Dedicated Computing Cluster
Aplicações de negócios
ROMA Connect
Message & SMS
Domain Name Service
Edge Data Center Management
Meeting
AI
Face Recognition Service
Graph Engine Service
Content Moderation
Image Recognition
Data Lake Factory
Optical Character Recognition
ModelArts
ImageSearch
Conversational Bot Service
Speech Interaction Service
Huawei HiLens
Developer Tools
SDK Developer Guide
API Request Signing Guide
Terraform
Koo Command Line Interface
Distribuição de conteúdo e computação de borda
Content Delivery Network
Intelligent EdgeFabric
CloudPond
Soluções
SAP Cloud
High Performance Computing
Serviços para desenvolvedore
ServiceStage
CodeArts
CodeArts PerfTest
CodeArts Req
CodeArts Pipeline
CodeArts Build
CodeArts Deploy
CodeArts Artifact
CodeArts TestPlan
CodeArts Check
Cloud Application Engine
MacroVerse aPaaS
KooPhone
KooDrive
Central de ajuda/ GaussDB(DWS)/ Melhores práticas/ Migração de dados/ Prática de interconexão de dados entre dois clusters do DWS baseados em GDS

Prática de interconexão de dados entre dois clusters do DWS baseados em GDS

Atualizado em 2024-05-09 GMT+08:00

Essa prática demonstra como migrar 15 milhões de linhas de dados entre dois clusters do armazém de dados em minutos com base na alta simultaneidade de importação e exportação de GDS.

  • Esta função é suportada apenas por clusters da versão 8.1.2 ou posterior.
  • O GDS é uma ferramenta de importação e exportação de alta concorrência desenvolvida pelo GaussDB(DWS). Para obter mais informações, visite Descrição de uso do GDS.
  • Esta seção descreve apenas a prática de operação. Para obter detalhes sobre a interconexão do GDS e a descrição da sintaxe, consulte Interconexão entre clusters baseada em GDS.

Essa prática leva cerca de 90 minutos. Os recursos de serviço de nuvem usados nessa prática são Data Warehouse Service (DWS), Elastic Cloud Server (ECS) e Virtual Private Cloud (VPC). O processo básico é o seguinte:

  1. Preparativos
  2. Passo 1: criar dois clusters do DWS
  3. Passo 2: preparar dados de origem
  4. Passo 3: instalar e iniciai o servidor do GDS
  5. Passo 4: implementar interconexão de dados em clusters do DWS

Regiões suportadas

Tabela 1 descreve as regiões onde os dados do OBS foram carregados.

Tabela 1 Regiões e nomes de bucket do OBS

Região

Bucket de OBS

CN North-Beijing1

dws-demo-cn-north-1

CN North-Beijing2

dws-demo-cn-north-2

CN North-Beijing4

dws-demo-cn-north-4

CN North-Ulanqab1

dws-demo-cn-north-9

CN East-Shanghai1

dws-demo-cn-east-3

CN East-Shanghai2

dws-demo-cn-east-2

CN South-Guangzhou

dws-demo-cn-south-1

CN South-Guangzhou-InvitationOnly

dws-demo-cn-south-4

CN-Hong Kong

dws-demo-ap-southeast-1

AP-Singapore

dws-demo-ap-southeast-3

AP-Bangkok

dws-demo-ap-southeast-2

LA-Santiago

dws-demo-la-south-2

AF-Johannesburg

dws-demo-af-south-1

LA-Mexico City1

dws-demo-na-mexico-1

LA-Mexico City2

dws-demo-la-north-2

RU-Moscow2

dws-demo-ru-northwest-2

LA-Sao Paulo1

dws-demo-sa-brazil-1

Restrições

Nessa prática, dois conjuntos de serviços DWS e ECS são implantados na mesma região e VPC para garantir a conectividade de rede.

Preparativos

  • Você obteve o AK e SK da conta.
  • Você criou uma VPC e uma sub-rede. Para obter detalhes, consulte Criação de uma VPC.

Passo 1: criar dois clusters do DWS

Crie dois clusters do GaussDB(DWS) na região China-Hong Kong. Para obter detalhes, consulte Criação de um cluster. Os dois clusters são denominados dws-demo01 e dws-demo02.

Passo 2: preparar dados de origem

  1. Na página Cluster Management do console do GaussDB(DWS), clique em Login na coluna Operation do cluster de origem dws-demo01.

    Esta prática usa a versão 8.1.3.x como exemplo. 8.1.2 e versões anteriores não suportam este modo de logon. Você pode usar o Data Studio para se conectar a um cluster. Para obter detalhes, consulte Uso do Data Studio para se conectar a um cluster.

  2. O nome de usuário de logon é dbadmin, o nome do banco de dados é gaussdb e a senha é a senha do usuário dbadmin definida durante a criação do cluster do armazém de dados. Selecione Remember Password, ative Collect Metadata Periodically e Show Executed SQL Statements e clique em Log In.

    Figura 1 Fazer logon no GaussDB(DWS)

  3. Clique no nome do banco de dados gaussdb e clique em SQL Window no canto superior direito para acessar o editor SQL.
  4. Copie a seguinte instrução SQL para a janela SQL e clique em Execute SQL para criar a tabela TPC-H de teste ORDERS.

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    CREATE TABLE ORDERS
     ( 
     O_ORDERKEY BIGINT NOT NULL , 
     O_CUSTKEY BIGINT NOT NULL , 
     O_ORDERSTATUS CHAR(1) NOT NULL , 
     O_TOTALPRICE DECIMAL(15,2) NOT NULL , 
     O_ORDERDATE DATE NOT NULL , 
     O_ORDERPRIORITY CHAR(15) NOT NULL , 
     O_CLERK CHAR(15) NOT NULL , 
     O_SHIPPRIORITY BIGINT NOT NULL , 
     O_COMMENT VARCHAR(79) NOT NULL)
     with (orientation = column)
     distribute by hash(O_ORDERKEY)
     PARTITION BY RANGE(O_ORDERDATE)
     ( 
     PARTITION O_ORDERDATE_1 VALUES LESS THAN('1993-01-01 00:00:00'), 
     PARTITION O_ORDERDATE_2 VALUES LESS THAN('1994-01-01 00:00:00'), 
     PARTITION O_ORDERDATE_3 VALUES LESS THAN('1995-01-01 00:00:00'), 
     PARTITION O_ORDERDATE_4 VALUES LESS THAN('1996-01-01 00:00:00'), 
     PARTITION O_ORDERDATE_5 VALUES LESS THAN('1997-01-01 00:00:00'), 
     PARTITION O_ORDERDATE_6 VALUES LESS THAN('1998-01-01 00:00:00'), 
     PARTITION O_ORDERDATE_7 VALUES LESS THAN('1999-01-01 00:00:00')
     );
    

  5. Execute a seguinte instrução SQL para criar uma tabela estrangeira do OBS:

    Substitua AK e SK pelos AK e SK reais da conta. <obs_bucket_name> é obtido de Regiões suportadas.

    // AK e SK codificados rigidamente ou em texto não criptografado são arriscados. Para fins de segurança, criptografe seu AK e SK e armazene-os no arquivo de configuração ou nas variáveis de ambiente.

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    CREATE FOREIGN TABLE ORDERS01
     (
    LIKE orders
     ) 
     SERVER gsmpp_server 
     OPTIONS (
     ENCODING 'utf8',
     LOCATION obs://<obs_bucket_name>/tpch/orders.tbl',
     FORMAT 'text',
     DELIMITER '|',
    ACCESS_KEY 'access_key_value_to_be_replaced',
    SECRET_ACCESS_KEY 'secret_access_key_value_to_be_replaced',
     CHUNKSIZE '64',
     IGNORE_EXTRA_DATA 'on'
     );
    

  6. Execute a seguinte instrução SQL para importar dados da tabela estrangeira do OBS para o cluster de armazém de dados de origem: A importação leva cerca de 2 minutos. Por favor, aguarde.

    Se ocorrer um erro de importação, os valores de AK e SK da tabela estrangeira estão incorretos. Neste caso, execute o comando DROP FOREIGN TABLE order01; para excluir a tabela estrangeira, criar uma tabela estrangeira novamente e execute a seguinte instrução para importar dados novamente:

    1
    INSERT INTO orders SELECT * FROM orders01;
    

  7. Repita as etapas anteriores para efetuar logon no cluster de destino dws-demo02 e execute a seguinte instrução SQL para criar as ordens da tabela de destino:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    CREATE TABLE ORDERS
     ( 
     O_ORDERKEY BIGINT NOT NULL , 
     O_CUSTKEY BIGINT NOT NULL , 
     O_ORDERSTATUS CHAR(1) NOT NULL , 
     O_TOTALPRICE DECIMAL(15,2) NOT NULL , 
     O_ORDERDATE DATE NOT NULL , 
     O_ORDERPRIORITY CHAR(15) NOT NULL , 
     O_CLERK CHAR(15) NOT NULL , 
     O_SHIPPRIORITY BIGINT NOT NULL , 
     O_COMMENT VARCHAR(79) NOT NULL)
     with (orientation = column)
     distribute by hash(O_ORDERKEY)
     PARTITION BY RANGE(O_ORDERDATE)
     ( 
     PARTITION O_ORDERDATE_1 VALUES LESS THAN('1993-01-01 00:00:00'), 
     PARTITION O_ORDERDATE_2 VALUES LESS THAN('1994-01-01 00:00:00'), 
     PARTITION O_ORDERDATE_3 VALUES LESS THAN('1995-01-01 00:00:00'), 
     PARTITION O_ORDERDATE_4 VALUES LESS THAN('1996-01-01 00:00:00'), 
     PARTITION O_ORDERDATE_5 VALUES LESS THAN('1997-01-01 00:00:00'), 
     PARTITION O_ORDERDATE_6 VALUES LESS THAN('1998-01-01 00:00:00'), 
     PARTITION O_ORDERDATE_7 VALUES LESS THAN('1999-01-01 00:00:00')
     );
    

Passo 3: instalar e iniciai o servidor do GDS

  1. Crie um ECS consultando Compra de um ECS. Observe que as instâncias do ECS e GaussDB(DWS) devem ser criadas na mesma região e VPC. Neste exemplo, a versão do CentOS 7.6 é selecionada como a imagem do ECS.
  2. Baixar o pacote do GDS

    1. Efetue logon no console do GaussDB(DWS).
    2. Na árvore de navegação à esquerda, clique em Connections.
    3. Selecione o cliente do GDS da versão correspondente na lista suspensa de CLI Client.

      Selecione uma versão com base na versão do cluster e no SO em que o cliente está instalado.

    4. Clique em Download.

  3. Use a ferramenta SFTP para fazer upload do cliente baixado (por exemplo, dws_client_8.2.x_redhat_x64.zip) para o diretório /opt do ECS.
  4. Efetue logon no ECS como o usuário root e execute os seguintes comandos para ir para o diretório /opt e descompactar o pacote do cliente:

    1
    2
    cd /opt
    unzip dws_client_8.2.x_redhat_x64.zip
    

  5. Crie um usuário do GDS e o grupo de usuários ao qual o usuário pertence. Este usuário é usado para iniciar o GDS e ler os dados de origem.

    1
    2
    groupadd gdsgrp
    useradd -g gdsgrp gds_user
    

  6. Altere o proprietário do diretório do pacote do GDS e do diretório do arquivo de dados de origem para o usuário do GDS.

    1
    2
    chown -R gds_user:gdsgrp /opt/gds/bin
    chown -R gds_user:gdsgrp /opt
    

  7. Alterne para o usuário gds.

    1
    su - gds_user
    

  8. Execute os seguintes comandos para ir para o diretório gds e executar variáveis de ambiente:

    1
    2
    cd /opt/gds/bin
    source gds_env
    

  9. Execute o seguinte comando para iniciar o GDS. Você pode exibir o endereço IP interno do ECS no console do ECS.

    1
    /opt/gds/bin/gds -d /opt -p  ECS Intranet IP:5000 -H 0.0.0.0/0 -l /opt/gds/bin/gds_log.txt -D -t 2
    

  10. Ative a porta de rede entre o ECS e o DWS.

    O servidor do GDS (ECS neste experimento) precisa se comunicar com o DWS. O grupo de segurança padrão do ECS não permite tráfego de entrada da porta do GDS 5000 e da porta DWS 8000. Execute as seguintes etapas:

    1. Retorne ao console do ECS e clique no nome do ECS para acessar a página de detalhes do ECS.
    2. Alterne para a guia Security Groups e clique em Configure Rule.
    3. Selecione Inbound Rules, clique em Add Rule, defina Priority como 1, defina Protocol Port como 5000 e clique em OK.

    4. Repita as etapas anteriores para adicionar uma regra de entrada de 8000.

Passo 4: implementar interconexão de dados em clusters do DWS

  1. Crie um servidor.

    1. Obtenha o endereço IP privado do cluster de armazém de dados de origem: Alterne para o console do DWS, escolha Cluster Management à esquerda e clique no nome de cluster de origem dws-demo01.
    2. Vá para a página de detalhes do cluster e registre o endereço IP interno do DWS.

    3. Volte para o console do DWS e clique em Log In na coluna Operation do destino dws-demo02. A janela SQL é exibida,

      Execute o seguinte comando para criar um servidor:

      O endereço IP privado do cluster de armazém de dados de origem é obtido na etapa anterior. O endereço IP privado do servidor do ECS é obtido do console do ECS. A senha de logon do usuário dbadmin é definida quando o cluster do armazém de dados é criado.

      1
      2
      3
      4
      5
      6
      7
      8
      9
      CREATE SERVER server_remote FOREIGN DATA WRAPPER GC_FDW OPTIONS
       (
      address'Private network IP address of the source DWS cluster :8000',
       dbname 'gaussdb',
       username 'dbadmin',
      password'Password of user dbadmin',
      syncsrv'gsfs://Internal IP address of the ECS server:5000'
       )
       ;
      

  2. Crie uma tabela estrangeira para interconexão.

    Na janela SQL do cluster de destino dws-demo02, execute o seguinte comando para criar uma tabela estrangeira para interconexão:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    CREATE FOREIGN TABLE ft_orders
     (
     O_ORDERKEY BIGINT , 
     O_CUSTKEY BIGINT , 
     O_ORDERSTATUS CHAR(1) , 
     O_TOTALPRICE DECIMAL(15,2) , 
     O_ORDERDATE DATE , 
     O_ORDERPRIORITY CHAR(15) , 
     O_CLERK CHAR(15) , 
     O_SHIPPRIORITY BIGINT , 
     O_COMMENT VARCHAR(79) 
    
     ) 
     SERVER server_remote 
     OPTIONS 
     (
     schema_name 'public',
     table_name 'orders',
     encoding 'SQL_ASCII'
     );
    

  3. Importe todos os dados da tabela.

    Na janela SQL, execute a seguinte instrução SQL para importar dados completos da tabela estrangeira ft_orders: Aguarde cerca de 1 minuto.

    1
    INSERT INTO orders SELECT * FROM ft_orders;
    

    Execute a seguinte instrução SQL. Constatou-se que 15 milhões de linhas de dados são importadas com sucesso.

    1
    SELECT count(*) FROM orders;
    

  4. Importe dados com base em critérios de filtro.

    Execute as seguintes instruções SQL para importar dados com base nos critérios de filtro:

    1
    INSERT INTO orders SELECT * FROM ft_orders WHERE o_orderkey < '10000000';
    

Usamos cookies para aprimorar nosso site e sua experiência. Ao continuar a navegar em nosso site, você aceita nossa política de cookies. Saiba mais

Feedback

Feedback

Feedback

0/500

Conteúdo selecionado

Envie o conteúdo selecionado com o feedback