通过雪花中的目标表进行JSON扁平化的替代方法

时间:2019-11-18 22:31:28

标签: json flatten snowflake-data-warehouse lateral

每个雪花:https://docs.snowflake.net/manuals/user-guide/json-basics-tutorial-copy-into.html我创建了一个目标表(Testing_JSON),该表是一个包含已上传JSON文件的单个Variant列。

我的问题是如何剪切创建此“目标表(即Testing_JSON)”的单列变量列,我必须引用该变量列来创建我想要的实际且唯一的表(TABLE1),该表包含扁平化的JSON。我没有找到从桌面读取JSON文件并“即时解析”以创建展平表VIA THE UI的方法。如我所知,不使用CLI可以使用PUT / COPY INTO

完成
create or replace temporary table TABLE1 AS
SELECT 
VALUE:col1::string AS COL_1,
VALUE:col2::string AS COL_2,
VALUE:col3::string AS COL_3

from TESTING_JSON 
  , lateral flatten( input => json:value);

2 个答案:

答案 0 :(得分:2)

您需要在桌面上完成几个步骤。

  1. 使用SnowSQL或其他工具将JSON文件更新为blob 存储: https://docs.snowflake.net/manuals/sql-reference/sql/put.html
  2. 使用COPY INTO语句将数据直接加载到要加载到的展平表中。这将需要在COPY INTO中使用SELECT语句: https://docs.snowflake.net/manuals/sql-reference/sql/copy-into-table.html

这里有一个很好的例子:

https://docs.snowflake.net/manuals/user-guide/querying-stage.html#example-3-querying-elements-in-a-json-file

答案 1 :(得分:1)

您无法通过用户界面执行此操作。如果要执行此操作,则需要在桌面上使用外部工具,或者-如Mike所述-在COPY语句中使用。