SnowConvert AI - Teradata

Argumentos específicos da CLI

Os seguintes argumentos de CLI são específicos para executar migrações com o SnowConvert AI para Teradata

--displaceDatabaseAsSchema

This flag must be used with the -s parameter. When used it will maintain Teradata’s database name qualification as Snowflake’s data warehouse, contrary to its default behavior where it becomes a schema on Snowflake code. Let’s look at an example where -s customSchema is included:

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

--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 TIME padrão (Padrão: "HH:MI:SS.FF6").

--DefaultTimestampFormat <STRING>

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

--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 AI trata o código Teradata nos modos TERA e ANSI. Atualmente, isto está limitado à especificação de maiúsculas/minúsculas 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.

Para saber mais sobre como o SnowConvert AI trata e converte código dependendo do modo de sessão, consulte 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;
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;
-- 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;

--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!>

--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)
);
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"}}'
;
-- 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"}}'
;

--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

This flag indicates whether to use COLLATE or UPPER to preserve Case Specification functionality, for example, CASESPECIFIC or NOT CASESPECIFIC. By default, it is turned off, meaning that the UPPER function will be used to emulate case insensitivity (NOT CASESPECIFIC). To learn more about how Case Specification is handled by SnowConvert AI check here.