Categorias:

Funções do sistema (Informações do sistema)

SYSTEM$VALIDATE_STORAGE_INTEGRATION

Valida a configuração para uma integração de armazenamento especificada. A função tenta usar a integração de armazenamento para gravar, ler, listar ou excluir um arquivo para um local de armazenamento especificado por caminho.

Para obter mais informações sobre como configurar integrações de armazenamento, consulte:

Consulte também:

CREATE STORAGE INTEGRATION, ALTER STORAGE INTEGRATION

Sintaxe

SYSTEM$VALIDATE_STORAGE_INTEGRATION( '<storage_integration_name>', '<storage_path>', '<test_file_name>', '<validate_action>' )
Copy

Argumentos

storage_integration_name

Nome da integração de armazenamento a ser testada.

Os nomes de integração de armazenamento diferenciam maiúsculas de minúsculas.

storage_path

O caminho completo para um local de armazenamento que você deseja validar. O caminho de armazenamento deve ser um URL na lista STORAGE_ALLOWED_LOCATIONS para integração de armazenamento.

Amazon S3

's3://bucket/path/'

  • O prefixo s3 refere-se ao armazenamento S3 em regiões públicas do AWS. O prefixo s3gov refere-se ao armazenamento S3 em regiões governamentais.

  • bucket é o nome de um bucket S3 que armazena seus arquivos de dados.

  • path é um caminho ou diretório opcional no bucket.

Google Cloud Storage

'gcs://bucket/path/'

  • bucket é o nome de um bucket GCS que armazena seus arquivos de dados.

  • path é um caminho ou diretório opcional no bucket.

Microsoft Azure

'azure://account.blob.core.windows.net/container/path/'

  • account é o nome da conta de armazenamento Azure.

  • container é o nome de um contêiner de armazenamento de blob do Azure que armazena seus arquivos de dados.

  • path é um caminho ou diretório opcional no bucket.

test_file_name

O nome do arquivo a ser usado na validação da integração de armazenamento.

validate_action

A ação de validação a ser executada.

Valores:
  • read - Valida se o Snowflake pode ler o local de armazenamento. Esta ação falhará se o arquivo não existir.

  • write - Valida se o Snowflake pode gravar no local de armazenamento. Esta ação falhará se o arquivo já existir.

  • list - Valida se o Snowflake pode listar os arquivos no local de armazenamento.

  • delete - Valida se o Snowflake pode excluir arquivos no local de armazenamento.

  • all - Valida todas as ações possíveis no local de armazenamento.

Retornos

A função retorna um objeto JSON com as propriedades descritas abaixo:

Propriedade

Descrição

status

O status do teste de validação. Retorna um status de success se todas as ações foram concluídas com sucesso; retorna failure se alguma ação não foi concluída conforme o esperado.

actions

Matriz de objetos com a ação de validação solicitada (READ, DELETE, LIST, WRITE) e o status.

{
  "status" : "success",
  "actions" : {
    "READ" : {
      "status" : "success"
    },
    "DELETE" : {
      "status" : "success"
    },
    "LIST" : {
      "status" : "success"
    },
    "WRITE" : {
      "status" : "success"
    }
  }
}
Copy

Exemplos

O exemplo a seguir valida a configuração da integração de armazenamento example_integration para todas as ações de validação. O exemplo retorna um resultado bem-sucedido em JSON.

SELECT
  SYSTEM$VALIDATE_STORAGE_INTEGRATION(
    'example_integration',
    's3://example_bucket/test_path/'',
    'validate_all.txt', 'all');
Copy

Saída:

+----------------------------+
|           RESULT           |
+----------------------------+
| {                          |
|   "status" : "success",    |
|   "actions" : {            |
|     "READ" : {             |
|       "status" : "success" |
|     },                     |
|     "DELETE" : {           |
|       "status" : "success" |
|     },                     |
|     "LIST" : {             |
|       "status" : "success" |
|     },                     |
|     "WRITE" : {            |
|       "status" : "success" |
|     }                      |
|   }                        |
| }                          |
+----------------------------+

O exemplo a seguir mostra o resultado quando a integração de armazenamento não tem permissões read.

SELECT
  SYSTEM$VALIDATE_STORAGE_INTEGRATION(
    'example_integration',
    'gcs://example_bucket/test_path/'',
    'read_fail.txt', 'all');
Copy

Saída:

+----------------------------------------------------------------------------------------------------------------+
|                                                     RESULT                                                     |
+----------------------------------------------------------------------------------------------------------------+
| {                                                                                                              |
|   "status" : "failure",                                                                                        |
|   "actions" : {                                                                                                |
|     "READ" : {                                                                                                 |
|       "message" : "Access Denied (Status Code: 403; Error Code: AccessDenied)",                                |
|       "status" : "failure"                                                                                     |
|     },                                                                                                         |
|     "DELETE" : {                                                                                               |
|       "status" : "success"                                                                                     |
|     },                                                                                                         |
|     "LIST" : {                                                                                                 |
|       "status" : "success"                                                                                     |
|     },                                                                                                         |
|     "WRITE" : {                                                                                                |
|       "status" : "success"                                                                                     |
|     }                                                                                                          |
|   },                                                                                                           |
|   "message" : "Some of the integration checks failed. Check the Snowflake documentation for more information." |
| }                                                                                                              |
+----------------------------------------------------------------------------------------------------------------+