Introdução ao carregamento de dados não estruturados

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. Tipos de arquivos específicos de certos setores como VCF (genômica), KDF (semicondutores) ou HDF5 (aeronáutica) estão incluídos nessa categoria.

O Snowflake oferece suporte para as seguintes ações:

  • Acesso seguro a arquivos de dados localizados no armazenamento em nuvem.

  • Compartilhamento de URLs de acesso a arquivos com colaboradores e parceiros.

  • Carregamento de URLs de acesso a arquivos e outros metadados de arquivos em tabelas do Snowflake.

  • Processar dados não estruturados.

Este tópico apresenta os principais conceitos e fornece instruções para acessar, compartilhar e processar arquivos de dados não estruturados.

Neste tópico:

Suporte ao serviço de armazenamento em nuvem

Tanto estágios externos (armazenamento em nuvem externo) quanto internos (ou seja, do Snowflake) oferecem suporte para dados não estruturados.

Estágios externos

Armazene arquivos em um armazenamento em nuvem externo: Amazon S3, Google Cloud Storage ou um dos serviços de armazenamento em nuvem suportados pelo Microsoft Azure:

  • Armazenamento de blobs

  • Data Lake Storage Gen2

  • Uso geral v1

  • Uso geral v2

Tipos de URLs disponíveis para acessar arquivos

Os seguintes tipos de URLs estão disponíveis para acessar arquivos no armazenamento em nuvem:

URL com escopo

URL codificada que permite o acesso temporário a um arquivo preparado sem conceder privilégios ao estágio.

A URL expira quando o período de resultados persistidos da consulta termina (ou seja, o cache de resultados expira), que atualmente é de 24 horas.

URL do arquivo

URL que identifica o banco de dados, esquema, estágio e caminho do arquivo para um conjunto de arquivos. Uma função que tenha privilégios suficientes no estágio pode acessar os arquivos.

URL pré-assinada

URL HTTPS simples usada para acessar um arquivo através de um navegador da web. Um arquivo fica temporariamente acessível aos usuários através dessa URL usando um token de acesso pré-assinado. O tempo de expiração do token de acesso é configurável.

A tabela a seguir descreve as características principais desses tipos de URL:

URL com escopo

URL do arquivo

URL pré-assinada

Casos de uso

Recomendado a administradores de arquivos para dar acesso com escopo a arquivos de dados para funções específicas na mesma conta. Forneça acesso aos arquivos com uma exibição que recupere URLs com escopo. Somente funções que têm privilégios sobre a exibição podem acessar os arquivos. Snowflake registra informações no histórico de consultas sobre quem usa um URL com escopo para acessar um arquivo e quando. Ideal para uso em aplicativos personalizados, para fornecer dados não estruturados a outras contas por meio de um compartilhamento ou para download e análise de dados não estruturados no Snowsight.

URL permanente de um arquivo em um estágio. Para baixar ou acessar um arquivo, os usuários enviam a URL do arquivo em uma solicitação GET para o ponto de extremidade da REST API junto com o token de autorização. Ideal para aplicativos personalizados que requerem acesso a arquivos de dados não estruturados.

Usado para baixar ou acessar arquivos sem se autenticar no Snowflake ou passar um token de autorização. URLs pré-assinadas são abertas; qualquer usuário ou aplicativo pode acessar ou baixar diretamente os arquivos. Ideal para aplicativos de business intelligence ou ferramentas de relatórios que precisam exibir conteúdo de arquivos não estruturados.

Como gerar

Consulte a função BUILD_SCOPED_FILE_URL.

Consulte a tabela de diretório para o estágio que faz referência aos arquivos preparados ou chame a função BUILD_STAGE_FILE_URL.

Consulte a função GET_PRESIGNED_URL.

Uso

As seguintes opções estão disponíveis:

  • No Snowsight, clique em uma URL com escopo na tabela de resultados da consulta. O Snowsight obtém o arquivo somente para o usuário que gerou a URL com escopo.

  • Envie uma URL com escopo em uma solicitação GET ao ponto de extremidade da REST API de suporte de arquivo. Para obter mais informações, consulte REST API para suporte de dados não estruturados.

As seguintes opções estão disponíveis:

  • No Snowsight, clique em uma URL de arquivo na tabela de resultados da consulta. O Snowsight só recupera o arquivo se a função ativa tiver privilégios suficientes.

  • Envie uma URL de arquivo em uma solicitação GET para o ponto de extremidade da REST API de suporte de arquivo. Para obter mais informações, consulte REST API para suporte de dados não estruturados.

As seguintes opções estão disponíveis:

  • No Snowsight, clique em uma URL pré-assinada na tabela de resultados da consulta.

  • Navegue até o URL pré-assinado diretamente em um navegador da web.

Snowflake Secure Data Sharing

Arquivos de dados não estruturados podem ser acessados por consumidores de dados através de valores de colunas desse tipo em exibições seguras compartilhadas por provedores de dados.

Arquivos de dados não estruturados não podem ser acessados por consumidores de dados através de valores de colunas deste tipo em exibições seguras compartilhadas por provedores de dados.

Arquivos de dados não estruturados podem ser acessados por consumidores de dados através de valores de colunas desse tipo em exibições seguras compartilhadas por provedores de dados.

Autorização

