从 Snowflake 卸载数据到本地



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

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

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

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

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

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

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

Click Download Icon

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

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

Unloading Data

使用 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 客户端 (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 创建的默认阶段,如果用户想要使用他们自己的内部阶段,只需传递为 @<stage_name>。数据将卸载到本地目录。

广告