Carregamento de dados não estruturados com Document AI

Com a integração ao Document AI, o Snowflake agora oferece suporte ao carregamento de dados não estruturados, semelhante ao carregamento de dados semiestruturados.

Dados não estruturados são informações que não se encaixam em um modelo ou esquema de dados pré-definido. Geralmente tratam-se de dados com muito texto, como respostas de formulários e conversas em mídias sociais, mas eles também englobam imagens, vídeo e áudio.

Para carregar dados não estruturados com esse recurso de visualização, você pode executar o mesmo comando de tabela COPY INTO com uma opção de copiar file_processor.

Pré-requisitos

Antes de usar esse recurso, você deve preparar um modelo do Document AI e certificar-se de que o usuário que executa o comando COPY tenha acesso a esse modelo. Para obter mais informações, consulte Document AI.

Uso do comando COPY INTO

Você pode carregar dados não estruturados usando o comando COPY INTO com a opção de copiar file_processor. Você pode especificar document_ai como o tipo de verificador personalizado para a opção de copiar file_processor e especificar as propriedades associadas ao verificador.

Para obter mais informações, consulte a sintaxe COPY INTO TABLE e opções de copiar COPY INTO.

Para carregar dados não estruturados, recomendamos especificar o tipo do estágio de origem como CUSTOM, que é um tipo de formato de estágio na visualização. Os outros tipos de formato de estágio (TYPE = { CSV | JSON | AVRO | ORC | PARQUET | XML }) são aceitos para compatibilidade com versões anteriores.

Você pode especificar o tipo de estágio usando o parâmetro file_format ao criar um estágio. O tipo de estágio CUSTOM especifica que o estágio subjacente contém dados não estruturados e só pode ser usado com a opção de cópia FILE_PROCESSOR.

Exemplos

O exemplo a seguir mostra o carregamento de arquivos de dados não estruturados de um estágio custom_stage para uma tabela my_table, com a função document_ai especificada por um nome de modelo predict e uma versão de modelo 1.

COPY INTO my_table FROM @custom_stage
  FILE_PROCESSOR = (
    SCANNER = 'document_ai'
    SCANNER_OPTIONS = (project_name = 'DEMO0200', model_name = 'predict' model_version = '1'));
Copy

O exemplo a seguir mostra o carregamento de arquivos de dados não estruturados em uma tabela docai_results e a transformação dos dados brutos usando uma instrução SELECT.

CREATE OR REPLACE TABLE docai_results (inspection_date date, inspector varchar);

COPY INTO docai_results FROM (SELECT $1:inspection_date[0].value::date, $1:inspector[0].value FROM @custom_stage)
  FILE_PROCESSOR = (
    SCANNER = 'document_ai'
    SCANNER_OPTIONS = (project_name = 'DEMO0201', model_name = 'predict' model_version = '1'));
Copy

Considerações e limitações

  • Este recurso não é compatível com o seguinte:

  • Somente a opção padrão ON_ERROR COPY ON_ERROR = ABORT_STATEMENT é aceita. Tentativas de usar outras opções ON_ERROR resultarão em falha de compilação.

  • O número de arquivos por consulta não pode exceder 1000.