Somente o usuário que gera uma URL com escopo pode usar a URL para acessar o arquivo referenciado.

A função especificado na chamada GET REST API deve ter privilégios suficientes no estágio: USAGE (estágio externo) ou READ (estágio interno).

Qualquer pessoa que tenha a URL pré-assinada pode acessar o arquivo referenciado enquanto o token estiver ativo.

Validade

Período de validade do cache de resultados da consulta (atualmente 24 horas).

Permanente.

Período de tempo especificado no argumento expiration_time.

Criptografia do lado do servidor para acesso a dados não estruturados

Para permitir o acesso a dados não estruturados em um estágio interno, você pode considerar o uso de criptografia no lado do servidor ao criar o estágio. Caso contrário, os arquivos preparados serão criptografados no lado do cliente por padrão. As chaves de criptografia são de propriedade do Snowflake, e os arquivos criptografados do lado do cliente são ilegíveis por usuários e ferramentas externas usando URLs pré-assinadas, de arquivo ou com escopo.

Para configurar a criptografia no lado do servidor para um estágio interno, especifique o tipo de criptografia SNOWFLAKE_SSE no comando CREATE STAGE. Consulte Parâmetros do estágio interno (internalStageParams) para obter mais informações.

O exemplo a seguir cria um estágio interno chamado my_int_stage com criptografia no lado do servidor e uma tabela de diretório.

CREATE STAGE my_int_stage
  ENCRYPTION = (TYPE = 'SNOWFLAKE_SSE')
  DIRECTORY = ( ENABLE = true );
Copy

Importante

Se você precisar de Tri-Secret Secure para conformidade de segurança, use o tipo de criptografia SNOWFLAKE_FULL para estágios internos. SNOWFLAKE_SSE não é compatível com Tri-Secret Secure.

Nota

  • Você não pode alterar o tipo de criptografia para um estágio interno depois de criar o estágio.

  • Atualmente, a criação de estágios internos com criptografia do lado do servidor está limitada às seguintes versões do cliente Snowflake: driver JDBC v3.12.11 (ou superior)

Tabelas de diretório

Tabelas de diretório armazenam um catálogo de arquivos preparados no armazenamento em nuvem. Funções com privilégios suficientes podem consultar uma tabela de diretório para obter URLs de arquivo para acessar os arquivos preparados.

Para obter mais detalhes, consulte Tabelas de diretório.

Funções SQL

As seguintes Funções de arquivo são fornecidas para acessar arquivos de dados:

Função SQL

Descrição

GET_STAGE_LOCATION

Retorna a URL para um estágio externo ou interno nomeado usando o nome de estágio como entrada.

GET_RELATIVE_PATH

Extrai o caminho de um arquivo preparado relativo à sua localização no estágio usando o nome do estágio e o caminho absoluto do arquivo no armazenamento em nuvem como entradas.

GET_ABSOLUTE_PATH

Retorna o caminho absoluto de um arquivo preparado usando o nome de estágio e o caminho de arquivo relativo à sua localização no estágio como entradas.

GET_PRESIGNED_URL

Gera o URL pré-assinado para um arquivo preparado usando o nome de estágio e o caminho relativo de arquivo como entradas. Acesse arquivos em um estágio externo usando a função.

BUILD_SCOPED_FILE_URL

Gera um URL do arquivo Snowflake com escopo para um arquivo preparado usando o nome de estágio e o caminho relativo do arquivo como entradas.

BUILD_STAGE_FILE_URL

Gera um URL do arquivo Snowflake para um arquivo preparado usando o nome de estágio e o caminho relativo do arquivo como entradas.

Como baixar arquivos preparados no Snowsight

Usuários podem clicar em uma URL gerada com escopo, pré-assinada ou de arquivo na tabela de resultados de uma planilha Snowsight e baixar o arquivo referenciado.

  1. Faça login no Snowsight, a interface da web do Snowflake.

  2. Clique em Worksheets » My Worksheets (ou abra uma planilha local em Recent ou em Folders) » <worksheet_name>.

  3. Retorne uma URL com escopo, pré-assinada ou de arquivo em uma consulta usando qualquer um dos métodos suportados.

  4. Clique na URL na tabela de resultados. O Snowsight baixa o arquivo referenciado pela URL.

    Download pre-signed URL in Snowsight results table

Processamento de dados não estruturados

O Snowflake oferece suporte aos seguintes recursos para ajudar você a processar dados não estruturados.

Funções externas

Funções externas são funções definidas pelo usuário que você armazena e executa fora do Snowflake. Com funções externas, você pode usar bibliotecas como Amazon Textract, Document AI ou Azure Computer Vision que não pode ser acessado de funções internas definidas pelo usuário (UDFs).

Para obter mais informações, consulte Como escrever funções externas.

Funções definidas pelo usuário e procedimentos armazenados

O Snowflake oferece suporte a várias maneiras de ler um arquivo no código Java ou Python para que você possa processar dados não estruturados ou usar seus próprios modelos de aprendizado de máquina em funções definidas pelo usuário (UDFs), funções de tabela definidas pelo usuário (UDTFs) ou procedimentos armazenados.

Você pode estender a SQL que você usa no Snowflake ou criar um aplicativo usando o API Snowpark.

Consulte os tópicos a seguir para obter mais informações e exemplos.