Когда я использую внешние данные для 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";