簡體   English   中英

我們可以將外部 JSON 文件復制到雪花中嗎?

[英]Can we COPY External JSON File into Snowflake?

我正在嘗試將外部 JSON 文件從 Azure Blob 存儲加載到雪花。 我創建了 LOCATION_DETAILS 表,所有列都作為 Variant。 當我嘗試加載到表中時,出現以下錯誤:

從外部 JSON 文件錯誤詳細信息復制到表中

誰可以幫我這個事?

您需要創建文件格式並提及文件類型和其他規范,如下所示:創建或替換文件格式 myjsonformat type = 'JSON' strip_outer_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);

之后,您可以像這樣列出來自雪花的 blobstorage 中的內容:

list @"<DATABASE>"."<SCHEMA>"."<STAGE_NAME>";

或者像這樣:

use database "<DATABASE>";
use schema "<SCHEMA>";
SELECT *  FROM @"STAGE_NAME"/sales.json;

如果您需要創建表,請使用以下命令:

create or replace table "<DATABASE>"."<SCHEMA>"."<TABLE>" (src VARIANT);

您可以像這樣復制您的數據(對於單個文件):

copy into "<DATABASE>"."<SCHEMA>"."<TABLE>" from @"<STAGE_NAME>"/sales.json;

最后,將它用於您在階段中獲得的所有新數據。 注意:您不需要刪除以前的數據,它會忽略它並僅加載新數據。

copy into "<DATABASE>"."<SCHEMA>"."<TABLE>" from @"STAGE_NAME";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM