我们可以将外部JSON文件复制到Snowflake中吗?

我们可以将外部JSON文件复制到Snowflake中吗?,json,load,snowflake-cloud-data-platform,Json,Load,Snowflake Cloud Data Platform,我正在尝试将外部JSON文件从Azure Blob存储加载到Snowflake。我创建了表LOCATION_DETAILS,所有列都作为变量。当我尝试加载到表中时,出现以下错误: 有人能帮我吗?您需要创建一种文件格式,并提及文件类型和其他规范,如下所示: 创建或替换文件格式myjsonformat 类型='JSON' strip\u outer\u array=true 然后尝试加载文件,它将正常工作。当我为Snowflake使用外部数据时,我喜欢创建链接到BlobStorage的阶段(在本例

我正在尝试将外部JSON文件从Azure Blob存储加载到Snowflake。我创建了表LOCATION_DETAILS,所有列都作为变量。当我尝试加载到表中时,出现以下错误:


有人能帮我吗?

您需要创建一种文件格式,并提及文件类型和其他规范,如下所示: 创建或替换文件格式myjsonformat 类型='JSON' strip\u outer\u array=true


然后尝试加载文件,它将正常工作。

当我为Snowflake使用外部数据时,我喜欢创建链接到BlobStorage的阶段(在本例中),这很简单,您可以轻松透明地完成所有操作,就像它是本地数据一样

创建链接到blobstorage的阶段,如下所示:

CREATE OR REPLACE STAGE "<DATABASE>"."<SCHEMA>"."<STAGE_NAME>"
  URL='azure://demostorage178.blob.core.windows.net/democontainer'
  CREDENTIALS=(AZURE_SAS_TOKEN='***********************************************')
  FILE_FORMAT = (TYPE = JSON);
list @"<DATABASE>"."<SCHEMA>"."<STAGE_NAME>";
use database "<DATABASE>";
use schema "<SCHEMA>";
SELECT *  FROM @"STAGE_NAME"/sales.json;
创建或替换阶段“”
URL='1〕azure://demostorage178.blob.core.windows.net/democontainer'
凭据=(AZURE_SAS_令牌='*********************************************************************')
文件格式=(类型=JSON);
之后,您可以像下面这样列出blobstorage fromo snowflake中的内容:

CREATE OR REPLACE STAGE "<DATABASE>"."<SCHEMA>"."<STAGE_NAME>"
  URL='azure://demostorage178.blob.core.windows.net/democontainer'
  CREDENTIALS=(AZURE_SAS_TOKEN='***********************************************')
  FILE_FORMAT = (TYPE = JSON);
list @"<DATABASE>"."<SCHEMA>"."<STAGE_NAME>";
use database "<DATABASE>";
use schema "<SCHEMA>";
SELECT *  FROM @"STAGE_NAME"/sales.json;
list@“;
或者像这样:

CREATE OR REPLACE STAGE "<DATABASE>"."<SCHEMA>"."<STAGE_NAME>"
  URL='azure://demostorage178.blob.core.windows.net/democontainer'
  CREDENTIALS=(AZURE_SAS_TOKEN='***********************************************')
  FILE_FORMAT = (TYPE = JSON);
list @"<DATABASE>"."<SCHEMA>"."<STAGE_NAME>";
use database "<DATABASE>";
use schema "<SCHEMA>";
SELECT *  FROM @"STAGE_NAME"/sales.json;
使用数据库“”;
使用模式“”;
从@“STAGE_NAME”/sales.json中选择*;
如果需要创建表,请使用以下命令:

create or replace table "<DATABASE>"."<SCHEMA>"."<TABLE>" (src VARIANT);
创建或替换表“”(src变量);
您可以这样复制数据(对于单个文件):

从@sales.json复制到“.”;
最后,将其用于阶段中获得的所有新数据。注意:您不需要删除以前的数据,它将忽略该数据并仅加载新数据

copy into "<DATABASE>"."<SCHEMA>"."<TABLE>" from @"STAGE_NAME";
从@“STAGE_NAME”复制到“.”;

谢谢Sriga。我直接使用了该类型,它工作::复制到位置_detailsfrom'azure://demostorage178.blob.core.windows.net/democontainer/sales.json'file\u format=(type=“json”)on\u error=“continue”