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.
Central de ajuda/
GaussDB(DWS)/
Perguntas frequentes/
Importação e exportação de dados/
Como implementar a importação de tolerância a falhas entre diferentes bibliotecas de codificação
Atualizado em 2024-05-09 GMT+08:00
Como implementar a importação de tolerância a falhas entre diferentes bibliotecas de codificação
Para importar dados do banco de dados A (UTF8) para o banco de dados B (GBK), pode haver um erro de incompatibilidade de conjunto de caracteres que faz com que a importação de dados falhe.
Para importar uma pequena quantidade de dados, execute o comando \COPY. O procedimento é o seguinte:
- Crie bancos de dados A e B. O formato de codificação do banco de dados A é UTF8 e o do banco de dados B é GBK.
1 2
postgres=> CREATE DATABASE A ENCODING 'UTF8' template = template0; postgres=> CREATE DATABASE B ENCODING 'GBK' template = template0;
- Exiba a lista do banco de dados. Você pode visualizar os bancos de dados A e B criados.
1 2 3 4 5 6 7 8 9 10 11 12 13 14
postgres=> \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+---------+-----------+---------+-------+------------------- a | dbadmin | UTF8 | C | C | b | dbadmin | GBK | C | C | gaussdb | Ruby | SQL_ASCII | C | C | postgres | Ruby | SQL_ASCII | C | C | template0 | Ruby | SQL_ASCII | C | C | =c/Ruby + | | | | | Ruby=CTc/Ruby template1 | Ruby | SQL_ASCII | C | C | =c/Ruby + | | | | | Ruby=CTc/Ruby xiaodi | dbadmin | UTF8 | C | C | (7 rows)
- Alterne para o banco de dados A e digite a senha do usuário. Crie uma tabela chamada test01 e insira os dados na tabela.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
postgres=> \c a Password for user dbadmin: SSL connection (protocol: TLSv1.3, cipher: TLS_AES_128_GCM_SHA256, bits: 128) You are now connected to database "a" as user "dbadmin". a=> CREATE TABLE test01 ( c_customer_sk integer, c_customer_id char(5), c_first_name char(6), c_last_name char(8) ) with (orientation = column,compression=middle) distribute by hash (c_last_name); CREATE TABLE a=> INSERT INTO test01(c_customer_sk, c_customer_id, c_first_name) VALUES (3769, 'hello', 'Grace'); INSERT 0 1 a=> INSERT INTO test01 VALUES (456, 'good'); INSERT 0 1
- Execute o comando \COPY para exportar dados da biblioteca UTF8 no formato Unicode para o arquivo test01.dat.
1
\copy test01 to '/opt/test01.dat' with (ENCODING 'Unicode');
- Mude para o banco de dados B e crie uma tabela com o mesmo nome test01.
1 2 3 4 5 6 7 8 9 10 11 12 13 14
a=> \c b Password for user dbadmin: SSL connection (protocol: TLSv1.3, cipher: TLS_AES_128_GCM_SHA256, bits: 128) You are now connected to database "b" as user "dbadmin". b=> CREATE TABLE test01 ( c_customer_sk integer, c_customer_id char(5), c_first_name char(6), c_last_name char(8) ) with (orientation = column,compression=middle) distribute by hash (c_last_name);
- Execute o comando \COPY para importar o arquivo test01.dat para o banco de dados B.
1
\copy test01 from '/opt/test01.dat' with (ENCODING 'Unicode' ,COMPATIBLE_ILLEGAL_CHARS 'true');
- O parâmetro de tolerância de erro COMPATIBLE_ILLEGAL_CHARS especifica que caracteres inválidos são tolerados durante a importação de dados. Caracteres inválidos são convertidos e, em seguida, importados para o banco de dados. Nenhuma mensagem de erro é exibida. A importação não é interrompida.
- O formato BINARY não é suportado. Quando os dados desse formato são importados, o erro "cannot specify bulkload compatibility options in BINARY mode" ocorrerá.
- O parâmetro é válido somente para importação de dados usando a opção COPY FROM.
- Veja os dados na tabela test01 no banco de dados B.
1 2 3 4 5 6
b=> select * from test01; c_customer_sk | c_customer_id | c_first_name | c_last_name ---------------+---------------+--------------+------------- 3769 | hello | Grace | 456 | good | | (2 rows)
- Depois que as operações anteriores são executadas, os dados são importados do banco de dados A (UTF8) para o banco de dados B (GBK).
Tópico principal: Importação e exportação de dados
Feedback
Esta página foi útil?
Deixar um comentário
Obrigado por seus comentários. Estamos trabalhando para melhorar a documentação.
O sistema está ocupado. Tente novamente mais tarde.