Exportação de Dados Generalizados
O método de exportação de dados generalizados fornece uma exportação de dados baseada em arquivo no formato JSON. A exportação dos dados de um objeto de manutenção usando esse método envolve uma exportação inicial dos dados inteiros da entidade, seguida de uma exportação contínua de alterações, conforme elas são feitas ao longo do tempo. Esses processos são ilustrados no seguinte diagrama:
-
Ative entidades para exportação no portal Painel de Controle de Exportação Generalizada. É possível ativar muitas entidades de uma só vez. Esta etapa também permite que você ative a exportação contínua dessas entidades.
-
Envie o processamento em lote Iniciador de Exportação Inicial Generalizada (F1-GEXPI ) para exportar o conteúdo atual de todas as entidades ativadas. Esta etapa envia um processamento em lote separado para cada entidade que você ativou para exportação.
Observação: pode ser usada uma exportação completa do banco de dados. O arquivo de exportação pode ser importado no ambiente de destino para estabelecer a linha de base inicial. Os clientes de nuvem podem entrar em contato com as operações na nuvem para solicitar essa exportação para uso local. Esta exportação de esquema é limitada para fins de relatório e destina-se apenas à extração inicial. -
Programe o processamento em lote de Exportação Contínua Generalizada (F1-GEEXO ) para ser executado periodicamente.
As seções a seguir descrevem ainda conceitos e diretrizes relacionados ao método de exportação de dados generalizados.
Aplicabilidade
-
A entidade gerencia um volume de dados extremamente alto. O rastreamento de alterações nessa entidade dobraria o volume de dados gerenciados e afetaria o desempenho geral.
-
A entidade é atualizada com muita frequência. O rastreamento desses eventos pode afetar o desempenho geral.
-
A entidade é usada pela infraestrutura e pelos processos operacionais do produto. Essas entidades são mantidas de maneira diferente e não podem estar sujeitas aos métodos de exportação de dados generalizados.
Por padrão, um objeto de manutenção fica habilitado para o método de exportação de dados generalizados, a menos que esteja explicitamente marcado de outra forma pela opção Classe de Exportação de Dados. A opção pode ser usada para marcar uma entidade como não permitida para nenhum tipo de exportação ou permitida apenas para uma exportação especializada. A falta dessa opção explícita significa que o objeto de manutenção está habilitado para a exportação generalizada.
Um Método Ajusta Tudo
O método de exportação de dados generalizados foi projetado para acomodar muitos objetos de manutenção elegíveis de forma genérica que também devem levar em consideração as considerações de desempenho. Por esse motivo, este método não suporta opções de filtragem específicas da entidade nem regras personalizadas de qualquer tipo.
-
Dados inteiros são exportados.
-
Todos os campos de todas as tabelas que pertencem ao objeto de manutenção são exportados, exceto as tabelas "chave" e "log", se houver.
-
As tabelas de log de objetos de manutenção geralmente não contêm informações úteis de negócios e, como tal, são omitidas da exportação por motivos de desempenho e volume de dados. No entanto, há entidades para as quais os registros de log fornecem valor analítico. Quando aplicável, use a opção Exportar Tabelas de Log para incluir explicitamente tabelas de log para um objeto de manutenção específico.
-
-
A mesma estrutura e formato de dados é usado para todas as entidades. Para obter mais informações, consulte a seção Formato de Registro.
-
Os dados são exportados apenas para arquivos. Consulte a seção Exportar Somente para Arquivos para obter mais informações.
-
Todas as alterações são capturadas. Não é possível excluir algumas alterações de serem rastreadas para exportação contínua com base em regras de negócios personalizadas.
-
Quando os dados são alterados, uma captura completa dos dados relacionados a essa entidade é exportada para evitar a fusão pesada de dados no lado de destino.
-
Quando a entidade é excluída, somente a chave primária da entidade é exportada, com uma indicação de que ela foi excluída.
Exportar apenas para arquivos
O destino imediato dos processos de exportação iniciais e contínuos são arquivos em um local especificado pelo cliente. Em uma instalação na Nuvem, os arquivos são criados em um Object Storage de propriedade do cliente.
Com base nas necessidades de negócios, você pode consumir ainda mais esses arquivos por aplicativos downstream como data lakes etc.
Ativando a Exportação de Dados
Para ativar a exportação de dados para um objeto de manutenção elegível, um registro de Controle de Exportação de Dados precisa ser criado. O registro mantém uma indicação de se a exportação inicial para o objeto de manutenção foi concluída ou não e se as alterações feitas na entidade devem ser rastreadas e exportadas continuamente. Um portal designado permite que você ative a exportação de dados generalizados para muitos objetos de manutenção de uma só vez, bem como monitore seu status de exportação atual rapidamente. Consulte o portal Painel de Controle de Exportação Generalizada para obter mais informações.
As opções de exportação em andamento são armazenadas em cache em vários caches on-line e em lote. Para que essas opções entrem em vigor e rastreiem as alterações de entidade feitas por qualquer processamento on-line ou em lote, os vários caches devem ser adequadamente descarregados quando essas opções forem alteradas. O uso dos portais designados para ativar as entidades para exportação aciona uma descarga 'global' dos caches. Se os processadores do grupo de threads de lote estiverem configurados para atualizar seus caches quando um esvaziamento global for solicitado, essa será a única etapa necessária. Do contrário, a tarefa em batch F1–FLUSH também deverá ser enviada para atualizar os caches usados no processamento em batch. Para obter mais informações, consulte Visão Geral de Armazenamento em Cache.
Exportação de Dados Inicial
Cada objeto de manutenção elegível para o método de exportação de dados generalizados é associado a um controle de lote de exportação de dados inicial referenciado no objeto de manutenção usando a opção Exportar Controle de Lote. O mesmo programa de lote comum é usado por todos esses controles de lote para exportar todos os dados de uma entidade para arquivos. O processo é multithreaded e produz um arquivo por thread por padrão. Um parâmetro de lote opcional permite que vários arquivos menores sejam gerados por thread, definindo um limite no número de registros gravados em cada arquivo. Para obter mais informações, consulte a seção Tamanho do Arquivo.
Em vez de enviar manualmente o processo de lote de exportação inicial generalizado para cada objeto de manutenção que você ativou para exportação, envie o processamento em lote F1-GEXPI Iniciador de Exportação Inicial Gerado para enviá-los automaticamente de uma só vez.
O processo de exportação inicial de cada objeto de manutenção atualiza o registro de controle de exportação de dados correspondente do objeto de manutenção para indicar que o processo foi iniciado e o atualiza novamente após a conclusão. Isso permite que você exiba o status geral da exportação inicial em todas as entidades ativadas no portal Painel de Controle de Exportação Generalizada.
Observe que o processamento em lote do iniciador só envia processamentos em lote para objetos de manutenção ativados que, de acordo com seu registro de controle de exportação de dados, sua exportação inicial ainda não foi iniciada. Se você precisar exportar uma ou mais entidades novamente, redefina a indicação do status de exportação inicial nos registros de controle de exportação de dados e envie o processamento em lote do iniciador novamente.
INIT_EXPORT[_file prefix(optional)]_[maintenance object]_[batch run]_[thread]_[thread count]_[timestamp][_file sequence].json.gz
A parte "sequência de arquivo" do nome do arquivo é usada somente quando mais de um arquivo é criado por thread. O sufixo de sequência é preenchido a partir do segundo arquivo, como segue _ 2.Consulte qualquer um dos controles de lote de exportação inicial generalizados individuais e o controle de lote do iniciador para obter mais informações.
Restringindo a Exportação Inicial por Data
Por padrão, o processo em lote Exportação de Dados Iniciais exporta todos os dados de uma entidade. Em algumas situações, geralmente em torno de dados históricos de alto volume, pode ser necessário restringir a exportação a dados mais recentes, por exemplo, nos últimos meses de dados.
O processamento em batch de exportação inicial suporta um parâmetro de batch opcional Restringir por Data que pode ser usado para limitar o escopo dos dados a serem exportados. O parâmetro faz referência a um campo de data e a um período solicitado em termos de número de dias antes da data de referência. Para obter mais informações, consulte o controle de batch do Modelo de Exportação Inicial Generalizada F1-GEIXP.
Exportação de Dados em Andamento
As alterações de dados são rastreadas pelo algoritmo Capturar Alteração para Exportação Contínua (F1-MO-REGCHN) Auditoria do Objeto de Manutenção. O algoritmo registra a chave primária de uma entidade alterada em uma tabela designada de Atualização de Exportação de Dados que serve como uma fila de entidades alteradas para exportação. A fila é consumida posteriormente pelo processamento em lote de exportação de dados em andamento.
A regra de auditoria é adicionada a um objeto de manutenção quando a opção de exportação de dados em andamento em seu registro de controle de exportação de dados correspondente está ativada. Da mesma forma, a regra de auditoria é removida do objeto de manutenção quando a opção de exportação em andamento está desativada.
Diferentemente do processo de exportação de lote inicial que exige que um controle de lote seja definido para cada objeto de manutenção elegível, um único processo de lote é usado para exportar as alterações contínuas feitas em todas as entidades.
-
Todas as alterações enfileiradas na tabela Atualização de Exportação de Dados são exportadas para um arquivo de exportação em andamento designado. Para obter mais informações, consulte a seção Gerenciando um Backlog Grande.
-
Uma captura completa dos dados relacionados à entidade alterada é exportada para evitar a fusão pesada de dados no lado de destino.
-
Depois de exportados, os registros são excluídos da tabela Atualização de Exportação de Dados.
O processo é multithreaded e um arquivo separado é produzido para cada thread por padrão. Um parâmetro de lote opcional permite que vários arquivos menores sejam gerados por thread, definindo um limite no número de registros gravados em cada arquivo. Para obter mais informações, consulte a seção Tamanho do Arquivo.
INC_EXPORT_[batch run]_[thread]_[thread count]_[timestamp][_file sequence].json.gz
A parte "sequência de arquivo" do nome do arquivo é usada somente quando mais de um arquivo é criado por thread. O sufixo de sequência é preenchido a partir do segundo arquivo, como segue _ 2.Para obter mais informações, consulte o controle batch de Exportação Contínua Generalizada (F1-GEEXO).
Tamanho do Arquivo
O processamento em lote de exportação inicial produz um único arquivo por thread por padrão. Para algumas entidades de alto volume, isso pode resultar em arquivos muito grandes para serem gerenciados. Para produzir vários e menores arquivos para uma entidade específica, limite o número de registros gravados em cada arquivo definindo o parâmetro correspondente no controle de lote de exportação inicial definido para a entidade. O mesmo parâmetro pode ser fornecido ao enviar o processo em lote Iniciador de Exportação Inicial; nesse caso, o valor do iniciador só será usado quando um valor correspondente não tiver sido definido no registro de controle batch específico da entidade.
Da mesma forma, o processamento em lote de exportação em andamento produz um único arquivo por thread por padrão. Para produzir vários e menores arquivos, limite o número de registros gravados em cada arquivo definindo o parâmetro correspondente no controle de lote.
Para evitar a criação de muitos arquivos por uma única execução em lote, o sistema define um limite máximo de cerca de 500 arquivos por execução. Quando o número solicitado de registros por arquivo é determinado a realizar com que o número de arquivos gerados exceda o limite do sistema, o valor real usado é ajustado para atender ao limite do sistema.
Gerenciando um Backlog Grande
Quando um grande backlog de alterações se acumula na fila de exportação em andamento por algum motivo, o próximo lote demora mais para ser exportado, o que atrasa a etapa de importação downstream. Uma opção melhor é limpar o backlog em "chunks" menores, permitindo que o processo downstream os importe à medida que são disponibilizados.
É possível limitar o número de registros que o processamento em lote exporta usando o parâmetro de lote Limite de Processamento de Thread. Quando especificado, o número de registros exportados por cada thread é limitado pelo limite especificado, deixando os registros restantes a serem consumidos por execuções de lote subsequentes. Em vez de aguardar a próxima execução de lote agendada, um novo processo de lote poderá ser enviado automaticamente, se solicitado explicitamente para isso usando o parâmetro de lote Liberação Automática de Backlog.
É importante garantir que o backlog seja apagado gradualmente e que a fila retome seu tamanho normal em tempo hábil. O limite de processamento deve, portanto, ser definido com um valor apropriado que promova a liberação adequada da fila. Para isso, pelo menos 20% da fila e pelo menos 100.000 registros devem ser consumidos por cada execução em lote em todos os threads. Se o limite especificado não atender à necessidade de liberação mínima, o limite de processamento será ajustado de acordo.
Formato do registro
Os dados são extraídos e exportados diretamente do banco de dados em operações de leitura em massa por motivos de desempenho. Por esse motivo, a estrutura usada não reflete o modelo de dados lógico da entidade, mas sim sua lista física de tabelas. Os dados de uma determinada instância são organizados por tabelas seguidas por linhas em cada tabela e para cada linha sua lista de campos no formato JSON.
A seguir, são descritos o formato e a estrutura usados:
{
"OBJ": "<mo name>",
"TIMESTAMP": "<export time in ISO format for example 2019-07-25T11:06:04.740615Z>",
"PK1": "<mo pk1 value>",
"PK2": "<mo pk2 value if any>", ← PK2-5 should only be included when applicable
"PK3": "<mo pk3 value if any>",
"PK4": "<mo pk4 value if any>",
"PK5": "<mo pk5 value if any>",
"DELETED": true, ← should only be included when the entity is deleted
"DATA":
{
"<MO table name 1>":
[
{<name value pairs of all fields in row 1 in that table>},
{<name value pairs of all fields in row 2 in that table>},...
{<name value pairs of all fields in row n in that table>},...
],
"<MO table name 2>":
[
{<name value pairs of all fields in row 1 in that table>},
{<name value pairs of all fields in row 2 in that table>},...
{<name value pairs of all fields in row n in that table>}
],...
"<MO table name n>":
[
{<name value pairs of all fields in row 1 in that table>},
{<name value pairs of all fields in row 2 in that table>},...
{<name value pairs of all fields in row n in that table>}
]
}
Observações sobre os valores e formatos de campo:
-
Todos os campos de uma linha são incluídos mesmo quando o campo está vazio ou é nulo.
-
Todos os valores de string são reduzidos em excesso de espaços finais, mas se um campo estiver vazio, ele será exportado como uma string vazia "" e não nulo.
-
Uma matriz vazia é usada para um nó de tabela quando não há registros para a entidade na tabela.
-
As informações de data/hora são convertidas no fuso horário UTC e exportadas no formato ISO, por exemplo, 2019-07-25T11:06:04.740615Z.
-
As exclusões têm um indicador explícito no cabeçalho.
Ordem de Arquivos de Consumo
É importante aplicar todos os arquivos de exportação iniciais para um objeto de manutenção antes de aplicar arquivos de alteração em andamento para garantir a consistência dos dados.
-
Aplique todos os arquivos de exportação de dados iniciais antes dos arquivos de exportação em andamento.
-
Aplique os arquivos iniciais para um objeto de manutenção na ordem do número de execução.
-
Aplicar arquivos de exportação em andamento na ordem do número de execução.
-
Se uma nova exportação inicial estiver disponível, o procedimento de consumo do arquivo deverá ser alterado temporariamente da seguinte forma:
-
Interrompa o consumo de arquivos de exportação em andamento.
-
Aplicar os novos arquivos de exportação iniciais.
-
Retomar o consumo de arquivos de exportação em andamento.
-
Recuperar de um Arquivo de Exportação Contínua Perdida
O processo em batch de exportação em andamento mantém um backup de todas as chaves de entidade, que foram exportadas em uma execução em batch específica, em uma tabela de backup designada. Em raras situações em que um arquivo de exportação em andamento é excluído ou fica corrompido antes de ser processado, a tabela de backup pode ser usada para identificar as alterações ausentes e exportá-las novamente.
Use o processo em batch Restaurar Chaves de Exportação Generalizadas (F1-GERST) para recuperar-se dessa situação. O processo identifica as entidades que foram exportadas durante uma execução em batch especificada e as adiciona de volta à fila de alterações contínuas da tabela de backup. As entidades seriam então exportadas novamente com as próximas execuções de exportação em andamento. Esse método não restaura o conteúdo exato do arquivo original que foi perdido porque não pode ser reproduzido. Em vez disso, o processo garante que as entidades incluídas no arquivo perdido sejam exportadas novamente.