Snowflake 设置

Driverless AI 允许您在 Driverless AI 应用程序内搜索 Snowflake 数据源。本节介绍如何配置 Driverless AI 与 Snowflake 配合使用。此设置要求您启用身份验证。如果您启用 Snowflake 连接器,文件系统将在 UI 中可用,但您无法使用无身份验证的连接器。

请注意:根据您所安装的 Docker 版本,在启动 Driverless AI Docker 映像时,使用 docker run --runtime=nvidia (>= Docker 19.03) 或 nvidia-docker (< Docker 19.03) 命令。使用 docker version 检查所使用的 Docker 版本。

配置属性说明

  • snowflake_account: Snowflake 帐户 ID

  • snowflake_user: 用于访问 Snowflake 帐户的用户名

  • snowflake_password: 用于访问 Snowflake 帐户的密码

  • enabled_file_systems: 您要启用的文件系统。为使数据连接器正常运行,必须进行此项配置。

启用有身份验证的 Snowflake

此示例通过传递 accountuserpassword 变量启用有身份验证的 Snowflake 数据连接器。

 nvidia-docker run \
 --rm \
 --shm-size=256m \
 -e DRIVERLESS_AI_ENABLED_FILE_SYSTEMS="file,snow" \
 -e DRIVERLESS_AI_SNOWFLAKE_ACCOUNT = "<account_id>" \
 -e DRIVERLESS_AI_SNOWFLAKE_USER = "<username>" \
 -e DRIVERLESS_AI_SNOWFLAKE_PASSWORD = "<password>"\
 -u `id -u`:`id -g` \
 -p 12345:12345 \
 -v `pwd`/data:/data \
 -v `pwd`/log:/log \
 -v `pwd`/license:/license \
 -v `pwd`/tmp:/tmp \
 -v `pwd`/service_account_json.json:/service_account_json.json \
 h2oai/dai-centos7-x86_64:1.10.1-cuda11.2.2.xx

使用 Snowflake 添加数据集

在 Snowflake 连接器启用后,您可以通过在 添加数据集(或拖放) 下拉菜单中选择 Snowflake 来添加数据集。

Add Dataset

指定以下信息以添加数据集。

  1. 输入数据库:指定您所查询的 Snowflake 数据库名称。

  2. 输入数据仓库:指定您所查询的 Snowflake 数据仓库名称。

  3. 输入模式:指定您所查询的数据集模式。

  4. 输入将被另存为的数据集的名称:指定保存数据集时使用的名称。注意此名称只能为 CSV 文件(例如,myfile.csv)。

  5. 输入用户名:(选填)指定与此 Snowflake 帐户相关的用户名。如果启动 Driverless AI 时在 config.toml 中指定了 snowflake_user,则可将此字段保留为空,否则,此字段为必填字段。

  6. 输入密码:(选填)指定与此 Snowflake 帐户相关的密码。如果启动 Driverless AI 时在 config.toml 中指定了 snowflake_password,则可将此字段保留为空,否则,此字段为必填字段。

  7. 输入角色:(选填)按照 Snowflake 中的要求指定您的角色。更多信息,请访问 https://docs.snowflake.net/manuals/user-guide/security-access-control-overview.html

  8. 输入区域:(选填)指定您所查询数据仓库的区域。在 Snowflake 提供用于访问数据库的 URL 中(<optional-deployment-name>.<region>.<cloud-provider>.snowflakecomputing.com 中)可以找到此区域。此字段为选填字段,如果启动 Driverless AI 时为 snowflake_url 指定了 <region>,则也可将此字段保留为空。

  9. 输入文件格式化参数:(选填)指定用于格式化数据集的任何附加参数。https://docs.snowflake.com/en/sql-reference/sql/create-file-format.html#type-csv 中列出了可用的参数。(请注意:只将参数用于 TYPE = CSV. )例如,如果您的数据集中有一个包含逗号的文本列,则可以通过使用 FIELD_DELIMITER='character' 指定不同的分隔符。多个参数必须使用空格分隔:

FIELD_DELIMITER=',' FIELD_OPTIONALLY_ENCLOSED_BY="" SKIP_BLANK_LINES=TRUE

请注意:务必确保指定的分隔符没有被用作单元格内的字符。否则,会发生错误。例如,您可能指定以下内容以加载 “AMAZON_REVIEWS” 数据集:

  • 数据库:UTIL_DB

  • 数据仓库:DAI_SNOWFLAKE_TEST

  • 模式:AMAZON_REVIEWS_SCHEMA

  • 查询:SELECT * FROM AMAZON_REVIEWS

  • 输入文件格式化参数(选填):FIELD_OPTIONALLY_ENCLOSED_BY = ‘”’

在上例中,如果未设置 FIELD_OPTIONALLY_ENCLOSED_BY 选项,以下行会导致无法导入数据集(因为默认的数据集分隔符为 , ):

positive, 2012-05-03,Wonderful\, tasty taffy,0,0,3,5,2012,Thu,0

请注意:Snowflake 中具有空值的数值列有时会被转换为字符串(例如 \ \N )。为防止此事件发生,将 NULL_IF=() 添加到“文件格式化参数”的输入中。

  1. 输入 Snowflake 查询:指定您想执行的 Snowflake 查询。

  2. 完成后,选择 单击以执行查询 按钮以添加数据集。

Make BigQuery