类别:

系统函数 (系统信息)

SYSTEM$VALIDATE_STORAGE_INTEGRATION

验证指定存储集成的配置。该函数尝试使用存储集成在定义的路径中写入、读取、列出或删除提供的文件。

有关配置存储集成的更多信息,请参阅:

另请参阅:

CREATE STORAGE INTEGRATIONALTER STORAGE INTEGRATION

语法

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

实参

storage_integration_name

要测试的存储集成的名称。

存储集成名称区分大小写。

storage_path

要验证的存储位置的完整路径。存储路径必须是存储集成的 STORAGE_ALLOWED_LOCATIONS 列表中的 URL。

Amazon S3

's3://bucket/path/'

  • s3 前缀代表公共 AWS 区域中的 S3 存储。s3gov 前缀代表 政府区域 中的 S3 存储。

  • bucket 是存储数据文件的 S3 桶的名称。

  • path 是桶中的可选路径或目录。

Google Cloud Storage

'gcs://bucket/path/'

  • bucket 是存储数据文件的 GCS 桶的名称。

  • path 是桶中的可选路径或目录。

Microsoft Azure

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

  • account 是 Azure 存储账户的名称。

  • container 是存储数据文件的 Azure Blob 存储容器的名称。

  • path 是桶中的可选路径或目录。

test_file_name

要在存储集成验证中使用的文件名称。

validate_action

要执行的验证操作。

值:
  • read - 验证 Snowflake 是否可以从存储位置读取数据。如果文件不存在,则此操作将失败。

  • write - 验证 Snowflake 是否可以写入存储位置。如果文件已存在,则此操作将失败。

  • list - 验证 Snowflake 是否可以列出存储位置中的文件。

  • delete - 验证 Snowflake 是否可以删除存储位置中的文件。

  • all - 验证存储位置中所有可能的操作。

返回

该函数返回一个 JSON 对象,其属性如下所述:

属性

描述

status

验证测试的状态。如果所有操作都按预期执行,将返回为 success,或者如果任何操作未按预期执行,则返回为 failure

actions

包含请求的验证操作和状态的对象数组。READDELETELISTWRITE

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

示例

以下示例为所有验证操作验证存储集成 example_integration 的配置。该示例在 JSON 中返回成功的结果。

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

结果:

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

以下示例显示了当存储集成没有 read 权限时的结果。

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

输出:

+----------------------------------------------------------------------------------------------------------------+
|                                                     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." |
| }                                                                                                              |
+----------------------------------------------------------------------------------------------------------------+
语言: 中文