雪花云数据仓库如何导出数据到本地?

How to export data to local system from snowflake cloud data warehouse?

我正在使用雪花云数据仓库,它类似于托管数据的 teradata。我能够 运行 查询并在网络 UI 上获得结果。但是我不清楚如何将结果导出到本地PC,以便我们可以根据数据进行报告。

提前致谢

您可以使用 COPY 命令将 table(或查询结果)导出到 S3 上的文件(使用 "stage" 位置),然后使用 GET 命令将其保存到本地文件系统。您只能通过 "sfsql" Snowflake 命令行工具(不能通过网络 UI)执行此操作。

搜索 "unloading" 的文档,您会在那里找到更多信息。

您有 2 个选项都使用基于 henplus 的 sfsql。第一个选项是将查询结果导出到 S3 暂存文件,如下所示:

CREATE STAGE my_stage URL='s3://loading/files/' CREDENTIALS=(AWS_KEY_ID=‘****' AWS_SECRET_KEY=‘****’);
COPY INTO @my_stage/dump
FROM  (select * from orderstiny limit 5) file_format=(format_name=‘csv' compression=‘gzip'');

另一种选择是将 sql 结果捕获到文件中。

test.sql:

set-property column-delimiter ","; 
set-property sql-result-showheader off;
set-property sql-result-showfooter off;

select current_date() from dual;

$ ./sfsql < test.sql > result.txt

有关更多详细信息和帮助,请登录您的 Snowflake 帐户并访问在线文档或 post 您通过 Snowflake 支持门户向 Snowflake 支持提出的问题,该门户可通过 Snowflake 帮助部分访问。帮助 -> 支持门户。

希望对您有所帮助。

您可以直接将数据从 Snowflakes 下载到本地文件系统,而无需暂存到 S3 或通过 unix 管道重定向

  1. 使用 COPY INTO 将 table 数据加载到 table 分段 https://docs.snowflake.net/manuals/sql-reference/sql/copy-into-location.html

    snowsql$> copy into @%test_table/result/data_ from test_table file_format = (TYPE ='[FILE_TYPE]' compression='[COMPRESSION_TYPE]');

  2. 使用GET命令从table staging下载数据到Local FS https://docs.snowflake.net/manuals/sql-reference/sql/get.html

    snowsql$> get @%test_table/result/data_ file:///tmp/;