SnowConvert: Teradata

Argumentos específicos da CLI

Os seguintes argumentos da CLI são específicos para a execução de migrações com o SnowConvert para Teradata

--displaceDatabaseAsSchema

Esse sinalizador deve ser usado com o parâmetro -s. Quando usado, ele manterá a qualificação do nome do banco de dados do Teradata como o data warehouse do Snowflake, ao contrário do comportamento padrão, em que ele se torna um esquema no código do Snowflake. Vejamos um exemplo em que -s customSchema está incluído:

SELECT * FROM databaseName.tableName;
Copy
-- Additional Params: -s customSchema
SELECT
* FROM
customSchema.tableName;
Copy
-- Additional Params: -s customSchema --displaceDatabaseAsSchema
SELECT
* FROM
databaseName.customSchema.tableName;
Copy

--CharacterToApproximateNumber <NUMBER>

Um valor inteiro para a transformação de CHARACTER em número aproximado (Padrão: 10).

--DefaultDateFormat <STRING>

Valor da cadeia de caracteres para o formato padrão DATE (Padrão: "YYYY/MM/DD").

--DefaultTimeFormat <STRING>

Valor da cadeia de caracteres para o formato padrão TIME (Padrão: "HH:MI:SS").

--DefaultTimestampFormat <STRING>

Valor da cadeia de caracteres para o formato padrão TIMESTAMP (Padrão: "YYYY/MM/DD HH:MI:SS").

--DefaultTimezoneFormat <STRING>

Valor da cadeia de caracteres para o formato padrão TIMEZONE (Padrão: "GMT-5").

-p, --scriptTargetLanguage <TARGET_LANGUAGE>

O valor da cadeia de caracteres especifica a linguagem de destino para converter os arquivos de script Bteq e Mload. Os valores atualmente suportados são SnowScript e Python. O valor padrão é definido como Python.

-n, --SessionMode <SESSION_MODE>

O SnowConvert manipula o código Teradata nos modos TERA e ANSI. Atualmente, isso se limita à especificação do caso padrão dos dados de caracteres e como isso afeta as comparações.

O valor da cadeia de caracteres especifica o modo de sessão do código de entrada. Os valores suportados atualmente são TERA e ANSI. O valor padrão é definido como TERA.

Você pode saber mais sobre como o SnowConvert trata e converte o código dependendo do modo de sessão, veja aqui.

--replaceDeleteAllToTruncate

Sinalizador para indicar se as instruções Delete All devem ser substituídas por Truncate ou não. Isso gerará SSC-EWI-TD0037 quando a substituição for feita. Exemplo:

create table testTable(
    column1 varchar(30)
);

delete testTable all;

delete from testTable;
Copy
CREATE OR REPLACE TABLE testTable (
    column1 varchar(30)
)
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"teradata"}}'
;

DELETE FROM testTable;

DELETE FROM 
    testTable;
Copy
-- Additional Params: --replaceDeleteAllToTruncate
CREATE OR REPLACE TABLE testTable (
    column1 varchar(30)
)
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"teradata"}}'
;

TRUNCATE TABLE testTable;

DELETE FROM 
    testTable;
Copy

--generateStoredProcedureTags

Sinalizador para indicar se as instruções SQL SELECT, INSERT, CREATE, DELETE, UPDATE, DROP, MERGE em procedimentos armazenados serão marcadas no código convertido. Esse recurso é usado para facilitar a identificação de instruções no código migrado. O fato de envolver essas instruções nessas tags semelhantes a XMLpermite que outros programas as encontrem e extraiam rapidamente. O código decorado tem a seguinte aparência:

//<SQL_DELETE
EXEC(DELETE FROM SB_EDP_SANDBOX_LAB.PUBLIC.USER_LIST,[])
//SQL_DELETE!>
Copy

--splitPeriodDatatype

Esse sinalizador é usado para indicar que a ferramenta deve migrar qualquer uso do tipo de dados PERIOD como dois campos DATETIME separados que manterão os valores originais de início e fim do período. Sempre que um campo ou função de período for migrado usando esse sinalizador, SSC-FDM-TD0004 serão adicionados para alertar sobre essa alteração.

CREATE TABLE myTable(
   col1 PERIOD(DATE),
   col2 VARCHAR(50),
   col3 PERIOD(TIMESTAMP)
);
Copy
CREATE OR REPLACE TABLE myTable (
   col1 VARCHAR(24) !!!RESOLVE EWI!!! /*** SSC-EWI-TD0053 - SNOWFLAKE DOES NOT SUPPORT THE PERIOD DATATYPE, ALL PERIODS ARE HANDLED AS VARCHAR INSTEAD ***/!!!,
   col2 VARCHAR(50),
   col3 VARCHAR(58) !!!RESOLVE EWI!!! /*** SSC-EWI-TD0053 - SNOWFLAKE DOES NOT SUPPORT THE PERIOD DATATYPE, ALL PERIODS ARE HANDLED AS VARCHAR INSTEAD ***/!!!
)
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"teradata"}}'
;
Copy
-- Additional Params: --splitPeriodDatatype
CREATE OR REPLACE TABLE myTable (
   col1_begin DATE,
   col1_end DATE /*** SSC-FDM-TD0004 - PERIOD DATA TYPES ARE HANDLED AS TWO DATA FIELDS ***/,
   col2 VARCHAR(50),
   col3_begin TIMESTAMP,
   col3_end TIMESTAMP /*** SSC-FDM-TD0004 - PERIOD DATA TYPES ARE HANDLED AS TWO DATA FIELDS ***/
)
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"teradata"}}'
;
Copy

--arrange

Sinalizador para indicar se o código de entrada deve ser processado antes da análise e da transformação.

--RenamingFile

O caminho para um arquivo .json que especifica novos nomes para determinados objetos, como tabelas, visualizações, procedimentos, funções e macros. Esse parâmetro não pode ser usado com o argumento customSchema. Navegue até Recurso de renomeação para saber mais sobre esse argumento.

--UseCollateForCaseSpecification

Esse sinalizador indica se você deve usar COLLATE ou UPPER para preservar a funcionalidade de especificação de maiúsculas e minúsculas, por exemplo, CASESPECIFIC ou NOT CASESPECIFIC. Por padrão, ela está desativada, o que significa que a função UPPER será usada para emular a insensibilidade a maiúsculas e minúsculas (NOT CASESPECIFIC). Para saber mais sobre como a especificação de casos é tratada pelo SnowConvert, veja aqui.