将数据从 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 客户端 (snowsql),然后单击 Snowflake 存储库,如以下屏幕截图所示 -

雪SQL

用户可以移至 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> 即可。日期将被卸载到本地目录中。