Carregando segmentos de conjuntos de dados em paralelo
Durante o carregamento total, você pode acelerar o carregamento de grandes conjuntos de dados dividindo o conjunto de dados em segmentos, que serão carregados em paralelo. As tabelas podem ser divididas por intervalos de dados, todas as partições, todas as subpartições ou partições específicas.
Cada segmento do conjunto de dados é carregado usando uma subtarefa separada. Portanto, ao decidir como dividir um conjunto de dados, você deve sempre levar em conta a disponibilidade de recursos de banco de dados e rede. Dividir uma tabela em muitos segmentos pode impactar o desempenho do banco de dados e sobrecarregar a capacidade da rede. Se você escolher o método de segmentação Intervalos de dados com um conjunto de dados particionado, a melhor prática é configurar os intervalos de modo que cada intervalo cubra uma ou mais partições inteiras. Isso agilizará a recuperação de dados e minimizará o impacto sobre os recursos de processamento do banco de dados.
Origens e destinos de dados compatíveis
A tarefa de dados deve ser definida com uma combinação dos seguintes conectores de origem e destino de dados.
Conectores de origem de dados compatíveis
- IBM DB2 for LUW
-
IBM DB2 for z/OS
Nota informativaA segmentação de tabela por partições ou subpartições não é compatível com o conector de origem do IBM DB2 para z/OS.
- Microsoft SQL Server (baseado em log)
- MySQL
- Oracle
-
PostgreSQL
Nota informativaA segmentação de tabela por partições ou subpartições não é compatível com o conector de origem do PostgreSQL.
- SAP (aplicativo)Nota informativa
As tabelas com o ponto de extremidade de origem SAP (Aplicativo) são dependentes do cliente por padrão. A coluna MANDT é automaticamente retirada diretamente do conector.
- SAP HANA (banco de dados)
Conectores de destino compatíveis
- Amazon Redshift
- Amazon S3
- Google Cloud BigQuery
- Google Cloud Storage
- Microsoft Fabric Data Warehouse
- Microsoft SQL Server
- MySQL
- Oracle
- PostgreSQL
- Snowflake
Configurando carga paralela
Você pode dividir uma tabela usando um destes dois métodos: Intervalos de dados ou Partições. O método Intervalos de dados divide a tabela por intervalos de dados, enquanto o método Partições divide a tabela de acordo com as partições.
Usando o método de intervalos de dados
Para definir os limites do segmento por intervalo de dados:
-
Na guia Conjuntos de dados, clique nomenu à direita do conjunto de dados e selecione Configurações.
O diálogo Carga paralela é aberto.
-
Selecione o método de segmentação intervalos de dados .
-
Clique em Selecionar colunas.
O diálogo Colunas de segmentação de tabela é aberto
-
Para todas as fontes de dados compatíveis, a coluna Índice exclusivo é selecionada automaticamente. Selecione quais colunas adicionais com dados você deseja usar para delinear os intervalos e clique em OK.
Nota informativa-
É recomendado usar colunas que não permitam NULLs e que não sejam atualizadas durante operações normais do banco de dados de origem (por exemplo, uma coluna de chave primária ou uma coluna de data com uma data fixa). Usar uma coluna que seja atualizada durante o carregamento total pode causar duplicatas no banco de dados de destino.
-
É recomendado usar colunas de origem indexadas, pois isso otimizará o desempenho da recuperação de dados.
-
Até dez colunas podem ser selecionadas
-
Registros com valores nulos não serão replicados
-
Os tipos de dados a seguir não podem ser usados para definir segmentos por intervalos: DOUBLE, FLOAT e LOB (BLOB, CLOB, NCLOB)
-
-
Clique em Adicionar intervalo de dados para adicionar um segmento de intervalo de dados.
O diálogo Adicionar intervalo de dados será aberto com as colunas selecionadas.
-
Para cada coluna, insira o intervalo de dados superior do segmento.
Nota informativaOs valores nas colunas DATE devem ser inseridos no formato compatível com a fonte. Por exemplo, para uma fonte Oracle, o formato correto seria o seguinte:
-
ALTER SESSION SET NLS_DATE_FORMAT:
'YYYY-MM-DD HH24:MI:SS' (especificar somente YYYY-MM-DD também é válido)
-
ALTER SESSION SET NLS_TIMESTAMP_FORMAT:
'YYYY-MM-DD HH24:MI:SS.FF9'
-
ALTER SESSION SET NLS_TIMESTAMP_TZ_FORMAT:
'YYYY-MM-DD HH24:MI:SS.FF9 TZH:TZM'
-
-
Clique em OK para salvar suas configurações e fechar o diálogo.
Cada uma das colunas selecionadas aparecerá com seu intervalo especificado.
- Repita as etapas 3 a 6 conforme necessário para adicionar colunas e intervalos de dados.
- Clique em Validar para validar se os dados inseridos correspondem ao tipo de dados da coluna de origem e se todos os segmentos definidos contêm valores.
Com o método de segmentação Intervalos de dados, todos os dados da tabela serão replicados, mesmo que os intervalos de dados não estejam definidos para todas as colunas.
Para editar um intervalo de dados:
- Clique no menu no final da linha e selecione Editar.
- Edite o intervalo de dados conforme necessário e clique em OK para salvar as alterações.
Para excluir um intervalo de dados:
- Clique no menu no final da linha e selecione Excluir.
- Quando solicitado a confirmar a exclusão, clique em Excluir.
Exemplo de uso
Vamos supor que os seguintes segmentos estejam definidos:
Column_1 | Column_2 | Column_3 |
---|---|---|
10 |
30 |
105 |
20 |
20 |
120 |
100 |
12 |
99 |
Nesse caso, as cláusulas "WHERE" a seguir serão criadas para cada segmento de carga:
- Segmento 1:((COL1 < 10) OR ((COL1 = 10) AND (COL2 < 30)) OR ((COL1 = 10) AND (COL2 = 30) AND (COL3 < 105)))
- Segmento 2:NOT ((COL1 < 10) OR ((COL1 = 10) AND (COL2 < 30)) OR ((COL1 = 10) AND (COL2 = 30) AND (COL3 < 105))) AND ((COL1 < 20) OR ((COL1 = 20) AND (COL2 < 20)) OR ((COL1 = 20) AND (COL2 = 20) AND (COL3 < 120)))
- Segmento 3:NOT ((COL1 < 20) OR ((COL1 = 20) AND (COL2 < 20)) OR ((COL1 = 30) AND (COL2 = 20) AND (COL3 < 120))) AND ((COL1 < 100) OR ((COL1 = 100) AND (COL2 < 12)) OR ((COL1 = 100) AND (COL2 = 12) AND (COL3 < 99)))
- Segmento 4:NOT ((COL1 < 100) OR ((COL1 = 100) AND (COL2 < 12)) OR ((COL1 = 100) AND (COL2 = 12) AND (COL3 < 99)))
Usando o método de partições
Você pode definir limites de segmento por todas as partições da tabela, todas as subpartições da tabela (se a fonte de dados for compatível com subpartições) ou por partições específicas.
- Esse método só pode ser usado se o conjunto de dados já estiver particionado.
- Se você tiver uma tarefa que existia antes do lançamento desse recurso e ainda não tiver iniciado a tarefa ou quiser recarregar uma ou mais tabelas em paralelo usando esse método, primeiro será necessário atualizar os metadados, conforme descrito em Registrando dados que já estão na plataforma de dados(O processo de atualização de metadados descrito neste tópico é o mesmo para todos os tipos de tarefa de dados).
Usando todas as partições
Para definir os limites do segmento por todas as partições ou subpartições da tabela:
-
Na guia Conjuntos de dados, clique nomenu à direita do conjunto de dados e selecione Configurações.
O diálogo Carga paralela é aberto.
-
Selecione o método de segmentação Partições.
-
Selecione um dos seguintes:
-
Usar todas as partições principais
-
Usar todas as subpartições
Nota informativaEsta opção será desabilitada se a fonte de dados não for compatível com subpartições.
-
- Clique em OK.
Usando partições específicas
Para definir os limites do segmento por meio de partições específicas:
-
Na guia Conjuntos de dados, clique nomenu à direita do conjunto de dados e selecione Configurações.
O diálogo Carga paralela é aberto.
-
Selecione o método de segmentação Partições.
-
Selecione Especificar partições.
Nota informativaQuando Especificar partições é selecionado, apenas as partições especificadas são replicadas.
-
Clique em Adicionar partição.
O diálogo Adicionar partição é aberto.
-
Especifique o nome de uma partição ou subpartição existente.
Se você estiver adicionando uma subpartição, marque a caixa de seleção Subpartição.
- Clique em OK para salvar suas configurações.
- Repita as etapas 4 a 6 conforme necessário para adicionar partições ou subpartições.
Para editar uma partição:
- Clique no menu no final da linha e selecione Editar.
- Edite as informações da partição conforme necessário e clique em OK para salvar suas alterações.
Para excluir uma partição:
- Clique no menu no final da linha e selecione Excluir.
- Quando solicitado a confirmar a exclusão, clique em Excluir.
Ajustando o número de segmentos que podem ser carregados em paralelo
Você pode aumentar ou diminuir o número de segmentos que serão carregados em paralelo. O valor é herdado do campo Carregamento total > Ajuste de desempenho > Número máximo de tabelas para carregar em paralelo nas configurações da tarefa de dados. O valor atual é exibido na string "Até <n> segmentos podem ser carregados em paralelo" no diálogo Carregamento paralelo. Aumentar o número pode melhorar o desempenho quando um conjunto de dados é dividido em muitos segmentos, mas também colocará uma pressão maior nos recursos do banco de dados e na capacidade da rede.