Gere metadados para tradução e avaliação
Este documento descreve como criar metadados e consultar ficheiros de registo através da ferramenta de extração de linha de comandos dwh-migration-dumper
. Os ficheiros de metadados descrevem os objetos SQL no seu sistema de origem.
O serviço de migração do BigQuery usa estas informações para melhorar a tradução dos seus scripts SQL do dialeto do sistema de origem para o GoogleSQL.
A avaliação da migração do BigQuery usa ficheiros de metadados e ficheiros de registo de consultas para analisar o seu armazém de dados existente e ajudar a avaliar o esforço de mover o seu armazém de dados para o BigQuery.
Vista geral
Pode usar a ferramenta dwh-migration-dumper
para extrair informações de metadados da plataforma de base de dados para a qual está a migrar para o BigQuery. Embora a utilização da ferramenta de extração não seja necessária para a tradução, é necessária para a avaliação da migração do BigQuery e recomendamos vivamente que a use para todas as tarefas de migração.
Para mais informações, consulte o artigo Crie ficheiros de metadados.
Pode usar a ferramenta dwh-migration-dumper
para extrair metadados das seguintes plataformas de base de dados:
- Teradata
- Amazon Redshift
- Apache Hive
- Apache Spark
- Azure Synapse
- Greenplum
- Microsoft SQL Server
- IBM Netezza
- Oracle
- PostgreSQL
- Floco de neve
- Trino ou PrestoSQL
- Vertica
Para a maioria destas bases de dados, também pode extrair registos de consultas.
A ferramenta dwh-migration-dumper
consulta tabelas do sistema para recolher declarações de linguagem de definição de dados (DDL) relacionadas com bases de dados de utilizadores e do sistema. Não consulta o conteúdo das bases de dados de utilizadores. A ferramenta guarda as informações de metadados das tabelas do sistema como ficheiros CSV e, em seguida, comprime estes ficheiros num único pacote. Em seguida, carrega este ficheiro ZIP para o Cloud Storage quando carregar os ficheiros de origem para tradução ou avaliação.
Quando usa a opção de registos de consultas, a ferramenta dwh-migration-dumper
consulta tabelas do sistema para instruções DDL e registos de consultas relacionados com bases de dados de utilizadores e do sistema. Estes são guardados no formato CSV ou YAML num subdiretório e, em seguida, compactados num pacote ZIP. Em nenhum momento, o conteúdo das bases de dados de utilizadores é consultado. Neste momento, a avaliação de migração do BigQuery requer ficheiros CSV, YAML e de texto individuais para os registos de consultas. Por isso, deve descomprimir todos estes ficheiros do ficheiro ZIP de registos de consultas e carregá-los para avaliação.
A ferramenta dwh-migration-dumper
pode ser executada no Windows, macOS e Linux.
A ferramenta dwh-migration-dumper
está disponível ao abrigo da
licença Apache 2.
Se optar por não usar a ferramenta dwh-migration-dumper
para tradução, pode fornecer manualmente ficheiros de metadados recolhendo as declarações de linguagem de definição de dados (DDL) para os objetos SQL no seu sistema de origem em ficheiros de texto separados.
O fornecimento de metadados e registos de consultas extraídos com a ferramenta é necessário para a avaliação da migração através da avaliação da migração do BigQuery.
Requisitos de conformidade
Disponibilizamos o ficheiro binário da ferramenta dwh-migration-dumper
compilado para facilitar a utilização. Se precisar de auditar a ferramenta para garantir que cumpre os requisitos de conformidade, pode rever o código fonte do dwh-migration-dumper
repositório GitHub da ferramenta e compilar o seu próprio ficheiro binário.
Pré-requisitos
Instale o Java
O servidor no qual planeia executar a ferramenta dwh-migration-dumper
tem de ter o Java 8 ou superior instalado. Se não o tiver, transfira o Java a partir da
página de transferências do Java
e instale-o.
Autorizações necessárias
A conta de utilizador que especificar para associar a ferramenta dwh-migration-dumper
ao
sistema de origem tem de ter autorizações para ler metadados desse sistema.
Confirme se esta conta tem a associação de funções adequada para consultar os recursos de metadados disponíveis para a sua plataforma. Por exemplo, INFORMATION_SCHEMA
é um recurso de metadados comum a várias plataformas.
Instale a ferramenta dwh-migration-dumper
Para instalar a ferramenta dwh-migration-dumper
, siga estes passos:
- Na máquina onde quer executar a ferramenta
dwh-migration-dumper
, transfira o ficheiro ZIP dodwh-migration-dumper
repositório do GitHub da ferramenta. Para validar o ficheiro ZIP da ferramenta
dwh-migration-dumper
, transfira o ficheiroSHA256SUMS.txt
e execute o seguinte comando:Bash
sha256sum --check SHA256SUMS.txt
Se a validação falhar, consulte a secção Resolução de problemas.
Windows PowerShell
(Get-FileHash RELEASE_ZIP_FILENAME).Hash -eq ((Get-Content SHA256SUMS.txt) -Split " ")[0]
Substitua
RELEASE_ZIP_FILENAME
pelo nome do ficheiro ZIP transferido da versão da ferramenta de extração de linhas de comandodwh-migration-dumper
, por exemplo,dwh-migration-tools-v1.0.52.zip
O resultado
True
confirma a validação da soma de verificação bem-sucedida.O resultado
False
indica um erro de validação. Certifique-se de que os ficheiros ZIP e de soma de verificação são transferidos a partir da mesma versão de lançamento e colocados no mesmo diretório.Extraia o ficheiro ZIP. O ficheiro binário da ferramenta de extração encontra-se no subdiretório
/bin
da pasta criada ao extrair o ficheiro ZIP.Atualize a variável de ambiente
PATH
para incluir o caminho de instalação da ferramenta de extração.
Execute a ferramenta dwh-migration-dumper
A ferramenta dwh-migration-dumper
usa o seguinte formato:
dwh-migration-dumper [FLAGS]
A execução da ferramenta dwh-migration-dumper
cria um ficheiro de saída com o nome
dwh-migration-<source platform>-metadata.zip
, por exemplo,
dwh-migration-teradata-metadata.zip
, no seu diretório de trabalho.
Siga as instruções abaixo para saber como executar a ferramenta dwh-migration-dumper
para a sua plataforma de origem.
Teradata
Para permitir que a ferramenta dwh-migration-dumper
se ligue ao Teradata, transfira o respetivo controlador JDBC a partir da página de transferência do Teradata.
A tabela seguinte descreve as flags usadas frequentemente para extrair metadados e registos de consultas do Teradata através da ferramenta de extração. Para ver informações sobre todas as flags suportadas, consulte as flags globais.
Nome | Valor predefinido | Descrição | Obrigatório |
---|---|---|---|
--assessment |
Ativa o modo de avaliação quando gera registos da base de dados ou extrai metadados.
A ferramenta |
Obrigatório quando usado para executar a avaliação, não obrigatório para tradução. | |
--connector |
O nome do conetor a usar, neste caso, teradata para metadados ou teradata-logs para registos de consultas. | Sim | |
--database |
Uma lista das bases de dados a extrair, separadas por vírgulas. Os nomes das bases de dados podem ser sensíveis a maiúsculas e minúsculas, consoante a configuração do servidor Teradata. Se esta flag for usada em combinação com o conetor Não é possível usar esta flag em combinação com o conector |
Não | |
--driver |
O caminho absoluto ou relativo para o ficheiro JAR do controlador a usar para esta ligação. Pode especificar vários ficheiros JAR de controladores, separando-os com vírgulas. | Sim | |
--host |
localhost | O nome do anfitrião ou o endereço IP do servidor de base de dados. | Não |
--password |
A palavra-passe a usar para a ligação à base de dados. | Se não for especificado, a ferramenta de extração usa um comando seguro para o pedir. | |
--port |
1025 | A porta do servidor de base de dados. | Não |
--user |
O nome de utilizador a usar para a ligação à base de dados. |
Sim | |
--query-log-alternates |
Apenas para o conetor Para extrair os registos de consultas de uma localização alternativa, recomendamos que use as flags
Por predefinição, os registos de consultas são extraídos das tabelas
Exemplo:
|
Não | |
-Dteradata.tmode |
O modo de transação da ligação. Os seguintes valores são suportados:
Exemplo (Bash): Exemplo (Windows PowerShell): |
Não | |
-Dteradata-logs.log-date-column |
Apenas para o conetor
Para melhorar o desempenho da união de tabelas especificadas pelas flags
Exemplo (Bash): Exemplo (Windows PowerShell): |
Não | |
-Dteradata-logs.query-logs-table |
Apenas para o conetor
Por predefinição, os registos de consultas são extraídos da tabela Exemplo (Bash): Exemplo (Windows PowerShell): |
Não | |
-Dteradata-logs.sql-logs-table |
Apenas para o conetor
Por predefinição, os registos de consultas que contêm texto SQL são extraídos da tabela Exemplo (Bash): Exemplo (Windows PowerShell): |
Não | |
-Dteradata-logs.utility-logs-table |
Apenas para o conetor
Por predefinição, os registos de utilitários são extraídos da tabela
Exemplo (Bash): Exemplo (Windows PowerShell): |
Não | |
-Dteradata-logs.res-usage-scpu-table |
Apenas para o conetor
Por predefinição, os registos de utilização de recursos da SCPU são extraídos da tabela Exemplo (Bash): Exemplo (Windows PowerShell): |
Não | |
-Dteradata-logs.res-usage-spma-table |
Apenas para o conetor
Por predefinição, os registos de utilização de recursos da SPMA são extraídos da tabela Exemplo (Bash): Exemplo (Windows PowerShell): |
Não | |
--query-log-start |
A hora de início (inclusive) dos registos de consultas a extrair. O valor é truncado à hora. Esta flag só está disponível para o conetor teradata-logs.
Exemplo: |
Não | |
--query-log-end |
A hora de fim (exclusive) dos registos de consultas a extrair. O valor é truncado à hora. Esta flag só está disponível para o conetor teradata-logs.
Exemplo: |
Não | |
-Dteradata.metadata.tablesizev.max-rows |
Apenas para o conetor Limite o número de linhas extraídas da vista
Exemplo (Bash): Exemplo (Windows PowerShell): |
Não | |
-Dteradata.metadata.diskspacev.max-rows |
Apenas para o conetor Limite o número de linhas extraídas da vista
Exemplo (Bash): Exemplo (Windows PowerShell): |
Não | |
-Dteradata.metadata.databasesv.users.max-rows |
Apenas para o conetor
Limite o número de linhas que representam utilizadores
( Exemplo (Bash): Exemplo (Windows PowerShell): |
Não | |
-Dteradata.metadata.databasesv.dbs.max-rows |
Apenas para o conetor Limite o número de linhas que representam bases de dados
( Exemplo (Bash): Exemplo (Windows PowerShell): |
Não | |
-Dteradata.metadata.max-text-length |
Apenas para o conetor Comprimento máximo da coluna de texto ao extrair os dados da vista Exemplo (Bash): Exemplo (Windows PowerShell): |
Não | |
-Dteradata-logs.max-sql-length |
Apenas para o conetor Comprimento máximo da coluna Exemplo (Bash): Exemplo (Windows PowerShell): |
Não |
Exemplos
O exemplo seguinte mostra como extrair metadados para duas bases de dados Teradata no anfitrião local:
dwh-migration-dumper \
--connector teradata \
--user user \
--password password \
--database database1,database2 \
--driver path/terajdbc4.jar
O exemplo seguinte mostra como extrair registos de consultas para a avaliação no anfitrião local para autenticação:
dwh-migration-dumper \
--connector teradata-logs \
--assessment \
--user user \
--password password \
--driver path/terajdbc4.jar
Tabelas e vistas extraídas pela ferramenta dwh-migration-dumper
As seguintes tabelas e vistas são extraídas quando usa o conector teradata
:
DBC.ColumnsV
DBC.DatabasesV
DBC.DBCInfo
DBC.FunctionsV
DBC.IndicesV
DBC.PartitioningConstraintsV
DBC.TablesV
DBC.TableTextV
As seguintes tabelas e vistas adicionais são extraídas quando usa o conector teradata
com a flag --assessment
:
DBC.All_RI_ChildrenV
DBC.All_RI_ParentsV
DBC.AllTempTablesVX
DBC.DiskSpaceV
DBC.RoleMembersV
DBC.StatsV
DBC.TableSizeV
As seguintes tabelas e vistas são extraídas quando usa o conector teradata-logs
:
DBC.DBQLogTbl
(altera-se paraDBC.QryLogV
se for usada a flag--assessment
)DBC.DBQLSqlTbl
As seguintes tabelas e vistas adicionais são extraídas quando usa o conector teradata-logs
com a flag --assessment
:
DBC.DBQLUtilityTbl
DBC.ResUsageScpu
DBC.ResUsageSpma
Redshift
Pode usar qualquer um dos seguintes mecanismos de autenticação e autorização do Amazon Redshift com a ferramenta de extração:
- Um nome de utilizador e uma palavra-passe.
- Um ID da chave de acesso e uma chave secreta da AWS Identity and Access Management (Identity and Access Management [IAM]).
- Um nome de perfil de IAM do AWS.
Para fazer a autenticação com o nome de utilizador e a palavra-passe, use o controlador JDBC do PostgreSQL predefinido do Amazon Redshift. Para fazer a autenticação com o IAM do AWS, use o controlador JDBC do Amazon Redshift, que pode transferir a partir da respetiva página de transferência.
A tabela seguinte descreve as flags usadas frequentemente para extrair metadados e registos de consultas do Amazon Redshift através da ferramenta dwh-migration-dumper
. Para obter informações
acerca de todas as flags suportadas, consulte as flags globais.
Nome | Valor predefinido | Descrição | Obrigatório |
---|---|---|---|
--assessment |
Ativar o modo de avaliação ao gerar registos da base de dados ou extrair metadados. Gera estatísticas de metadados necessárias para a avaliação da migração do BigQuery quando usado para a extração de metadados. Quando usado para a extração de registos de consultas, gera estatísticas de métricas de consultas para a avaliação da migração do BigQuery. |
Obrigatório quando executado no modo de avaliação, não obrigatório para tradução. | |
--connector |
O nome do conetor a usar, neste caso, redshift para metadados ou redshift-raw-logs para registos de consultas. | Sim | |
--database |
Se não for especificado, o Amazon Redshift usa o valor --user como o nome da base de dados predefinido. |
O nome da base de dados à qual estabelecer ligação. |
Não |
--driver |
Se não for especificado, o Amazon Redshift usa o controlador JDBC do PostgreSQL predefinido. | O caminho absoluto ou relativo para o ficheiro JAR do controlador a usar para esta ligação. Pode especificar vários ficheiros JAR de controladores, separando-os com vírgulas. | Não |
--host |
localhost | O nome do anfitrião ou o endereço IP do servidor de base de dados. | Não |
--iam-accesskeyid |
O ID da chave de acesso do AWS IAM a usar para autenticação. A chave de acesso
é uma string de carateres, algo como
Use em conjunto com a flag |
Não explicitamente, mas tem de fornecer informações de autenticação através de um dos seguintes métodos:
|
|
--iam-profile |
O perfil do IAM da AWS a usar para autenticação. Pode obter um valor do perfil para usar examinando o ficheiro
Não use esta flag com as flags |
Não explicitamente, mas tem de fornecer informações de autenticação através de um dos seguintes métodos:
|
|
--iam-secretaccesskey |
A chave de acesso secreta do AWS IAM a usar para autenticação. A chave de acesso secreta é uma string de carateres, algo como
Use em conjunto com a flag |
Não explicitamente, mas tem de fornecer informações de autenticação através de um dos seguintes métodos:
|
|
--password |
A palavra-passe a usar para a ligação à base de dados.
Não use esta flag com as flags |
Não explicitamente, mas tem de fornecer informações de autenticação através de um dos seguintes métodos:
|
|
--port |
5439 | A porta do servidor de base de dados. | Não |
--user |
O nome de utilizador a usar para a ligação à base de dados. | Sim | |
--query-log-start |
A hora de início (inclusive) dos registos de consultas a extrair. O valor é truncado à hora. Esta flag só está disponível para o conetor redshift-raw-logs.
Exemplo: |
Não | |
--query-log-end |
A hora de fim (exclusive) dos registos de consultas a extrair. O valor é truncado à hora. Esta flag só está disponível para o conetor redshift-raw-logs.
Exemplo: |
Não |
Exemplos
O exemplo seguinte mostra como extrair metadados de uma base de dados do Amazon Redshift num anfitrião especificado, usando chaves do AWS IAM para autenticação:
dwh-migration-dumper \
--connector redshift \
--database database \
--driver path/redshift-jdbc42-version.jar \
--host host.region.redshift.amazonaws.com \
--iam-accesskeyid access_key_ID \
--iam-secretaccesskey secret_access-key \
--user user
O exemplo seguinte mostra como extrair metadados de uma base de dados do Amazon Redshift no anfitrião predefinido, usando o nome de utilizador e a palavra-passe para autenticação:
dwh-migration-dumper \
--connector redshift \
--database database \
--password password \
--user user
O exemplo seguinte mostra como extrair metadados de uma base de dados do Amazon Redshift num anfitrião especificado, usando um perfil do AWS IAM para autenticação:
dwh-migration-dumper \
--connector redshift \
--database database \
--driver path/redshift-jdbc42-version.jar \
--host host.region.redshift.amazonaws.com \
--iam-profile profile \
--user user \
--assessment
O exemplo seguinte mostra como extrair registos de consultas para a avaliação a partir de uma base de dados do Amazon Redshift num anfitrião especificado, usando um perfil do AWS IAM para autenticação:
dwh-migration-dumper \
--connector redshift-raw-logs \
--database database \
--driver path/redshift-jdbc42-version.jar \
--host 123.456.789.012 \
--iam-profile profile \
--user user \
--assessment
Tabelas e vistas extraídas pela ferramenta dwh-migration-dumper
As seguintes tabelas e vistas são extraídas quando usa o conector redshift
:
SVV_COLUMNS
SVV_EXTERNAL_COLUMNS
SVV_EXTERNAL_DATABASES
SVV_EXTERNAL_PARTITIONS
SVV_EXTERNAL_SCHEMAS
SVV_EXTERNAL_TABLES
SVV_TABLES
SVV_TABLE_INFO
INFORMATION_SCHEMA.COLUMNS
PG_CAST
PG_DATABASE
PG_LANGUAGE
PG_LIBRARY
PG_NAMESPACE
PG_OPERATOR
PG_PROC
PG_TABLE_DEF
PG_TABLES
PG_TYPE
PG_VIEWS
As seguintes tabelas e vistas adicionais são extraídas quando usa o conector redshift
com a flag --assessment
:
SVV_DISKUSAGE
STV_MV_INFO
STV_WLM_SERVICE_CLASS_CONFIG
STV_WLM_SERVICE_CLASS_STATE
As seguintes tabelas e vistas são extraídas quando usa o conector redshift-raw-logs
:
STL_DDLTEXT
STL_QUERY
STL_QUERYTEXT
PG_USER
As seguintes tabelas e vistas adicionais são extraídas quando usa o conector redshift-raw-logs
com a flag --assessment
:
STL_QUERY_METRICS
SVL_QUERY_QUEUE_INFO
STL_WLM_QUERY
Para ver informações sobre as vistas e as tabelas do sistema no Redshift, consulte os artigos Vistas do sistema do Redshift e Tabelas do catálogo do sistema do Redshift.
Apache Hive/Spark ou Trino/PrestoSQL
A ferramenta dwh-migration-dumper
só suporta a autenticação no metastore do Apache Hive através do Kerberos. Assim, os sinalizadores --user
e --password
não são usados. Em alternativa, use o sinalizador --hive-kerberos-url
para fornecer os detalhes de autenticação Kerberos.
A tabela seguinte descreve as flags usadas frequentemente para extrair metadados do Apache Hive, Spark, Presto ou Trino através da ferramenta de extração. Para ver informações sobre todas as flags suportadas, consulte as flags globais.
Nome | Valor predefinido | Descrição | Obrigatório |
---|---|---|---|
--assessment |
Ativa o modo de avaliação quando extrai metadados.
A ferramenta |
Obrigatório para a avaliação. Não é necessário para a tradução. | |
--connector |
O nome do conetor a usar, neste caso, hiveql. | Sim | |
--hive-metastore-dump-partition-metadata |
verdadeiro |
Faz com que a ferramenta
Não use esta sinalização com a sinalização |
Não |
--hive-metastore-version |
2.3.6 |
Quando executa a ferramenta |
Não |
--host |
localhost | O nome do anfitrião ou o endereço IP do servidor de base de dados. | Não |
--port |
9083 | A porta do servidor de base de dados. | Não |
--hive-kerberos-url |
O principal e o anfitrião do Kerberos a usar para a autenticação. | Opcional para clusters com autenticação Kerberos ativada. | |
-Dhiveql.rpc.protection |
O nível de configuração da proteção de RPC. Isto determina a qualidade
de proteção (QOP) da camada de segurança e segurança simples
(SASL) entre o cluster e a ferramenta Tem de ser igual ao valor do parâmetro
Exemplo (Bash): Exemplo (Windows PowerShell): |
Opcional para clusters com autenticação Kerberos ativada. |
Exemplos
O exemplo seguinte mostra como extrair metadados para uma base de dados Hive 2.3.7 num anfitrião especificado, sem autenticação e usando uma porta alternativa para a ligação:
dwh-migration-dumper \
--connector hiveql \
--hive-metastore-version 2.3.7 \
--host host \
--port port
Para usar a autenticação do Kerberos, inicie sessão como um utilizador que tenha autorizações de leitura no metastore do Hive e gere um pedido do Kerberos. Em seguida, gere o ficheiro ZIP de metadados com o seguinte comando:
JAVA_OPTS="-Djavax.security.auth.useSubjectCredsOnly=false" \
dwh-migration-dumper \
--connector hiveql \
--host host \
--port port \
--hive-kerberos-url principal/kerberos_host
Azure Synapse ou Microsoft SQL Server
Para permitir que a ferramenta dwh-migration-dumper
se ligue ao Azure Synapse ou ao Microsoft SQL Server, transfira o respetivo controlador JDBC a partir da página de transferência da Microsoft.
A tabela seguinte descreve as flags usadas frequentemente para extrair metadados do Azure Synapse ou do Microsoft SQL Server através da ferramenta de extração. Para ver informações sobre todas as flags suportadas, consulte as flags globais.
Nome | Valor predefinido | Descrição | Obrigatório |
---|---|---|---|
--connector |
O nome do conetor a usar, neste caso, sqlserver. | Sim | |
--database |
O nome da base de dados à qual estabelecer ligação. |
Sim | |
--driver |
O caminho absoluto ou relativo para o ficheiro JAR do controlador a usar para esta ligação. Pode especificar vários ficheiros JAR de controladores, separando-os com vírgulas. | Sim | |
--host |
localhost | O nome do anfitrião ou o endereço IP do servidor de base de dados. | Não |
--password |
A palavra-passe a usar para a ligação à base de dados. | Sim | |
--port |
1433 | A porta do servidor de base de dados. | Não |
--user |
O nome de utilizador a usar para a ligação à base de dados. | Sim |
Exemplos
O exemplo seguinte mostra como extrair metadados de uma base de dados do Azure Synapse num anfitrião especificado:
dwh-migration-dumper \
--connector sqlserver \
--database database \
--driver path/mssql-jdbc.jar \
--host server_name.sql.azuresynapse.net \
--password password \
--user user
Greenplum
Para permitir que a ferramenta dwh-migration-dumper
se ligue ao Greenplum, transfira o respetivo controlador JDBC a partir da página de transferência do VMware Greenplum.
A tabela seguinte descreve as flags usadas frequentemente para extrair metadados do Greenplum através da ferramenta de extração. Para ver informações sobre todas as flags suportadas, consulte as flags globais.
Nome | Valor predefinido | Descrição | Obrigatório |
---|---|---|---|
--connector |
O nome do conetor a usar, neste caso, greenplum. | Sim | |
--database |
O nome da base de dados à qual estabelecer ligação. |
Sim | |
--driver |
O caminho absoluto ou relativo para o ficheiro JAR do controlador a usar para esta ligação. Pode especificar vários ficheiros JAR de controladores, separando-os com vírgulas. | Sim | |
--host |
localhost | O nome do anfitrião ou o endereço IP do servidor de base de dados. | Não |
--password |
A palavra-passe a usar para a ligação à base de dados. | Se não for especificado, a ferramenta de extração usa um comando seguro para o pedir. | |
--port |
5432 | A porta do servidor de base de dados. | Não |
--user |
O nome de utilizador a usar para a ligação à base de dados. | Sim |
Exemplos
O exemplo seguinte mostra como extrair metadados para uma base de dados Greenplum num anfitrião especificado:
dwh-migration-dumper \
--connector greenplum \
--database database \
--driver path/greenplum.jar \
--host host \
--password password \
--user user \
Netezza
Para permitir que a ferramenta dwh-migration-dumper
se ligue ao IBM Netezza, tem de obter o respetivo controlador JDBC. Normalmente, pode obter o controlador a partir do diretório no anfitrião do dispositivo IBM Netezza./nz/kit/sbin
Se não conseguir encontrá-lo, peça ajuda ao
administrador do sistema ou leia o artigo
Instalar e configurar o JDBC
na documentação do IBM Netezza.
A tabela seguinte descreve as flags usadas frequentemente para extrair metadados do IBM Netezza através da ferramenta de extração. Para ver informações sobre todas as flags suportadas, consulte as flags globais.
Nome | Valor predefinido | Descrição | Obrigatório |
---|---|---|---|
--connector |
O nome do conetor a usar, neste caso, netezza. | Sim | |
--database |
Uma lista das bases de dados a extrair, separadas por vírgulas. |
Sim | |
--driver |
O caminho absoluto ou relativo para o ficheiro JAR do controlador a usar para esta ligação. Pode especificar vários ficheiros JAR de controladores, separando-os com vírgulas. | Sim | |
--host |
localhost | O nome do anfitrião ou o endereço IP do servidor de base de dados. | Não |
--password |
A palavra-passe a usar para a ligação à base de dados. | Sim | |
--port |
5480 | A porta do servidor de base de dados. | Não |
--user |
O nome de utilizador a usar para a ligação à base de dados. | Sim |
Exemplos
O exemplo seguinte mostra como extrair metadados para duas bases de dados IBM Netezza num anfitrião especificado:
dwh-migration-dumper \
--connector netezza \
--database database1,database2 \
--driver path/nzjdbc.jar \
--host host \
--password password \
--user user
PostgreSQL
Para permitir que a ferramenta dwh-migration-dumper
se ligue ao PostgreSQL, transfira o respetivo controlador JDBC a partir da página de transferência do PostgreSQL.
A tabela seguinte descreve as flags usadas frequentemente para extrair metadados do PostgreSQL através da ferramenta de extração. Para ver informações sobre todas as flags suportadas, consulte as flags globais.
Nome | Valor predefinido | Descrição | Obrigatório |
---|---|---|---|
--connector |
O nome do conetor a usar, neste caso, postgresql. | Sim | |
--database |
O nome da base de dados à qual estabelecer ligação. |
Sim | |
--driver |
O caminho absoluto ou relativo para o ficheiro JAR do controlador a usar para esta ligação. Pode especificar vários ficheiros JAR de controladores, separando-os com vírgulas. | Sim | |
--host |
localhost | O nome do anfitrião ou o endereço IP do servidor de base de dados. | Não |
--password |
A palavra-passe a usar para a ligação à base de dados. | Se não for especificado, a ferramenta de extração usa um comando seguro para o pedir. | |
--port |
5432 | A porta do servidor de base de dados. | Não |
--user |
O nome de utilizador a usar para a ligação à base de dados. | Sim |
Exemplos
O exemplo seguinte mostra como extrair metadados para uma base de dados PostgreSQL num anfitrião especificado:
dwh-migration-dumper \
--connector postgresql \
--database database \
--driver path/postgresql-version.jar \
--host host \
--password password \
--user user
Oracle
Para permitir que a ferramenta dwh-migration-dumper
se ligue ao Oracle, transfira o respetivo controlador JDBC a partir da página de transferência da Oracle.
A tabela seguinte descreve as flags usadas frequentemente para extrair metadados do Oracle através da ferramenta de extração. Para ver informações sobre todas as flags suportadas, consulte as flags globais.
Nome | Valor predefinido | Descrição | Obrigatório |
---|---|---|---|
--connector |
O nome do conetor a usar, neste caso, oracle. | Sim | |
--driver |
O caminho absoluto ou relativo para o ficheiro JAR do controlador a usar para esta ligação. Pode especificar vários ficheiros JAR de controladores, separando-os com vírgulas. | Sim | |
--host |
localhost | O nome do anfitrião ou o endereço IP do servidor de base de dados. | Não |
--oracle-service |
O nome do serviço Oracle a usar para a ligação. |
Não explicitamente, mas tem de especificar esta flag ou a flag --oracle-sid . |
|
--oracle-sid |
O identificador do sistema (SID) do Oracle a usar para a ligação. |
Não explicitamente, mas tem de especificar esta flag ou a flag --oracle-service . |
|
--password |
A palavra-passe a usar para a ligação à base de dados. | Se não for especificado, a ferramenta de extração usa um comando seguro para o pedir. | |
--port |
1521 | A porta do servidor de base de dados. | Não |
--user |
O nome de utilizador a usar para a ligação à base de dados.
O utilizador que especificar tem de ter a função |
Sim |
Exemplos
O exemplo seguinte mostra como extrair metadados para uma base de dados Oracle num anfitrião especificado, usando o serviço Oracle para a ligação:
dwh-migration-dumper \
--connector oracle \
--driver path/ojdbc8.jar \
--host host \
--oracle-service service_name \
--password password \
--user user
Floco de neve
A tabela seguinte descreve as flags usadas frequentemente para extrair metadados do Snowflake através da ferramenta dwh-migration-dumper
. Para ver informações sobre todas as flags suportadas, consulte as flags globais.
Nome | Valor predefinido | Descrição | Obrigatório |
---|---|---|---|
--assessment |
Ativa o modo de avaliação quando gera registos da base de dados ou extrai metadados.
A ferramenta |
Apenas para avaliação. | |
--connector |
O nome do conetor a usar, neste caso, snowflake. | Sim | |
--database |
O nome da base de dados a extrair. Só pode extrair dados de uma base de dados de cada vez do Snowflake. Esta flag não é permitida no modo de avaliação. |
Apenas para tradução. | |
--host |
localhost | O nome do anfitrião ou o endereço IP do servidor de base de dados. | Não |
--private-key-file |
O caminho para a chave privada RSA usada para autenticação. Recomendamos a utilização de um utilizador com autenticação baseada num par de chaves. |
Não, se não for fornecida, a ferramenta de extração usa uma autenticação baseada em palavra-passe. | |
--private-key-password |
A palavra-passe que foi usada quando criou a chave privada RSA. |
Não, só é necessário se a chave privada estiver encriptada. | |
--password |
A palavra-passe a usar para a ligação à base de dados. | Se não for especificado, a ferramenta de extração usa um comando seguro para o pedir. No entanto, recomendamos que use a autenticação baseada em par de chaves. | |
--role |
A função do Snowflake a usar para autorização. Só precisa de especificar
isto para instalações grandes onde tem de obter metadados do
esquema SNOWFLAKE.ACCOUNT_USAGE em vez de
INFORMATION_SCHEMA . Para mais informações, consulte o artigo
Trabalhar com instâncias grandes do Snowflake.
|
Não | |
--user |
O nome de utilizador a usar para a ligação à base de dados. |
Sim | |
--warehouse |
O armazém do Snowflake a usar para o processamento de consultas de metadados. |
Sim |
Exemplos
O exemplo seguinte mostra como extrair metadados para avaliação:
dwh-migration-dumper \
--connector snowflake \
--assessment \
--host "account.snowflakecomputing.com" \
--role role \
--user user \
--private-key-file private-key-file \
--private-key-password private-key-password \
--warehouse warehouse
O exemplo seguinte mostra como extrair metadados para uma base de dados do Snowflake de tamanho normal no anfitrião local:
dwh-migration-dumper \
--connector snowflake \
--database database \
--user user \
--private-key-file private-key-file \
--private-key-password private-key-password \
--warehouse warehouse
O exemplo seguinte mostra como extrair metadados para uma base de dados Snowflake grande num anfitrião especificado:
dwh-migration-dumper \
--connector snowflake \
--database database \
--host "account.snowflakecomputing.com" \
--role role \
--user user \
--private-key-file private-key-file \
--private-key-password private-key-password \
--warehouse warehouse
Em alternativa, pode usar o exemplo seguinte para extrair metadados através da autenticação baseada em palavra-passe:
dwh-migration-dumper \
--connector snowflake \
--database database \
--host "account.snowflakecomputing.com" \
--password password \
--user user \
--warehouse warehouse
Trabalhar com grandes instâncias do Snowflake
A ferramenta dwh-migration-dumper
lê os metadados do Snowflake
INFORMATION_SCHEMA
. No entanto, existe um limite para a quantidade de dados que pode
obter do INFORMATION_SCHEMA
. Se executar a ferramenta de extração e receber o erro SnowflakeSQLException:
Information schema query returned too much data
, tem de seguir os passos abaixo para poder ler os metadados do esquema SNOWFLAKE.ACCOUNT_USAGE
:
- Abra a opção Partilhas na interface Web do Snowflake.
Crie uma base de dados a partir da partilha
SNOWFLAKE.ACCOUNT_USAGE
:-- CREATE DATABASE database FROM SHARE SNOWFLAKE.ACCOUNT_USAGE;
Crie uma função:
CREATE ROLE role;
Conceda privilégios de
IMPORTED
na nova base de dados à função:GRANT IMPORTED PRIVILEGES ON DATABASE database TO ROLE role;
Conceda a função ao utilizador que pretende usar para executar a ferramenta
dwh-migration-dumper
:GRANT ROLE role TO USER user;
Vertica
Para permitir que a ferramenta dwh-migration-dumper
se ligue ao Vertica, transfira o respetivo controlador JDBC a partir da página de transferência.
A tabela seguinte descreve as flags usadas frequentemente para extrair metadados do Vertica através da ferramenta de extração. Para ver informações sobre todas as flags suportadas, consulte as flags globais.
Nome | Valor predefinido | Descrição | Obrigatório |
---|---|---|---|
--connector |
O nome do conetor a usar, neste caso, vertica. | Sim | |
--database |
O nome da base de dados à qual estabelecer ligação. |
Sim | |
--driver |
O caminho absoluto ou relativo para o ficheiro JAR do controlador a usar para esta ligação. Pode especificar vários ficheiros JAR de controladores, separando-os com vírgulas. | Sim | |
--host |
localhost | O nome do anfitrião ou o endereço IP do servidor de base de dados. | Não |
--password |
A palavra-passe a usar para a ligação à base de dados. | Sim | |
--port |
5433 | A porta do servidor de base de dados. | Não |
--user |
O nome de utilizador a usar para a ligação à base de dados. | Sim |
Exemplos
O exemplo seguinte mostra como extrair metadados de uma base de dados Vertica no anfitrião local:
dwh-migration-dumper \
--driver path/vertica-jdbc.jar \
--connector vertica \
--database database
--user user
--password password
Sinalizações globais
A tabela seguinte descreve as flags que podem ser usadas com qualquer uma das plataformas de origem suportadas.
Nome | Descrição |
---|---|
--connector |
O nome do conetor para o sistema de origem. |
--database |
A utilização varia consoante o sistema de origem. |
--driver |
O caminho absoluto ou relativo para o ficheiro JAR do controlador a usar quando se liga ao sistema de origem. Pode especificar vários ficheiros JAR do controlador, separando-os por vírgulas. |
--dry-run ou -n |
Mostrar as ações que a ferramenta de extração faria sem as executar. |
--help |
Apresenta a ajuda da linha de comandos. |
--host |
O nome do anfitrião ou o endereço IP do servidor de base de dados ao qual estabelecer ligação. |
--jdbcDriverClass |
Substitui opcionalmente o nome da classe do controlador JDBC especificado pelo fornecedor. Use esta opção se tiver um cliente JDBC personalizado. |
--output |
O caminho do ficheiro ZIP de saída. Por exemplo,
dir1/dir2/teradata-metadata.zip . Se não especificar um caminho, o ficheiro de saída é criado no diretório de trabalho. Se especificar o caminho para um diretório, o nome do ficheiro ZIP predefinido é criado no diretório especificado. Se o diretório não existir, é criado.
Para usar o Cloud Storage, use o seguinte formato: Para fazer a autenticação através de Trusted Cloud by S3NS credenciais, consulte o artigo Autentique-se para usar bibliotecas cliente. |
--password |
A palavra-passe a usar para a ligação à base de dados. |
--port |
A porta do servidor de base de dados. |
--save-response-file |
Guarda as suas flags de linha de comandos num ficheiro JSON para reutilização fácil. O ficheiro tem o nome dumper-response-file.json e é criado no diretório de trabalho. Para usar o ficheiro de resposta, indique o caminho para o mesmo
com o prefixo @ quando executar a ferramenta de extração, por
exemplo, dwh-migration-dumper @path/to/dumper-response-file.json .
|
--schema |
Uma lista dos esquemas a extrair, separados por vírgulas.
O Oracle não distingue entre um
esquema
e o utilizador da base de dados que criou o esquema, pelo que pode usar
nomes de esquemas ou nomes de utilizadores com a flag |
--thread-pool-size |
Define o tamanho do conjunto de threads, que afeta o tamanho do conjunto de ligações.
O tamanho predefinido do conjunto de threads é o número de núcleos no servidor que executa a ferramenta Se a ferramenta de extração parecer lenta ou precisar de mais recursos, pode aumentar o número de threads usados. Se existirem indicações de que outros processos no servidor requerem mais largura de banda, pode diminuir o número de threads usados. |
--url |
O URL a usar para a ligação à base de dados, em vez do URI gerado pelo controlador JDBC. Na maioria dos casos, o URI gerado deve ser suficiente. Substitua apenas o URI gerado quando precisar de usar uma definição de ligação JDBC específica da plataforma de origem e que ainda não esteja definida por um dos indicadores indicados nesta tabela. |
--user |
O nome de utilizador a usar para a ligação à base de dados. |
--version |
Apresenta a versão do produto. |
--telemetry |
Recolhe estatísticas sobre as caraterísticas de desempenho das execuções, como a duração, o número de execuções e a utilização de recursos. Esta opção está ativada por predefinição. Para
desativar a telemetria, defina esta flag como |
Resolução de problemas
Esta secção explica alguns problemas comuns e técnicas de resolução de problemas para a ferramenta dwh-migration-dumper
.
Erro de falta de memória
O erro java.lang.OutOfMemoryError
no resultado do terminal da ferramenta dwh-migration-dumper
está frequentemente relacionado com memória insuficiente para processar os dados obtidos.
Para resolver este problema, aumente a memória disponível ou reduza o número de threads de processamento.
Pode aumentar a memória máxima exportando a variável de ambiente JAVA_OPTS
:
Linux
export JAVA_OPTS="-Xmx4G"
Windows
set JAVA_OPTS="-Xmx4G"
Pode reduzir o número de threads de processamento (o valor predefinido é 32) incluindo a flag --thread-pool-size
. Esta opção só é suportada para conectores hiveql
e redshift*
.
dwh-migration-dumper --thread-pool-size=1
Processar um erro WARN...Task failed
Por vezes, pode ver um erro WARN [main]
o.c.a.d.MetadataDumper [MetadataDumper.java:107] Task failed: …
no resultado do terminal da ferramenta dwh-migration-dumper
. A ferramenta de extração envia várias consultas ao sistema de origem e o resultado de cada consulta é escrito no seu próprio ficheiro. A apresentação deste problema indica que uma destas consultas falhou. No entanto, a falha de uma consulta não impede a execução das outras consultas. Se vir mais do que alguns erros, reveja os detalhes do problema e verifique se existe algo que precise de corrigir para que a consulta seja executada corretamente.WARN
Por exemplo, se o utilizador da base de dados que especificou quando executou a ferramenta de extração não tiver autorizações para ler todos os metadados, tente novamente com um utilizador com as autorizações corretas.
Ficheiro ZIP danificado
Para validar o ficheiro ZIP da ferramenta dwh-migration-dumper
, transfira o
ficheiro SHA256SUMS.txt
e execute o seguinte comando:
Bash
sha256sum --check SHA256SUMS.txt
O resultado OK
confirma a validação da soma de verificação bem-sucedida. Qualquer outra mensagem
indica um erro de validação:
FAILED: computed checksum did NOT match
: o ficheiro ZIP está danificado e tem de ser transferido novamente.FAILED: listed file could not be read
: não é possível localizar a versão do ficheiro ZIP. Certifique-se de que os ficheiros ZIP e de soma de verificação são transferidos a partir da mesma versão de lançamento e colocados no mesmo diretório.
Windows PowerShell
(Get-FileHash RELEASE_ZIP_FILENAME).Hash -eq ((Get-Content SHA256SUMS.txt) -Split " ")[0]
Substitua RELEASE_ZIP_FILENAME
pelo nome do ficheiro ZIP transferido da versão da ferramenta de extração de linhas de comando dwh-migration-dumper
, por exemplo, dwh-migration-tools-v1.0.52.zip
O resultado True
confirma a validação da soma de verificação bem-sucedida.
O resultado False
indica um erro de validação. Certifique-se de que os ficheiros ZIP e de soma de verificação são transferidos a partir da mesma versão de lançamento e colocados no mesmo diretório.
A extração de registos de consultas do Teradata é lenta
Para melhorar o desempenho da união de tabelas especificadas pelas flags -Dteradata-logs.query-logs-table
e -Dteradata-logs.sql-logs-table
, pode incluir uma coluna adicional do tipo DATE
na condição JOIN
. Esta coluna tem de ser definida em ambas as tabelas e tem de fazer parte do índice principal particionado. Para incluir
esta coluna, use a flag -Dteradata-logs.log-date-column
.
Exemplo:
Bash
dwh-migration-dumper \ -Dteradata-logs.query-logs-table=historicdb.ArchivedQryLogV \ -Dteradata-logs.sql-logs-table=historicdb.ArchivedDBQLSqlTbl \ -Dteradata-logs.log-date-column=ArchiveLogDate
Windows PowerShell
dwh-migration-dumper ` "-Dteradata-logs.query-logs-table=historicdb.ArchivedQryLogV" ` "-Dteradata-logs.sql-logs-table=historicdb.ArchivedDBQLSqlTbl" ` "-Dteradata-logs.log-date-column=ArchiveLogDate"
O limite de tamanho das linhas do Teradata foi excedido
O Teradata 15 tem um limite de tamanho de linha de 64 KB. Se o limite for excedido, o dumper falha com a seguinte mensagem:
none
[Error 9804] [SQLState HY000] Response Row size or Constant Row size overflow
Para resolver este erro, aumente o limite de linhas para 1 MB ou divida as linhas em várias linhas:
- Instale e ative a funcionalidade de linhas permanentes e de respostas de 1 MB e o software TTU atual. Para mais informações, consulte o artigo Teradata Database Message 9804
- Divida o texto da consulta longo em várias linhas usando as flags
-Dteradata.metadata.max-text-length
e-Dteradata-logs.max-sql-length
.
O comando seguinte mostra a utilização da flag -Dteradata.metadata.max-text-length
para dividir o texto da consulta longo em várias linhas de, no máximo, 10 000 carateres cada:
Bash
dwh-migration-dumper \ --connector teradata \ -Dteradata.metadata.max-text-length=10000
Windows PowerShell
dwh-migration-dumper ` --connector teradata ` "-Dteradata.metadata.max-text-length=10000"
O comando seguinte mostra a utilização da flag -Dteradata-logs.max-sql-length
para dividir o texto da consulta longo em várias linhas de, no máximo, 10 000 carateres cada:
Bash
dwh-migration-dumper \ --connector teradata-logs \ -Dteradata-logs.max-sql-length=10000
Windows PowerShell
dwh-migration-dumper ` --connector teradata-logs ` "-Dteradata-logs.max-sql-length=10000"
Problema de ligação da Oracle
Em casos comuns, como uma palavra-passe ou um nome do anfitrião inválido, a ferramenta dwh-migration-dumper
imprime
uma mensagem de erro significativa que descreve o problema principal. No entanto, em alguns casos, a mensagem de erro devolvida pelo servidor Oracle pode ser genérica e difícil de investigar.
Um destes problemas é IO Error: Got minus one from a read call
. Este erro indica que a ligação ao servidor Oracle foi estabelecida, mas o servidor não aceitou o cliente e fechou a ligação. Normalmente, este problema ocorre quando o servidor aceita apenas ligações TCPS
. Por predefinição, a ferramenta dwh-migration-dumper
usa o protocolo TCP
. Para resolver este problema, tem de substituir o URL de ligação JDBC da Oracle.
Em vez de fornecer as flags oracle-service
, host
e port
, pode
resolver este problema fornecendo a flag url
no seguinte formato:
jdbc:oracle:thin:@tcps://{HOST_NAME}:{PORT}/{ORACLE_SERVICE}
. Normalmente, o número da porta usado pelo servidor Oracle é 2484
.TCPS
Exemplo de comando do dumper:
dwh-migration-dumper \
--connector oracle-stats \
--url "jdbc:oracle:thin:@tcps://host:port/oracle_service" \
--assessment \
--driver "jdbc_driver_path" \
--user "user" \
--password
Além de alterar o protocolo de ligação para TCPS, pode ter de fornecer a configuração SSL trustStore necessária para validar o certificado do servidor Oracle. Uma configuração SSL em falta resulta numa mensagem de erro Unable to find valid
certification path
. Para resolver este problema, defina a variável de ambiente JAVA_OPTS:
set JAVA_OPTS=-Djavax.net.ssl.trustStore="jks_file_location" -Djavax.net.ssl.trustStoreType=JKS -Djavax.net.ssl.trustStorePassword="password"
Consoante a configuração do servidor Oracle, também pode ter de fornecer a configuração do keyStore. Consulte o artigo SSL com o controlador JDBC da Oracle para mais informações sobre as opções de configuração.
O que se segue?
Depois de executar a dwh-migration-dumper
ferramenta,
carregue a saída para o Cloud Storage
juntamente com os ficheiros de origem para tradução.