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.
Atualizado em 2025-08-01 GMT+08:00

Tutorial: exportar dados do ORC para MRS

GaussDB(DWS) permite exportar dados do ORC para MRS usando uma tabela estrangeira de HDFS. Você pode especificar o modo de exportação e o formato de dados de exportação na tabela estrangeira. Os dados são exportados do GaussDB(DWS) em paralelo usando vários DNs e armazenados no HDFS. Desta forma, o desempenho geral das exportações é melhorado.

Preparação do ambiente

Crie um cluster de GaussDB(DWS). Verifique se os clusters do MRS e do GaussDB(DWS) estão na mesma região, AZ e sub-rede da VPC e se os clusters podem se comunicar uns com os outros.

Criar um cluster do MRS

  1. Faça logon no console da Huawei Cloud, escolha Analytics > MapReduce Service e clique em Buy Cluster. Clique na guia Custom Config, configure os parâmetros do software e clique em Next.

    Tabela 1 Configuração de software

    Parâmetro

    Exemplo de valor

    Region

    CN-Hong Kong

    Cluster Name

    mrs_01

    Cluster Version

    MRS 1.9.2 (recomendado)

    NOTA:
    • Para clusters da versão 8.1.1.300 e posteriores, os clusters do MRS suportam as versões *, 1.7.*, 1.8.*, 1.9.*, 2.0.*, 3.0.*, 3.1.* e posteriores (* indica um número).
    • Para clusters anteriores à versão 8.1.1.300, os clusters do MRS suportam as versões 1.6.*, 1.7.*, 1.8.*, 1.9.* e 2.0.* (* indica um número).

    Cluster Type

    Cluster de análise

  2. Configure os parâmetros de hardware e clique em Next.

    Tabela 2 Configuração de hardware

    Parâmetro

    Exemplo de valor

    Billing Mode

    Pay-per-use

    AZ

    AZ2

    VPC

    vpc-01

    Subnet

    subnet-01

    Security Group

    Auto create

    EIP

    10.x.x.x

    Enterprise Project

    default

    Master

    2

    Analysis Core

    3

    Analysis Task

    0

  3. Configure as configurações avançadas com base na tabela a seguir, clique em Buy Now e aguarde cerca de 15 minutos para que a criação do cluster seja concluída.

    Tabela 3 Configurações avançadas

    Parâmetro

    Exemplo de valor

    Tag

    test01

    Hostname Prefix

    (Opcional) Prefixo para o nome de um ECS ou BMS no cluster.

    Auto Scaling

    mantenha o valor padrão.

    Bootstrap Action

    Mantenha o valor padrão. O MRS 3.x não suporta este parâmetro.

    Agency

    Mantenha o valor padrão.

    Data Disk Encryption

    Esta função está desativada por padrão. Mantenha o valor padrão.

    Alarm

    Mantenha o valor padrão.

    Rule Name

    Mantenha o valor padrão.

    Topic Name

    Selecione um tópico.

    Kerberos Authentication

    Este parâmetro é ativado por padrão.

    User Name

    admin

    Password

    Essa senha é usada para efetuar logon na página de gerenciamento de cluster.

    Confirm Password

    Digite a senha do usuário admin novamente.

    Login Mode

    Password

    User Name

    root

    Password

    Essa senha é usada para efetuar logon remotamente no ECS.

    Confirm Password

    Digite a senha do usuário root novamente.

    Secure Communications

    Selecione Enable.

Criar uma conexão de fonte de dados do MRS

  1. Faça logon no console do GaussDB(DWS) e clique no cluster de armazém de dados criado. Verifique se os clusters do GaussDB(DWS) e MRS estão na mesma região, AZ e sub-rede da VPC.
  2. Clique na guia MRS Data Source e clique em Create MRS Cluster Connection.
  3. Selecione a origem de dados mrs_01 criada na etapa anterior, insira o nome da conta do MRS admin e sua senha e clique em OK.

