Configuração de um volume externo

Um volume externo é um objeto Snowflake nomeado ao nível de conta, que você usa para conectar o Snowflake ao seu armazenamento em nuvem externo para tabelas Iceberg. Um volume externo armazena uma entidade de gerenciamento de identidade e acesso (IAM) para seu local de armazenamento. O Snowflake usa a entidade de IAM para se conectar com segurança ao seu armazenamento e acessar dados de tabela, metadados Iceberg e arquivos de manifesto que armazenam o esquema de tabela, partições e outros metadados.

Um único volume externo pode oferecer suporte a uma ou mais tabelas Iceberg.

Você deve criar um volume externo antes de poder criar uma tabela Apache Iceberg™ no Snowflake.

Criação de um volume externo

As etapas para criar um volume externo dependem do seu provedor de armazenamento em nuvem.

Para obter instruções, consulte os seguintes tópicos:

Cada volume externo é associado a um Local de armazenamento ativo específico, e um único volume externo pode oferecer suporte a várias tabelas Iceberg. No entanto, o número de volumes externos necessários depende de como você deseja armazenar, organizar e proteger os dados da sua tabela.

Você pode usar um único volume externo se quiser os dados e metadados de todas as suas tabelas Snowflake-Iceberg em subdiretórios no mesmo local de armazenamento (por exemplo, no mesmo bucket S3). Para configurar esses diretórios para tabelas gerenciadas pelo Snowflake, consulte Diretórios de dados e metadados.

Como alternativa, você pode criar vários volumes externos para proteger vários locais de armazenamento de forma diferente. Por exemplo, você pode criar os seguintes volumes externos:

  • Um volume externo somente leitura para tabelas Iceberg gerenciadas externamente.

  • Um volume externo configurado com acesso de leitura e gravação para tabelas gerenciadas pelo Snowflake.

Verificar um volume externo

Verify an external volume to check that Snowflake can successfully authenticate to your storage provider using an external volume that you’ve configured. You can verify an external volume by using SQL or Snowsight.

Uso de SQL

To verify an external volume by using SQL, call the SYSTEM$VERIFY_EXTERNAL_VOLUME function.

Especifique o nome do volume externo que você deseja verificar.

SELECT SYSTEM$VERIFY_EXTERNAL_VOLUME('my_s3_external_volume');
Copy

Uso de Snowsight

Para verificar um volume externo usando o Snowsight, siga estas etapas:

  1. Faça login no Snowsight.

  2. No menu de navegação, selecione Catalog » External data.

  3. Select the External volumes tab.

  4. Select the external volume whose connection you want to verify.

  5. Selecione » Verify connection.

Definir um volume externo padrão no nível da conta, do banco de dados ou do esquema

Você pode definir um volume externo existente como padrão ou definir um novo volume externo como padrão ao criá-lo.

Definir um volume externo existente como padrão

Para definir um volume externo existente como padrão a ser usado para tabelas Iceberg, você pode definir o parâmetro EXTERNAL_VOLUME nos seguintes níveis:

Conta:

Os administradores de conta podem usar o comando ALTER ACCOUNT para definir o parâmetro para a conta. Se o valor for definido para a conta, todas as tabelas Iceberg criadas na conta serão lidas e gravadas nesse volume externo por padrão.

Objeto:

Os usuários podem executar o comando CREATE <objeto> ou ALTER <objeto> apropriado para substituir o valor do parâmetro EXTERNAL_VOLUME no nível do banco de dados ou esquema. A declaração de escopo mais baixo é usada: esquema > banco de dados > conta.

Além dos privilégios mínimos necessários para modificar um objeto usando o comando ALTER <tipo_de_objeto> apropriado, uma função deve ter o privilégio USAGE no volume externo.

Nota

  • As mudanças no parâmetro EXTERNAL_VOLUME só se aplicam a tabelas criadas após a alteração. As tabelas existentes continuam usando o volume externo especificado durante sua criação.

  • Alternatively, you can set a default external volume at the account, database, or schema level when you create the external volume by using Snowsight.

Exemplo

A instrução a seguir define um volume externo (my_s3_vol) para um banco de dados denominado my_database_1:

ALTER DATABASE my_database_1
  SET EXTERNAL_VOLUME = 'my_s3_vol';
Copy

