Configuração de um volume externo para tabelas Iceberg¶
Este tópico fornece informações para ajudar você a configurar um volume externo para tabelas Iceberg. Antes de criar uma tabela Iceberg, você deve ter um volume externo.
Você pode criar um volume externo para os seguintes serviços de armazenamento em nuvem:
Configuração de um volume externo para Amazon S3¶
Esta seção aborda como conceder acesso restrito do Snowflake ao seu próprio bucket S3 do Amazon usando um volume externo.
Um administrador da sua organização concede permissões de usuário IAM na sua conta Amazon Web Services (AWS).
Etapa 3: conceder privilégios necessários para criptografia SSE-KMS à função IAM (opcional)
Etapa 5: recuperar o usuário AWS IAM para sua conta Snowflake
Etapa 6: conceder ao usuário IAM permissões para acessar objetos de bucket
Nota
O Snowflake não oferece suporte a volumes externos com nomes de bucket que contenham pontos (por exemplo,
my.s3.bucket
). Snowflake usa caminhos de estilo de hospedagem virtual e HTTPS para acessar dados em S3. No entanto, S3 não oferece suporte a SSL para buckets de estilo de hospedagem virtual com pontos no nome.Para completar as instruções nesta seção, você deve ter permissões na AWS para criar e gerenciar políticas e funções IAM. Se você não for um administrador AWS, peça a seu administrador AWS que complete estas tarefas.
Para oferecer suporte à recuperação de dados, ative o controle de versão para seu local de armazenamento em nuvem externo.
Etapa 1: configurar permissões de acesso para o bucket S3¶
Requisitos de controle de acesso do AWS¶
Para acessar os arquivos na pasta e nas subpastas, o Snowflake exige as seguintes permissões em um bucket S3 e na pasta:
s3:DeleteObject
s3:DeleteObjectVersion
s3:GetBucketLocation
s3:GetObject
s3:GetObjectVersion
s3:ListBucket
s3:PutObject
Nota
A permissão s3:PutObject
concede acesso de gravação ao local do volume externo. Para configurar completamente o acesso de gravação, o parâmetro ALLOW_WRITES
do volume externo deve ser definido como TRUE
(o valor padrão).
Como prática recomendada, o Snowflake recomenda que você crie uma política de IAM designada que conceda ao Snowflake acesso ao bucket S3. Você pode então anexar a política a uma função e usar as credenciais de segurança geradas pela AWS para aquela função para acessar os arquivos no bucket.
Criação de uma política de IAM¶
Para configurar permissões de acesso para Snowflake no AWS Management Console, faça o seguinte:
Faça login no AWS Management Console.
No painel inicial, selecione Identity & Access Management (IAM):
Selecione Account settings no painel de navegação à esquerda.
Na lista Security Token Service Regions, encontre a região do Snowflake onde sua conta está localizada. Se o status for Inactive, selecione Activate.
Selecione Policies no painel de navegação à esquerda.
Selecione Create Policy:
Selecione a guia JSON.
Adicione uma política que conceda do Snowflake ao bucket S3 e à pasta.
As políticas AWS oferecem suporte a uma variedade de diferentes casos de uso de segurança. A seguinte política (em formato JSON) fornece ao Snowflake as permissões necessárias para ler ou gravar dados usando um único bucket e caminho de pasta.
Copie e cole o texto no editor de políticas:
Nota
Substitua
bucket
eprefix
pelo nome real do bucket e prefixo do caminho da pasta.Os Nomes de recurso da Amazon (ARN) para buckets em regiões governamentais têm um prefixo
arn:aws-us-gov:s3:::
.Definir a condição
"s3:prefix":
como["*"]
ou["prefix/*"]
concede acesso a todos os prefixos no bucket ou caminho no bucket especificado, respectivamente.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:GetObjectVersion", "s3:DeleteObject", "s3:DeleteObjectVersion" ], "Resource": "arn:aws:s3:::<bucket>/<prefix>/*" }, { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::<bucket>", "Condition": { "StringLike": { "s3:prefix": [ "<prefix>/*" ] } } } ] }
Selecione Review policy.
Insira um Name de política (por exemplo,
snowflake_access
) e uma Description opcional.Selecione Create policy.
Etapa 2: criar uma função IAM no AWS¶
No Console de gerenciamento AWS, crie uma função AWS IAM para conceder privilégios para o bucket S3 que contém seus arquivos de dados.
Faça login no AWS Management Console.
No painel inicial, selecione Identity & Access Management (IAM):
Selecione Roles no painel de navegação à esquerda.
Selecione Create role.
Para o tipo de entidade de confiança, selecione Another AWS account.
No campo Account ID, digite sua própria ID de conta AWS. Em uma etapa posterior, você modifica a relação de confiança e concede acesso ao Snowflake.
Selecione a opção Require external ID. Um ID externo é usado para conceder acesso aos seus recursos AWS (como buckets S3) a terceiros, como o Snowflake.
Insira um ID de espaço reservado como
0000
. Em uma etapa posterior, você modifica a relação de confiança para sua função IAM e especifica o ID externo para seu volume externo.Selecione Next.
Localize a política que você criou em Etapa 1: configurar permissões de acesso para o bucket S3 e selecione-a.
Selecione Next.
Digite um nome e descrição para a função e selecione Create role. Agora você criou uma política IAM para um bucket, criou uma função IAM e anexou a política à função.
Na página de resumo da função, localize e registre o valor Role ARN. Você usa esse valor na próxima etapa para criar um volume externo do Snowflake que faça referência a essa função.
Etapa 3: conceder privilégios necessários para criptografia SSE-KMS à função IAM (opcional)¶
Para carregar um objeto criptografado com uma chave AWS KMS para o Amazon S3, a função IAM que você criou em Etapa 2: criar uma função IAM no AWS precisa de permissões kms:GenerateDataKey
na chave. Para baixar um objeto criptografado com uma chave AWS KMS, a função IAM precisa de permissões kms:Decrypt
na chave.
Se você quiser usar uma chave KMS para criptografia no lado do servidor, siga estas etapas para criar uma chave e referenciá-la.
No AWS Management Console, acesse o serviço KMS. Na navegação esquerda, selecione Customer managed keys e selecione Create key. Você deve criar uma chave na mesma região do seu bucket.
Crie um tipo de chave simétrica. Para o uso da chave, selecione Encrypt and decrypt. Selecione Next.
Na caixa Alias, crie um nome para a chave e selecione Next.
Se necessário, forneça um administrador para a chave e selecione Next.
Na etapa Define key usage permissions, insira o nome da sua função IAM. Marque a caixa de seleção ao lado da função e selecione Next.
Selecione Finish para criar a chave.
Encontre a chave na lista de chaves gerenciadas pelo cliente, selecione-a e registre seu ARN. A seguir está um exemplo de ARN para uma chave:
arn:aws:kms:us-west-2:111111122222:key/1a1a11aa-aa1a-aaa1a-a1a1-000000000000
.Ao criar seu volume externo, defina o valor
KMS_KEY_ID
como ARN da sua chave.
Etapa 4: criar um volume externo no Snowflake¶
Crie um volume externo usando o comando CREATE EXTERNAL VOLUME.
Nota
Somente administradores de conta (usuários com a função ACCOUNTADMIN) podem executar este comando SQL.
O exemplo a seguir cria um volume externo que define um local de armazenamento do Amazon S3 com criptografia:
CREATE OR REPLACE EXTERNAL VOLUME exvol
STORAGE_LOCATIONS =
(
(
NAME = 'my-s3-us-west-2'
STORAGE_PROVIDER = 'S3'
STORAGE_BASE_URL = 's3://MY_EXAMPLE_BUCKET/'
STORAGE_AWS_ROLE_ARN = 'arn:aws:iam::123456789012:role/myrole'
ENCRYPTION=(TYPE='AWS_SSE_KMS' KMS_KEY_ID='arn:aws:kms:us-west-2:111111122222:key/1a1a11aa-aa1a-aaa1a-a1a1-000000000000')
)
);
Nota
Opcionalmente, use o parâmetro STORAGE_AWS_EXTERNAL_ID para especificar seu próprio ID externo. Você pode escolher esta opção para usar o mesmo ID externo em vários volumes externos e/ou integrações de armazenamento.
Etapa 5: recuperar o usuário AWS IAM para sua conta Snowflake¶
Para recuperar o ARN do usuário AWS IAM que foi criado automaticamente para sua conta Snowflake, use o comando DESCRIBE EXTERNAL VOLUME. Especifique o nome do volume externo criado anteriormente.
Por exemplo:
DESC EXTERNAL VOLUME exvol;
Registre os valores para as seguintes propriedades:
Propriedade
Descrição
STORAGE_AWS_IAM_USER_ARN
O usuário AWS IAM criado para sua conta Snowflake; por exemplo,
arn:aws:iam::123456789001:user/abc1-b-self1234
. O Snowflake fornece um único usuário IAM para toda a sua conta Snowflake. Todos os volumes externos S3 da sua conta usam esse usuário IAM.STORAGE_AWS_EXTERNAL_ID
O ID externo que o Snowflake usa para estabelecer uma relação de confiança com AWS. Se você não especificou um ID externo (
STORAGE_AWS_EXTERNAL_ID
) ao criar o volume externo, o Snowflake gerará um ID para você usar.Você fornece esses valores na próxima etapa.
Etapa 6: conceder ao usuário IAM permissões para acessar objetos de bucket¶
Nesta etapa, você configura permissões que permitem que o usuário IAM da sua conta Snowflake acesse objetos no seu bucket S3.
Faça login no AWS Management Console.
Selecione Identity & Access Management (IAM):
Selecione Roles no painel de navegação à esquerda.
Selecione a função que você criou em Etapa 2: criar uma função IAM no AWS.
Selecione a guia Trust relationships.
Selecione Edit trust relationship.
Modifique o documento de política com os valores de saída registrados em Etapa 5: recuperar o usuário AWS IAM para sua conta Snowflake:
Documento de política da função IAM
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "AWS": "<snowflake_user_arn>" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId": "<snowflake_external_id>" } } } ] }
Onde:
snowflake_user_arn
é o valor STORAGE_AWS_IAM_USER_ARN que você registrou.snowflake_external_id
é o valor STORAGE_AWS_EXTERNAL_ID que você registrou.
Nota
Você deverá atualizar este documento de política se criar um novo volume externo (ou recriar um volume externo existente usando a sintaxe CREATE OR REPLACE EXTERNAL VOLUME) e não fornecer seu próprio ID externo. Por motivos de segurança, um volume externo novo ou recriado tem um ID externo diferente e não pode resolver a relação de confiança, a menos que você atualize esta política de confiança.
Selecione Update Trust Policy. As alterações são salvas.
Nota
Para verificar se suas permissões estão configuradas corretamente, crie uma tabela Iceberg usando este volume externo. O Snowflake não verifica se suas permissões estão definidas corretamente até que a primeira tabela Iceberg que faz referência a esse volume externo seja criada.
Próximos passos¶
Depois de configurar um volume externo, você poderá criar uma tabela Iceberg.
Para criar uma tabela Iceberg somente leitura que usa uma integração de catálogo, consulte Configuração de uma integração de catálogo para tabelas Iceberg.
Para criar uma tabela Iceberg com suporte completo à plataforma Snowflake, consulte Criação de uma tabela Iceberg com Snowflake como catálogo.
Configuração de um volume externo para o Google Cloud Storage¶
Esta seção aborda como conceder acesso restrito do Snowflake a um bucket do Google Cloud Storage (GCS) usando um volume externo.
Um administrador da sua organização concede permissões de usuário IAM na sua conta do Google Cloud.
Etapa 2: recuperar a conta de serviço de armazenamento em nuvem para sua conta Snowflake
Etapa 3: conceder as permissões da conta de serviço para acessar os objetos do bucket
Nota
Para concluir as instruções nesta seção, você precisa ter permissões no Google Cloud para criar e gerenciar políticas e funções IAM. Se você não for administrador do Google Cloud, peça ao administrador do Google Cloud para realizar essas tarefas.
Para oferecer suporte à recuperação de dados, ative o controle de versão para seu local de armazenamento em nuvem externo.
Etapa 1: criar um volume externo no Snowflake¶
Crie um volume externo usando o comando CREATE EXTERNAL VOLUME.
Nota
Somente administradores de conta (usuários com a função ACCOUNTADMIN) podem executar este comando SQL.
O exemplo a seguir cria um volume externo que define um local de armazenamento GCS com criptografia:
CREATE EXTERNAL VOLUME exvol
STORAGE_LOCATIONS =
(
(
NAME = 'my-us-east-1'
STORAGE_PROVIDER = 'GCS'
STORAGE_BASE_URL = 'gcs://mybucket1/path1/'
ENCRYPTION=(TYPE='GCS_SSE_KMS' KMS_KEY_ID = '1234abcd-12ab-34cd-56ef-1234567890ab')
)
);
Etapa 2: recuperar a conta de serviço de armazenamento em nuvem para sua conta Snowflake¶
Para recuperar o ID para a conta de serviço de armazenamento em nuvem que foi criada automaticamente para sua conta Snowflake, use o comando DESCRIBE EXTERNAL VOLUME. Especifique o nome do volume externo criado anteriormente.
Por exemplo:
DESC EXTERNAL VOLUME exvol;
Registre o valor da propriedade STORAGE_GCP_SERVICE_ACCOUNT
na saída (por exemplo, service-account-id@project1-123456.iam.gserviceaccount.com
).
O Snowflake fornece uma única conta de serviço de armazenamento em nuvem para toda a sua conta Snowflake. Todos os volumes externos do Google Cloud Storage usam essa conta de serviço.
Etapa 3: conceder as permissões da conta de serviço para acessar os objetos do bucket¶
Nesta etapa, você configura as permissões de acesso IAM para Snowflake no console do Google Cloud Platform.
Criação de uma função IAM personalizada¶
Crie uma função personalizada que tenha as permissões necessárias para acessar o bucket e obter objetos.
Entre no console do Google Cloud Platform como editor de projeto.
No painel inicial, selecione IAM & admin » Roles.
Selecione Create Role.
Digite um nome e uma descrição para a função personalizada.
Selecione Add Permissions.
Filtre a lista de permissões e adicione o seguinte da lista:
storage.buckets.get
storage.objects.create
storage.objects.delete
storage.objects.get
storage.objects.list
Selecione Create.
Atribuição da função personalizada à conta de serviço de armazenamento em nuvem¶
Entre no console do Google Cloud Platform como editor de projeto.
No painel inicial, selecione Storage » Browser:
Selecione um bucket a ser configurado para acesso.
Selecione SHOW INFO PANEL no canto superior direito. O painel de informações do bucket é exibido.
No campo Add members, procure pelo nome da conta de serviço da saída em Etapa 2: recuperar a conta de serviço de armazenamento em nuvem para sua conta Snowflake.
No menu suspenso Select a role, selecione Storage » Custom »
<função>
. A<função>
é a função personalizada do Cloud Storage que você criou em Criação de uma função IAM personalizada.Selecione Add. O nome da conta de serviço é adicionado ao menu suspenso da função Storage Object Viewer no painel de informações.
Nota
Para verificar se suas permissões estão configuradas corretamente, crie uma tabela Iceberg usando este volume externo. O Snowflake não verifica se suas permissões estão definidas corretamente até que a primeira tabela Iceberg que faz referência a esse volume externo seja criada.
Concessão de permissões de conta do serviço de armazenamento em nuvem para chaves criptográficas do Cloud Key Management Service¶
Nota
Esta etapa é necessária apenas se seu bucket GCS estiver criptografado usando uma chave armazenada no Google Cloud Key Management Service (Cloud KMS).
Entre no console do Google Cloud Platform como editor de projeto.
No painel inicial, selecione Security » Cryptographic keys.
Selecione o chaveiro que é atribuído ao seu bucket GCS.
No canto superior direito, selecione SHOW INFO PANEL. O painel de informações do chaveiro é exibido.
No campo Add members, procure pelo nome da conta de serviço da saída DESCRIBE EXTERNAL VOLUME em Etapa 2: recuperar a conta de serviço de armazenamento em nuvem para sua conta Snowflake.
A partir do menu suspenso Select a role, selecione a função Cloud KMS CryptoKey Encrypter/Decrypter.
Selecione Add. O nome da conta de serviço é adicionado ao menu suspenso da função Cloud KMS CryptoKey Encrypter/Decrypter no painel de informações.
Próximos passos¶
Depois de configurar um volume externo, você poderá criar uma tabela Iceberg.
Para criar uma tabela Iceberg somente leitura que usa uma integração de catálogo, consulte Configuração de uma integração de catálogo para tabelas Iceberg.
Para criar uma tabela Iceberg com suporte completo à plataforma Snowflake, consulte Criação de uma tabela Iceberg com Snowflake como catálogo.
Configuração de um volume externo para o armazenamento Azure¶
Esta seção aborda como conceder acesso restrito do Snowflake ao seu próprio contêiner do Microsoft Azure (Azure) usando um volume externo. Snowflake oferece suporte aos seguintes serviços de armazenamento em nuvem do Azure para volumes externos:
Armazenamento de Blobs
Data Lake Storage Gen2
Uso geral v1
Uso geral v2
Um administrador da sua organização concede permissões de usuário IAM na sua conta do Azure.
Nota
Completar as instruções nesta seção exige permissões no Azure para criar e gerenciar políticas e funções de IAM. Se você não é um administrador Azure, peça a seu administrador Azure para realizar essas tarefas.
Para oferecer suporte à recuperação de dados, ative o controle de versão para seu local de armazenamento em nuvem externo.
Etapa 1: criar um volume externo no Snowflake¶
Crie um volume externo usando o comando CREATE EXTERNAL VOLUME.
Nota
Somente administradores de conta (usuários com a função ACCOUNTADMIN) podem executar este comando SQL.
O exemplo a seguir cria um volume externo que define um local de armazenamento do Azure com criptografia:
CREATE EXTERNAL VOLUME exvol
STORAGE_LOCATIONS =
(
(
NAME = 'my-azure-northeurope'
STORAGE_PROVIDER = 'AZURE'
STORAGE_BASE_URL = 'azure://exampleacct.blob.core.windows.net/my_container_northeurope/'
AZURE_TENANT_ID = 'a123b4c5-1234-123a-a12b-1a23b45678c9'
)
);
Nota
Use o prefixo azure://
e não https://
ao especificar um valor para STORAGE_BASE_URL.
Etapa 2: conceder ao Snowflake acesso aos locais de armazenamento¶
Para recuperar um URL para a página de solicitação de permissões da Microsoft, use o comando DESCRIBE EXTERNAL VOLUME. Especifique o nome do volume externo criado anteriormente.
DESC EXTERNAL VOLUME exvol;
Registre os valores para as seguintes propriedades:
Propriedade
Descrição
AZURE_CONSENT_URL
URL para a página de solicitação de permissões da Microsoft.
AZURE_MULTI_TENANT_APP_NAME
Nome do aplicativo cliente do Snowflake criado para sua conta. Em uma etapa posterior desta seção, você concede a este aplicativo a permissão para obter um token de acesso em seus locais de armazenamento permitidos.
Você usa esses valores nas etapas a seguir.
Em um navegador da Web, navegue até a página de solicitação de permissões da Microsoft (o
AZURE_CONSENT_URL
).Selecione Accept. Esta ação permite que a entidade de segurança do serviço Azure criada para sua conta Snowflake obtenha um token de acesso a qualquer recurso dentro de seu locatário. A obtenção de um token de acesso só tem sucesso se você conceder à entidade de segurança de serviço as permissões apropriadas sobre o contêiner (consulte a próxima etapa).
A página de solicitações de permissão da Microsoft é redirecionada para o site corporativo da Snowflake (snowflake.com).
Entre no portal do Microsoft Azure.
Vá para Azure Services » Storage Accounts. Selecione o nome da conta de armazenamento à qual você deseja conceder acesso da entidade de segurança de serviço Snowflake.
Nota
Você deve definir as permissões IAM para um volume externo no nível da conta de armazenamento, não no nível do container.
Selecione Access Control (IAM) » Add role assignment.
Selecione a função
Storage Blob Data Contributor
para conceder acesso de leitura e gravação à entidade de segurança de serviço Snowflake.Nota
A função
Storage Blob Data Contributor
concede acesso de gravação ao local do volume externo. Para configurar completamente o acesso de gravação, o parâmetroALLOW_WRITES
do volume externo deve ser definido comoTRUE
(o valor padrão).Pesquise a entidade de segurança do serviço Snowflake. Esta é a identidade na propriedade AZURE_MULTI_TENANT_APP_NAME na saída DESC EXTERNAL VOLUME (na Etapa 1). Pesquise a cadeia de cadeia de caracteres antes do sublinhado na propriedade AZURE_MULTI_TENANT_APP_NAME.
Importante
Pode levar uma hora ou mais para que o Azure crie a entidade de segurança do serviço Snowflake solicitada por meio da página de solicitação da Microsoft nesta seção. Se a entidade de segurança de serviço não estiver disponível imediatamente, aguarde uma ou duas horas e depois procure novamente.
Se você excluir a entidade de segurança de serviço, o volume externo deixa de funcionar.
Selecione Review + assign.
Nota
Pode levar até 10 minutos para que as alterações entrem em vigor quando você atribui uma função. Para obter mais informações, consulte Sintoma – não estão sendo detectadas alterações de atribuição de função na documentação do Microsoft Azure.
Nota
Para verificar se suas permissões estão configuradas corretamente, crie uma tabela Iceberg usando este volume externo. O Snowflake não verifica se suas permissões estão definidas corretamente até que a primeira tabela Iceberg que faz referência a esse volume externo seja criada.
Próximos passos¶
Depois de configurar um volume externo, você poderá criar uma tabela Iceberg.
Para criar uma tabela Iceberg somente leitura que usa uma integração de catálogo, consulte Configuração de uma integração de catálogo para tabelas Iceberg.
Para criar uma tabela Iceberg com suporte completo à plataforma Snowflake, consulte Criação de uma tabela Iceberg com Snowflake como catálogo.
Ativação do controle de versão para seu armazenamento externo em nuvem¶
Os dados da tabela Iceberg são armazenados no armazenamento em nuvem externo que você gerencia. Se os dados estiverem em um repositório central de dados (ou data lake) operado por diversas ferramentas e serviços, poderá ocorrer exclusão acidental ou corrupção.
Para oferecer suporte à recuperação de objetos, você pode ativar o controle de versão para seu armazenamento externo em nuvem.
Para ativar o controle de versão do Amazon S3, consulte Ativação do controle de versão em buckets.
Para ativar o controle de versões do Google Cloud Storage, consulte Uso do controle de versão de objetos.
Para ativar o controle de versão para o Azure, consulte Ativação do controle de versão de blob.
Local de armazenamento ativo¶
Durante o período de versão preliminar, cada volume externo oferece suporte a um único local de armazenamento ativo. A localização ativa permanece a mesma durante a vida útil do volume externo.
Se você especificar vários locais de armazenamento ao criar um volume externo, o Snowflake atribuirá um local como local ativo para o volume externo.
A atribuição ocorre quando a primeira tabela que utiliza o volume externo é criada. Snowflake usa a seguinte lógica para escolher um local ativo:
Se a lista
STORAGE_LOCATIONS
contiver um ou mais locais de armazenamento locais, o Snowflake usará o primeiro local de armazenamento local da lista. Um local de armazenamento local está no mesmo provedor de nuvem e na mesma região que sua conta Snowflake.Se a lista
STORAGE_LOCATIONS
não contiver nenhum local de armazenamento local, o Snowflake selecionará o primeiro local da lista.
Nota
As tabelas Iceberg entre nuvens/regiões são suportadas somente quando você usa uma integração de catálogo. Para obter mais informações, consulte Suporte entre nuvens/entre regiões.
Os volumes externos criados antes da versão 7.44 do Snowflake podem ter usado uma lógica diferente para selecionar um local ativo.
Definição de um volume externo no nível da conta, do banco de dados ou do esquema¶
Para definir qual volume externo existente usar 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.
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';
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/';