EM TABELAS
Use a cláusula INTO TABLES para especificar nomes para os objetos de destino quando eles forem diferentes dos nomes dos nascentes. Seu escopo pode estar em várias tabelas. Os objetos rebatizados podem ser as próprias tabelas, suas colunas ou seus espaços de mesa associados.
- EM TABELAS
- Sintaxe
- INTO TABLES ( src_tbname | src_qualifier.src_tbname : tgt_tbname | tgt_qualifier.tgt_tbname [COM COLUNAS ( src_col : tgt_col | dft_colfamily [, src_col : tgt_col : colfamily]) ]] [IN ( tsname ) ])
- Variável
- src_tbname Nome da tabela de origem.
- Padrão
- Nenhum.
- Exemplo
- INTO TABELAS (EMPREGADO: NEW_USER.NEW_EMPLOYEE)
- Tabelas, colunas e tablespaces especificados no arquivo de controle
- Especifique diretamente no arquivo de controle a lista de nomes de tabelas, nomes de colunas e nomes de tablespace preocupados, respectivamente com as palavras-chave INTO TABLES, COM COLUNASe IN.
- Você pode especificar o número de tabelas que deseja, através de uma lista de especificações associadas separadas com vírgulas.
- src_qualifier.src-tbname ou src_tbname: indique a tabela de origem com a qual você deseja associar nomes de destino. Ao processar um banco de dados inteiro, todas as tabelas especificadas na cláusula devem existir neste banco de dados. Ao processar um tablespace inteiro, todas as tabelas especificadas na cláusula devem existir neste tablespace. Todos os nomes de tabelas de origem devem ser distintos.
- tgt_qualifier.tgt_tbname ou tgt_tbname: especificar o qualificador de tabela de destino e / ou nome a ser associado à tabela de origem correspondente.
Todos os nomes de tabela alvo devem ser distintos.
- COM COLUNAS: seu conteúdo depende do ambiente de destino considerado.
- Se o destino considerado for um Db2 um, especifique uma lista de pares de nomes de coluna, a fim de relacionar colunas da tabela de origem associada a colunas de sua tabela de destino. Para uma determinada coluna de origem, o nome da coluna de destino associado será usado internamente para uma migração de dados, ou será levado em conta ao gerar um comando Db2 Load correspondente e / ou uma instrução CREATE TABLE. Todos os nomes de colunas de origem especificados devem existir na tabela de origem.
- Se o destino considerado é um HBase um, especifique uma família de coluna padrão, opcionalmente seguido por uma lista de associações agravada por um nome de coluna da tabela de origem, um nome de coluna da tabela alvo e sua família de coluna associada na tabela de destino. Os nomes de colunas e as famílias de colunas especificadas serão internamente levados em conta para uma migração automática de dados, ou serão levados em conta ao gerar um comando de upload para este destino. Todos os nomes de colunas de origem especificados devem existir na tabela de origem.
- IN: especificar uma lista de nomes de tablespace. Esta lista de tablespaces é usada ao gerar uma instrução CREATE TABLE.Nota:
Se uma cláusula DDLOPT for especificada no arquivo de controle com a opção IN e se uma cláusula INTO TABLES com a opção IN for especificada também, a opção IN da cláusula DDLOPT será ignorada (a opção IN da cláusula INTO TABLES será usada).
- Tabelas, colunas e tablespaces especificados em um arquivo externo
Especificar um nome de arquivo externo contendo uma lista de nomes de tabelas, nomes de colunas e nomes de tablespace preocupados, com as palavras-chave INTO TABLES IN.
- Esquema no arquivo de controle
Especificar um esquema de destino a ser considerado para uma migração de dados ou uma tarefa de descarregamento de dados. Por padrão, Optim™ High Performance Unload usa o esquema de cada tabela a ser processada. Se esta opção for usada, o esquema especificado substitui o padrão um, e ele é usado para uma tarefa de migração de dados ou para uma tarefa de descarregamento se este estiver acompanhado com uma geração de comando Db2 Load.
- Descrição do arquivo externo
Uma entrada por tabela você deseja especificar uma associação de nomes para. Não é possível dividir a especificação de uma tabela em várias linhas, pois isso causaria um conteúdo desconhecido para Optim High Performance Unload.
Você pode especificar o número de tabelas que deseja, com quantas entradas forem necessárias no arquivo.
Dependendo do destino considerado, cada entrada deve ser formatada de acordo com o modelo a seguir:- para um destino Db2 :
src_qual.src_tb:tgt_qual.tgt_tb;src_co11:tgt_col1,...,src_coln:tgt_coln;ts1,...,tsn - para um destino HBase:
src_qual.src_tb:tgt_qual.tgt_tb;colFamilyDft,src_co11:tgt_col1:colFamilyA,...,src_coln:tgt_coln:colFamilyB;ts1,...,tsn
Uma entrada deve conter dois caracteres de ponto e vírgula (';'), a fim de separar os seus três componentes diferentes (tabelas, colunas, tablespaces), mesmo que não seja necessário especificar nomes de colunas ou nomes de tablespace. A associação de nomes de tabelas é obrigatória, mas os nomes de colunas e listas de nomes de tablespace são opcionais.
Você pode omitiar pelo menos uma dessas duas últimas especificações. A seguir estão alguns exemplos:
1/ SOURCE_TABLE:TARGET_TABLE;SOURCE_COL1:TARGET_COL1; 2/ SOURCE_TABLE:TARGET_TABLE;;TSAME1,TSNAME2,TSNAME3 3/ SOURCE_TABLE:TARGET_TABLE;;1 / Não há especificação de tablespace.
2 / Não há especificação de coluna.
3 / Não há especificação de coluna nem de tablespace.
O uso de tal arquivo externo é uma alternativa de especificação de uma cláusula inteira INTO TABLES em um arquivo de controle. Como resultado, para qualquer entrada nele, o significado de seus três componentes (tabelas, colunas, tablespaces) é exatamente o mesmo que os respectivos três componentes de uma cláusula inteira INTO TABLES descrita acima.
- para um destino Db2 :
Se um comando de upload tiver que ser gerado para um destino HBase, é obrigatório que as informações sobre o ambiente de destino sejam reunidas através da especificação de uma cláusula INTO TABLES. Em tal caso, é obrigatório também que, seja sua opção COM COLUNAS seja especificada nele, com uma lista apropriada relacionando as colunas da tabela de origem com as colunas da tabela alvo e suas famílias, ou a mesma lista seja especificada no arquivo associado à opção IN.
Exemplo: Nomes de destinos especificados diretamente no arquivo de controle
Aqui está o resultado da Optim High Performance Unload execução :
[i1010@lat179(hm510_mnt:) ~]$ db2hpu -i i1010 -f sysin_example_doc
INZM031I Optim High Performance Unload for Db2 06.01.00.001(130628)
64 bits 07/02/2013 (Linux lat179 x86_64)
INZI473I Memory limitations: 'unlimited' for virtual memory and 'unlimited' for data segment
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----
+----9----+----10---+----11---+----12---+----13-
000001 GLOBAL CONNECT TO SAMPLE;
000002 UNLOAD TABLESPACE USERSPACE1
000003 DB2 NO LOCK NO FLUSH BUFFERPOOLS NO
000004
000005 ONLY TABLES (EMPLOYEE, DEPARTMENT)
000006
000007 INTO TABLES (EMPLOYEE : NEW_USER.NEW_EMPLOYEE
000008 WITH COLUMNS (FIRSTNME:FIRST_NAME, PHONENO:PHONE_NUMBER)
000009 IN (NEW_TABLESPACE1) )
000010
000011 LOADFILE("loadfile")
000012 DDLFILE("ddlfile")
000013 OUTFILE("outfile")
000014
000015 FORMAT DEL;
INZU462I HPU control step start: 10:02:19.675.
INZU463I HPU control step end : 10:02:19.766.
INZU464I HPU run step start : 10:02:19.767.
INZU410I HPU utility has unloaded 14 rows on lat179 host for I1010.DEPARTMENT in outfile_USERSPACE1_I1010_DEPARTMENT.
INZU622I HPU utility has generated the DDL file ddlfile_USERSPACE1_I1010_DEPARTMENT.
INZU442I HPU utility has generated the LOAD file loadfile_USERSPACE1_I1010_DEPARTMENT (LRECL=0).
INZU410I HPU utility has unloaded 42 rows on lat179 host for I1010.EMPLOYEE in outfile_USERSPACE1_I1010_EMPLOYEE.
INZU622I HPU utility has generated the DDL file ddlfile_USERSPACE1_I1010_EMPLOYEE.
INZU442I HPU utility has generated the LOAD file loadfile_USERSPACE1_I1010_EMPLOYEE (LRECL=0).
INZU465I HPU run step end : 10:02:19.878.
INZI441I HPU successfully ended: Real time -> 0m0.203769s
User time -> 0m0.027995s : Parent -> 0m0.027995s, Children -> 0m0.000000s
Syst time -> 0m0.024996s : Parent -> 0m0.024996s, Children -> 0m0.000000s
Conteúdo dos arquivos gerados com comandos de Carga Db2 :
[i1010@lat179(hm510_mnt:) ~]$ cat loadfile_USERSPACE1_I1010_EMPLOYEE
LOAD FROM "outfile_USERSPACE1_I1010_EMPLOYEE" OF DEL
MODIFIED BY CODEPAGE=1208
INSERT INTO "NEW_USER"."NEW_EMPLOYEE" ("EMPNO",
"FIRST_NAME",
"MIDINIT",
"LASTNAME",
"WORKDEPT",
"PHONE_NUMBER",
"HIREDATE",
"JOB",
"EDLEVEL",
"SEX",
"BIRTHDATE",
"SALARY",
"BONUS",
"COMM");
[i1010@lat179(hm510_mnt:) ~]$ cat loadfile_USERSPACE1_I1010_DEPARTMENT
LOAD FROM "outfile_USERSPACE1_I1010_DEPARTMENT" OF DEL
MODIFIED BY CODEPAGE=1208
INSERT INTO "I1010"."DEPARTMENT" ("DEPTNO","DEPTNAME","MGRNO","ADMRDEPT","LOCATION");
Conteúdo dos arquivos gerados com comandos DDL:
[i1010@lat179(hm510_mnt:) ~]$ cat ddlfile_USERSPACE1_I1010_EMPLOYEE
CREATE TABLE "NEW_USER"."NEW_EMPLOYEE" (
"EMPNO" CHAR(6 OCTETS) NOT NULL ,
"FIRST_NAME" VARCHAR(12 OCTETS) NOT NULL ,
"MIDINIT" CHAR(1 OCTETS) ,
"LASTNAME" VARCHAR(15 OCTETS) NOT NULL ,
"WORKDEPT" CHAR(3 OCTETS) ,
"PHONE_NUMBER" CHAR(4 OCTETS) ,
"HIREDATE" DATE ,
"JOB" CHAR(8 OCTETS) ,
"EDLEVEL" SMALLINT NOT NULL ,
"SEX" CHAR(1 OCTETS) ,
"BIRTHDATE" DATE ,
"SALARY" DECIMAL(9,2) ,
"BONUS" DECIMAL(9,2) ,
"COMM" DECIMAL(9,2) )
IN "NEW_TABLESPACE1" ;
[i1010@lat179(hm510_mnt:) ~]$ cat ddlfile_USERSPACE1_I1010_DEPARTMENT
CREATE TABLE "I1010"."DEPARTMENT" (
"DEPTNO" CHAR(3 OCTETS) NOT NULL ,
"DEPTNAME" VARCHAR(36 OCTETS) NOT NULL ,
"MGRNO" CHAR(6 OCTETS) ,
"ADMRDEPT" CHAR(3 OCTETS) NOT NULL ,
"LOCATION" CHAR(16 OCTETS) )
IN "USERSPACE1" ;
Em negrito estão os nomes de destino modificados especificados na cláusula INTO TABLES do arquivo de controle
Exemplo: Nomes de destinos especificados em um arquivo externo
Considerando o arquivo externo a seguir
[i1010@lat179(hm510_mnt:) ~]$ cat /home/i1010/into_tables.txt
EMPLOYEE:NEW_USER.NEW_EMPLOYEE ; FIRSTNME:FIRST_NAME, PHONENO:PHONE_NUMBER ; NEW_TABLESPACE1
Resultado da Optim High Performance Unload execução:
[i1010@lat179(hm510_mnt:) ~]$ db2hpu -i i1010 -f sysin_example_doc
INZM031I Optim High Performance Unload for Db2 06.01.00.001(130628)
64 bits 07/02/2013 (Linux lat179 x86_64)
INZI473I Memory limitations: 'unlimited' for virtual memory and 'unlimited' for data segment
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----
+----9----+----10---+----11---+----12---+----13-
000001 GLOBAL CONNECT TO SAMPLE;
000002 UNLOAD TABLESPACE USERSPACE1
000003 DB2 NO LOCK NO FLUSH BUFFERPOOLS NO
000004
000005 ONLY TABLES (EMPLOYEE, DEPARTMENT)
000006
000007 INTO TABLES IN "/home/i1010/into_tables.txt"
000008
000009 LOADFILE("loadfile")
000010 DDLFILE("ddlfile")
000011 OUTFILE("outfile")
000012
000013 FORMAT DEL;
INZU462I HPU control step start: 10:30:01.634.
INZU463I HPU control step end : 10:30:01.741.
INZU464I HPU run step start : 10:30:01.742.
INZU410I HPU utility has unloaded 14 rows on lat179 host for I1010.DEPARTMENT in outfile_USERSPACE1_I1010_DEPARTMENT.
INZU622I HPU utility has generated the DDL file ddlfile_USERSPACE1_I1010_DEPARTMENT.
INZU442I HPU utility has generated the LOAD file loadfile_USERSPACE1_I1010_DEPARTMENT (LRECL=0).
INZU410I HPU utility has unloaded 42 rows on lat179 host for I1010.EMPLOYEE in outfile_USERSPACE1_I1010_EMPLOYEE.
INZU622I HPU utility has generated the DDL file ddlfile_USERSPACE1_I1010_EMPLOYEE.
INZU442I HPU utility has generated the LOAD file loadfile_USERSPACE1_I1010_EMPLOYEE (LRECL=0).
INZU465I HPU run step end : 10:30:01.797.
INZI441I HPU successfully ended: Real time -> 0m0.162494s
User time -> 0m0.031995s : Parent -> 0m0.031995s, Children -> 0m0.000000s
Syst time -> 0m0.016997s : Parent -> 0m0.016997s, Children -> 0m0.000000s
Conteúdo dos arquivos gerados com comandos de Carga Db2 :
[i1010@lat179(hm510_mnt:) ~]$ cat loadfile_USERSPACE1_I1010_EMPLOYEE
LOAD FROM "outfile_USERSPACE1_I1010_EMPLOYEE" OF DEL
MODIFIED BY CODEPAGE=1208
INSERT INTO "NEW_USER"."NEW_EMPLOYEE" ("EMPNO",
"FIRST_NAME",
"MIDINIT",
"LASTNAME",
"WORKDEPT",
"PHONE_NUMBER",
"HIREDATE",
"JOB",
"EDLEVEL",
"SEX",
"BIRTHDATE",
"SALARY",
"BONUS",
"COMM");
[i1010@lat179(hm510_mnt:) ~]$ cat loadfile_USERSPACE1_I1010_DEPARTMENT
LOAD FROM "outfile_USERSPACE1_I1010_DEPARTMENT" OF DEL
MODIFIED BY CODEPAGE=1208
INSERT INTO "I1010"."DEPARTMENT" ("DEPTNO","DEPTNAME","MGRNO","ADMRDEPT","LOCATION");
Conteúdo dos arquivos gerados com comandos DDL:
[i1010@lat179(hm510_mnt:) ~]$ cat ddlfile_USERSPACE1_I1010_EMPLOYEE
CREATE TABLE "NEW_USER"."NEW_EMPLOYEE" (
"EMPNO" CHAR(6) NOT NULL ,
"FIRST_NAME" VARCHAR(12) NOT NULL ,
"MIDINIT" CHAR(1) ,
"LASTNAME" VARCHAR(15) NOT NULL ,
"WORKDEPT" CHAR(3) ,
"PHONE_NUMBER" CHAR(4) ,
"HIREDATE" DATE ,
"JOB" CHAR(8) ,
"EDLEVEL" SMALLINT NOT NULL ,
"SEX" CHAR(1) ,
"BIRTHDATE" DATE ,
"SALARY" DECIMAL(9,2) ,
"BONUS" DECIMAL(9,2) ,
"COMM" DECIMAL(9,2) )
IN "NEW_TABLESPACE1" ;
[i1010@lat179(hm510_mnt:) ~]$ cat ddlfile_USERSPACE1_I1010_DEPARTMENT
CREATE TABLE "I1010"."DEPARTMENT" (
"DEPTNO" CHAR(3) NOT NULL ,
"DEPTNAME" VARCHAR(36) NOT NULL ,
"MGRNO" CHAR(6) ,
"ADMRDEPT" CHAR(3) NOT NULL ,
"LOCATION" CHAR(16) )
IN "USERSPACE1" ;
Em negrito estão os nomes de destino modificados especificados através do arquivo mencionado na cláusula INTO TABLES do arquivo de controle.