Criar um servidor estrangeiro

  1. Use o Data Studio para conectar-se ao cluster do GaussDB(DWS) criado.
  2. Crie um usuário dbuser que tenha permissão para criar bancos de dados.

    1
    CREATE USER dbuser WITH CREATEDB PASSWORD 'password';
    

  1. Mude para o usuário dbuser.

    1
    SET ROLE dbuser PASSWORD 'password';
    

  1. Crie um banco de dados mydatabase.

    1
    CREATE DATABASE mydatabase;
    

  1. Execute as seguintes etapas para alternar para o banco de dados mydatabase:

    1. Na janela Object Browser do cliente do Data Studio, clique com o botão direito do mouse na conexão de banco de dados e selecione Refresh no menu de atalho. Em seguida, o novo banco de dados é exibido.
    2. Clique com o botão direito do mouse no nome do banco de dados mydatabase e selecione Connect to DB no menu de atalho.
    3. Clique com o botão direito do mouse no nome do banco de dados mydatabase e selecione Open Terminal no menu de atalho. A janela de comando SQL para conexão com um banco de dados é exibida. Execute os seguintes passos na janela.

  2. Conceda a permissão para criar servidores externos ao usuário dbuser. Em 8.1.1 e versões posteriores, você também precisa conceder a permissão para usar o modo público.

    1
    2
    GRANT ALL ON FOREIGN DATA WRAPPER hdfs_fdw TO dbuser;
    In GRANT ALL ON SCHEMA public TO dbuser; //8.1.1 and later versions, common users do not have permission on the public mode and need to grant permission. In versions earlier than 8.1.1, you do not need to perform this operation.
    

    O nome do FOREIGN DATA WRAPPER deve ser hdfs_fdw. dbuser indica o nome de usuário de CREATE SERVER.

  3. Conceda ao usuário dbuser a permissão para usar tabelas estrangeiras.

    1
    ALTER USER dbuser USEFT;
    

  4. Alterne para o banco de dados Postgres e consulte o servidor estrangeiro criado automaticamente pelo sistema após a criação da fonte de dados do MRS.

    1
    SELECT * FROM pg_foreign_server;
    

    Informação semelhante à seguinte é exibida:

    1
    2
    3
    4
    5
    6
                         srvname                      | srvowner | srvfdw | srvtype | srvversion | srvacl |                                                     srvoptions
    --------------------------------------------------+----------+--------+---------+------------+--------+---------------------------------------------------------------------------------------------------------------------
     gsmpp_server                                     |       10 |  13673 |         |            |        |
     gsmpp_errorinfo_server                           |       10 |  13678 |         |            |        |
     hdfs_server_8f79ada0_d998_4026_9020_80d6de2692ca |    16476 |  13685 |         |            |        | {"address=192.168.1.245:9820,192.168.1.218:9820",hdfscfgpath=/MRS/8f79ada0-d998-4026-9020-80d6de2692ca,type=hdfs}
    (3 rows)
    

  5. Mudar para a base de dados mydatabase e mudar para o usuário dbuser.

    1
    SET ROLE dbuser PASSWORD 'password';
    

  6. Crie um servidor estrangeiro.

    O nome do servidor, o endereço e o caminho de configuração devem ser os mesmos em 8.

    1
    2
    3
    4
    5
    6
    7
    CREATE SERVER hdfs_server_8f79ada0_d998_4026_9020_80d6de2692ca FOREIGN DATA WRAPPER HDFS_FDW 
    OPTIONS 
    (
    address '192.168.1.245:9820,192.168.1.218:9820',   //The intranet IP addresses of the active and standby master nodes on the MRS management plane, which can be used to communicate with GaussDB(DWS).
    hdfscfgpath '/MRS/8f79ada0-d998-4026-9020-80d6de2692ca',
    type 'hdfs'
    );
    

  7. Veja o servidor estrangeiro.

    1
    SELECT * FROM pg_foreign_server WHERE srvname='hdfs_server_8f79ada0_d998_4026_9020_80d6de2692ca';
    

    O servidor é criado com êxito se forem apresentadas informações semelhantes às seguintes:

    1
    2
    3
    4
                         srvname                      | srvowner | srvfdw | srvtype | srvversion | srvacl |                                                     srvoptions
    --------------------------------------------------+----------+--------+---------+------------+--------+---------------------------------------------------------------------------------------------------------------------
     hdfs_server_8f79ada0_d998_4026_9020_80d6de2692ca |    16476 |  13685 |         |            |        | {"address=192.168.1.245:9820,192.168.1.218:9820",hdfscfgpath=/MRS/8f79ada0-d998-4026-9020-80d6de2692ca,type=hdfs}
    (1 row)
    

Criar uma tabela estrangeira

Crie uma tabela estrangeira do OBS que não contenha colunas de partição. O servidor externo associado à tabela é hdfs_server, o formato do arquivo no HDFS correspondente à tabela é ORC e o caminho de armazenamento de dados no OBS é /user/hive/warehouse/product_info_orc/.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
DROP FOREIGN TABLE IF EXISTS product_info_output_ext;
CREATE FOREIGN TABLE product_info_output_ext
(
    product_price                integer        ,
    product_id                   char(30)       ,
    product_time                 date           ,
    product_level                char(10)       ,
    product_name                 varchar(200)   ,
    product_type1                varchar(20)    ,
    product_type2                char(10)       ,
    product_monthly_sales_cnt    integer        ,
    product_comment_time         date           ,
    product_comment_num          integer        ,
    product_comment_content      varchar(200)                      
) SERVER hdfs_server_8f79ada0_d998_4026_9020_80d6de2692ca 
OPTIONS (
format 'orc', 
foldername '/user/hive/warehouse/product_info_orc/',
   compression 'snappy',
    version '0.12'
) Write Only;

Exportação de dados

Crie uma tabela comum product_info_output.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
DROP TABLE product_info_output;
CREATE TABLE product_info_output 
(    
    product_price                int            ,
    product_id                   char(30)       ,
    product_time                 date           ,
    product_level                char(10)       ,
    product_name                 varchar(200)   ,
    product_type1                varchar(20)    ,
    product_type2                char(10)       ,
    product_monthly_sales_cnt    int            ,
    product_comment_time         date           ,
    product_comment_num          int        ,
    product_comment_content      varchar(200)                   
) 
with (orientation = column,compression=middle)
distribute by hash (product_name);
Exporte dados da tabela product_info_output para um arquivo de dados usando a tabela estrangeira product_info_output_ext.
1
INSERT INTO product_info_output_ext SELECT * FROM product_info_output;

Se forem exibidas informações semelhantes às seguintes, os dados forem criados.

1
INSERT 0 10

Exibir o resultado da exportação

  1. Vá para a lista de clusters do MRS. Clique em um nome de cluster para ir para a página de detalhes do cluster.
  2. Clique em Files e clique em HDFS File List. Verifique o arquivo ORC exportado no diretório user/hive/warehouse/product_info_orc.

    Os dados de ORC exportados do GaussDB(DWS) estão em conformidade com as seguintes regras:

    1. Dados exportados para MRS (HDFS): quando os dados são exportados de um DN, os dados são armazenados no HDFS no formato de segmento. O arquivo é nomeado no formato de mpp_DatabaseName_SchemaName_TableName_NodeName_n.orc.
    2. É aconselhável exportar dados de diferentes clusters ou bancos de dados para diferentes caminhos. O tamanho máximo de um arquivo ORC é 128 MB e o de um arquivo de faixas é 64 MB.
    3. Após a conclusão da exportação, o arquivo _SUCCESS é gerado.