将数据从 Snowflake 卸载到本地

在数据库中,创建模式,即表的逻辑分组。表包含列。表和列是数据库的低级和最重要的对象。现在,表和列最重要的功能是存储数据。

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

使用 Snowflake 的 UI 将数据卸载到本地文件

在本节中,我们将讨论将数据以 csv 或 tsv 格式卸载到本地文件时应遵循的步骤。 UI 存在一个限制,即用户无法将整个数据直接保存到本地目录中。

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

让我们讨论一下用户界面方法。

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

单击下载图标

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

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

卸载数据

使用 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 Repository,如以下屏幕截图所示 −

Snowsql

用户可以移动到 bootstrap → 1.2 → windows_x86_64 → 单击下载最新版本。以下屏幕截图显示了上述步骤 −

下载最新版本

现在,安装下载的插件。安装后,在系统中打开 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 创建的默认阶段,如果用户想要使用自己的内部阶段,只需传递 @<stage_name>。日期将被卸载到本地目录中。