Snowflake 简明教程

Unload Data from Snowflake to Local

在数据库中,创建了表面的逻辑分组架构。表面包含列。表面和列是低级别且是最重要的数据库对象。现在,表面和列最重要的功能是存储数据。

在本章中,我们将讨论如何将 Snowflake 中表面和列的数据卸载到本地文件中。Snowflake 为用户提供了两种将数据卸载到本地文件的方法:使用用户界面和使用 SQL 查询。

Unload Data into local file using Snowflake’s UI

在本部分中,我们将讨论将数据作为 csv 或 tsv 卸载到本地文件所需遵循的步骤。UI 的一个限制是用户无法直接将整个数据保存到本地目录。

要从 UI 保存数据,用户需要先运行查询,然后将结果保存为 ".csv" 或 ".tsv" 文件。但是,使用 SQL 和 SNOWSQL 数据可以直接保存到本地驱动器,而无需运行查询。在下一部分中,我们将讨论后续过程。

来讨论用户界面方法。

登录 Snowflake。根据需要保存到本地目录的数据运行查询。查询成功运行后,单击下载图标,如下面的屏幕截图所示:

click download icon

它会填充一个对话框,如下面的屏幕截图所示,并要求将“ File Format ”选为 CSV 或 TSV。选择后,单击“ Export ”。它会下载一个结果文件。

以下屏幕截图显示了卸载数据功能:

unloading data

Unload Data into Tables and Columns using SQL

要将数据卸载到本地文件,首先选择一个需要卸载其数据的数据列。接下来,运行以下查询:

USE SCHEMA "TEST_DB"."TEST_SCHEMA_1";
COPY INTO @%TEST_TABLE
FROM (SELECT * FROM TEST_TABLE)
FILE_FORMAT=(FORMAT_NAME=TEST_DB.TEST_SCHEMA_1.CSV);

请注意“@%”用于 Snowflake 创建的默认阶段。如果您需要使用您自己的内部阶段,只需传递为“@<stage_name>”

成功执行查询表示数据已复制到内部阶段。Snowflake 默认情况下为所有表创建一个表阶段,如“@%<table_name>”。

现在运行以下查询以确认文件是否存储在内部阶段。

LIST @%TEST_TABLE;

它会显示存储在内部阶段的所有文件,即使是在加载数据时不成功的文件。

现在,要将文件引入本地目录,我们需要使用“ snowsql ”。确保将其下载到系统中。如果未下载,请按照以下屏幕截图中的步骤进行下载。

单击“ CLI Client (snowsql) ”并单击 Snowflake 存储库,如下面的屏幕截图所示:

snowsql

用户可以切换到 bootstrap → 1.2 → windows_x86_64 → 点击下载最新版本。以下屏幕截图显示了上述步骤:

download latest version

现在,安装已下载的插件。安装完成后,在您的系统中打开 CMD。运行以下命令以检查连接:

"snowsql -a <account_name> -u <username>"

它会要求密码。输入您的 Snowflake 密码。输入密码并按 ENTER。用户将看到成功的连接。现在,命令行显示为:

"<username>#<warehouse_name>@<db_name>.<schema_name>"

现在使用以下命令将文件上传到 Snowflake 阶段:

"GET @%TEST_TABLE file://C:/Users/*******/Documents/"

注释 @% 用于 Snowflake 创建的默认阶段,如果用户想要使用其自己的内部阶段,只需将其传递为 @<阶段名称>。日期将卸载到本地目录。