Gerenciamento de ingestão

Depois que o conector estiver configurado, ele poderá começar a ingerir os dados. No entanto, geralmente são necessárias mais algumas informações antes que seja possível ingerir os dados do sistema de origem. A maioria dos sistemas mantém os dados com pelo menos alguma granularidade, sejam tabelas, repositórios, arquivos ou relatórios. O Snowflake Native SDK for Connectors usa um termo resource independentemente do nome no sistema original. Para identificar recursos e personalizar as configurações para sua ingestão, resource_ingestion_definitions estão sendo usados. Além disso, o processo real de ingestão é organizado em ingestion_processes, que consistem em múltiplos ingestion_runs. Essa abstração facilita o rastreamento, o agendamento e a diferenciação de processos.

Requisitos

Esta seção requer pelo menos os seguintes arquivos SQL a serem executados durante a instalação do aplicativo nativo:

  • ingestion/ingestion_management.sql

  • ingestion/ingestion_definitions_view.sql

  • ingestion/ingestion_process.sql

  • ingestion/ingestion_run.sql

  • ingestion/resource_ingestion_definition.sql

Definição de ingestão de recursos

A definição de ingestão de recursos é uma entidade genérica que contém a definição dos dados de origem no sistema de origem. Para mantê-lo o mais genérico possível, as opções específicas do sistema são mantidas como variants na tabela subjacente STATE.RESOURCE_INGESTION_DEFINITION. No entanto, a definição Java do repositório ResourceIngestionDefinitionRepository é uma interface genérica para ter melhor controle sobre a digitação.

Como a maior parte da definição de ingestão de recursos pode ser personalizada durante a implementação, cabe ao desenvolvedor decidir como usar os campos genéricos e, então, utilizá-los durante a ingestão.

As propriedades personalizáveis mais importantes da definição de ingestão de recursos são:

  • parent_id

Este parâmetro opcional permite vincular definições de recursos entre si, por exemplo, para herdar uma parte da configuração.

  • resource_id

Esse variant deve permitir a identificação de um recurso no sistema de origem, ele deve ser único.

  • ingestion_configurations

Esta propriedade é a configuração real da ingestão; cada definição pode ter várias configurações, por exemplo, se por algum motivo o mesmo recurso deve ser ingerido em dois cronogramas diferentes ou salvo em várias tabelas de coletores. Esta propriedade possui alguns campos obrigatórios, mas ainda permite alguma flexibilidade quando se trata de definir configurações personalizadas e o destino dos dados.

  • resource_metadata

Esta propriedade deve conter qualquer informação adicional que seja necessária, mas que não se encaixe nos campos mencionados acima.

Processo de ingestão

O processo de ingestão é uma entidade que representa o processo habilitado de ingestão de um recurso definido. Ele é criado quando um recurso é adicionado ou habilitado e deve ser concluído quando ele for excluído ou desabilitado. De certa forma, é como um processo em segundo plano no sistema operacional: ele pode estar ativo, mas não necessariamente realizando nenhuma tarefa naquele momento específico. Sempre que a ingestão estiver realmente em execução, ela pode ser transferida para o estado IN_PROGRESS, caso contrário pode permanecer no estado SCHEDULED. Ao despachar trabalho scheduler recupera todos os processos SCHEDULED e executa a ingestão para eles.

O processo de ingestão também pode ser usado para definir diferentes tipos de ingestão, por exemplo, digamos que diariamente o conector carregue alguns dados, mas por algum motivo alguns dados antigos estão corrompidos e precisam ser recarregados. Se for esse o caso, então um novo processo type pode ser introduzido, por exemplo RELOAD. Depois o scheduler pode ter lógica personalizada para executar diferentes operações para diferentes tipos de processos.

Execução de ingestão

A execução de ingestão é outra entidade para armazenar informações sobre a ingestão passada e em andamento. No entanto, estes dados são mais granulares do que o ingestion_process em si. Primeiramente, a execução de ingestão deve ser considerada como um log de dados. Em segundo lugar, ingestion_run é uma entrada que descreve apenas uma única invocação durante um processo de longa execução. Portanto, se um recurso for ingerido uma vez por dia, a cada dia deverá haver uma nova entrada de execução de ingestão. Todas essas entradas serão vinculadas ao processo único.

Operações de gerenciamento de ingestão

Criação de novo recurso

O processo de criação de recurso é usado para definir e agendar uma ingestão de dados de um sistema de origem. Ele cria um registro de definição de ingestão de recurso e processos de ingestão correspondentes caso um determinado recurso deva ser habilitado inicialmente.

Para obter mais informações, consulte Criação de recurso.

Visualização de recursos

As definições de recursos configuradas podem ser examinadas na exibição PUBLIC.INGESTION_DEFINITIONS. No entanto, essa exibição retorna apenas informações básicas sobre cada recurso. Todas as configurações personalizadas não são visíveis para o usuário final, especialmente porque algumas delas podem ser geradas internamente pela lógica do conector.

Desabilitação de um recurso

A etapa de desabilitação de um recurso é usada para interromper a ingestão de dados de um determinado recurso. Ela finaliza os processos de ingestão ativos e marca uma definição de ingestão de recurso como desabilitada.

Para obter mais informações, consulte Desativação de recurso.

Habilitação de um recurso

A habilitação de um recurso é usada para iniciar a ingestão de dados para um determinado recurso. Ela cria novos processos de ingestão e marca uma definição de ingestão de recurso como habilitada.

Para obter mais informações, consulte Habilitação de um recurso.

Atualização de um recurso

A atualização de um recurso é usada para alterar uma configuração de ingestão para um determinado recurso. Ela modifica uma definição de ingestão de recurso e finaliza ou cria novos processos de ingestão.

Para obter mais informações, consulte Atualização de recurso.