Depois de definir um volume externo no nível do banco de dados, você poderá criar uma tabela Iceberg nesse banco de dados sem especificar um volume externo. A instrução a seguir cria uma tabela Iceberg em my_database_1 que usa Snowflake como catálogo e usa o volume externo padrão (my_s3_vol) definido para o banco de dados.

CREATE ICEBERG TABLE iceberg_reviews_table (
  id STRING,
  product_name STRING,
  product_id STRING,
  reviewer_name STRING,
  review_date DATE,
  review STRING
)
CATALOG = 'SNOWFLAKE'
BASE_LOCATION = 'my/product_reviews/';
Copy

Set a new external volume as the default

Para definir um novo volume externo como padrão para ser usado em tabelas Iceberg, ao criá-lo no Snowsight, use o campo Scope nas configurações para definir o volume externo como padrão no nível da conta, do banco de dados ou do esquema.

Para obter instruções sobre como criar um volume externo no Snowsight, consulte as seguintes seções:

Conceder privilégios USAGE para um volume externo usando o Snowsight

O privilégio USAGE permite fazer referência ao volume externo e exibir os detalhes dele. Para obter mais informações, consulte Privilégios de volume externo.

Para conceder privilégios USAGE a um volume externo usando o Snowsight, siga estas etapas:

  1. Faça login no Snowsight.

  2. Alterne para uma função que tenha os privilégios OWNERSHIP no volume externo ao qual deseja conceder os privilégios USAGE.

    Para obter instruções sobre como alternar de função, consulte Mudar sua função primária. Para obter mais informações sobre o privilégio OWNERSHIP, consulte Privilégios de volume externo.

  3. No menu de navegação, selecione Catalog » External data.

  4. Select the External volumes tab.

  5. Select the external volume that you want to grant USAGE privileges on.

  6. Selecione + Privilege.

  7. No campo Roles, selecione a função em que deseja conceder o privilégio USAGE para o volume externo.

  8. No campo Privileges, selecione USAGE.

  9. Selecione Grant privileges.

Adicionar um local de armazenamento usando o Snowsight

Nota

Para adicionar um local de armazenamento a um volume externo usando SQL, use o parâmetro ADD STORAGE_LOCATION do comando ALTER EXTERNAL VOLUME.

Para adicionar um local de armazenamento nomeado a um volume externo usando o Snowsight, siga estas etapas:

  1. Faça login no Snowsight.

  2. Alterne para uma função que tenha o privilégio OWNERSHIP no volume externo para o qual deseja adicionar um local de armazenamento.

    Para obter instruções, consulte Mudar sua função primária.

  3. No menu de navegação, selecione Catalog » External data.

  4. Select the External volumes tab.

  5. Select the external volume that you want to add a storage location to.

  6. Selecione » Add storage location

  7. Selecione seu provedor de armazenamento em nuvem e especifique a configuração para o local de armazenamento que você está adicionando:

    1. Selecione a guia Amazon S3.

    2. Especifique a configuração para o local de armazenamento que você está adicionando:

      Campo

      Descrição

      Location name

      Digite um nome para seu local de armazenamento adicional.

      Region type

      Especifica o provedor de armazenamento em nuvem que armazena seus arquivos de dados.

      • Standard (default): armazenamento S3 em regiões públicas da AWS fora da China.

      • Government (GovCloud): armazenamento S3 em regiões governamentais da AWS.

      S3 role ARN

      Especifica o Amazon Resource Name (ARN) que diferencia maiúsculas e minúsculas da função AWS de gerenciamento de identidade e acesso (IAM) que concede privilégios no bucket S3 que contém seus arquivos de dados.

      Você registrou esse valor quando criou uma função de IAM.

      Encryption (optional)

      Especifica o tipo de criptografia utilizado. Os valores possíveis são:

      Connectivity

      Especifica se a conectividade privada de saída deve ser usada para reforçar sua postura de segurança. Para obter informações sobre como usar esse parâmetro, consulte Conectividade privada com volumes externos para Amazon Web Services. Os valores possíveis são:

      • Public (default): usar a internet pública.

      • Private (AWS PrivateLink): usar a conectividade privada de saída.

      Storage base URL

      Especifica o URL base para seu local de armazenamento adicional.

  8. Selecione Add storage location.