CopyStageTransformer
Visão geral
Converte estágios COPY do DataStage em instruções SQL SELECT. Trata tanto entradas de conjuntos de dados (mapeadas para tabelas Snowflake) quanto entradas de estágios (referências a CTEs).
Tipo de estágio: COPY
Saída: SQL SELECT com filtragem e renomeação de colunas
Recursos
- Mapeia conjuntos de dados do DataStage para tabelas Snowflake
- Lê estágios anteriores por meio de schema_registry
- Aplica a filtragem de colunas da cláusula
keep - Trata definições de tipos de colunas da seção modify
- Deduplica colunas de estágios com múltiplas saídas
Exemplo de estágio DataStage
Entrada (formato .dsx)
#### STAGE: CopyDimension
## Operator
copy
## General options
[ident('CopyDimension')]
## Inputs
0< [ds] '[&"$PathDataSetWarehouse"]/DimLookup.ds'
## Outputs
0> [-pp; modify (
SOURCE_KEY:nullable decimal[38,10]=SOURCE_KEY;
DIMENSION_KEY:nullable decimal[15,0]=DIMENSION_KEY;
keep
SOURCE_KEY,DIMENSION_KEY;
)] 'CopyDimension:Out_Process.v'
Configuração do mapeamento de conjuntos de dados
dataset_table_mapping = {
'DimLookup.ds': 'PUBLIC.DIM_LOOKUP_TABLE'
}
SQL gerado
SELECT
SOURCE_KEY,
DIMENSION_KEY
FROM PUBLIC.DIM_LOOKUP_TABLE
Esquema de saída
[
{
"name": "SOURCE_KEY",
"type": "number"
},
{
"name": "DIMENSION_KEY",
"type": "number"
}
]
Como funciona
- Lê o caminho do conjunto de dados nas entradas:
[ds] '[&"$PathDataSetWarehouse"]/DimLookup.ds' - Mapeia o conjunto de dados para uma tabela Snowflake usando
dataset_table_mapping - Extrai os tipos das colunas da seção modify:
decimal[38,10]→numberdecimal[15,0]→numberstring[max=N]→string
- Aplica o filtro keep para selecionar apenas as colunas especificadas:
SOURCE_KEY, DIMENSION_KEY - Gera SELECT com a lista de colunas filtrada a partir da tabela mapeada
Mapeamento de tipos
Os tipos do DataStage são convertidos em tipos Snowflake:
| Tipo DataStage | Tipo Snowflake |
|---|---|
decimal[p,s] | number |
string[max=N] | string |
int32, int64 | number |
date | date |
timestamp | timestamp |
Filtragem de colunas
O transformador oferece três modos de filtragem:
-
Cláusula keep - Apenas as colunas especificadas são selecionadas
keep
SOURCE_KEY,DIMENSION_KEY; -
Cláusula drop - Todas as colunas, exceto as especificadas
drop
TEMP_COLUMN; -
Sem filtro - Todas as colunas da origem
Leitura de estágios e de conjuntos de dados
Entrada de conjunto de dados
## Inputs
0< [ds] '[&"$PathDataSetDwfatos"]/MyDataset.ds'
Exige mapeamento em dataset_table_mapping.
Entrada de estágio
## Inputs
0< [] 'PreviousStage:output.v'
Lê o esquema de schema_registry e referencia a CTE do estágio anterior.
Limitações
- Exige dataset_table_mapping para entradas de conjuntos de dados (sem descoberta automática de tabelas)
- Inferência de tipos de colunas depende do preenchimento da seção modify ou de schema_registry
- Múltiplos links de saída resultam em uma lista de colunas deduplicada
- Mapeamentos view não suportados (a renomeação de colunas em COPY deve usar um estágio MODIFY posterior)
Transformadores relacionados
- ModifyStageTransformer - Para renomeação e filtragem de colunas sem ler conjuntos de dados
- ImportStageTransformer - Para entradas de arquivos (CSV, arquivos sequenciais)
- InputStageTransformer - Para entradas de tabelas ou SQL Oracle