简体   繁体   English

如何将镶木地板文件从 Azure Blob 存储复制到雪花表中?

[英]How to copy parquet file from Azure Blob Storage into Snowflake table?

To copy parquet file from Azure Blob Storage into Snowflake table, I have created a stored procedure, but I don't know how to convert timestamp in source data to date.要将镶木地板文件从 Azure Blob 存储复制到雪花表中,我创建了一个存储过程,但我不知道如何将源数据中的时间戳转换为日期。

CREATE OR REPLACE PROCEDURE PROC_IMPORT_COPY_DATA(year varchar,month varchar,day varchar)
returns varchar
LANGUAGE sql
AS
  $$
  BEGIN
  let delete_query varchar:= 'delete from PRD_RAW_DATA.PUBLIC.SAMPLE_DATA where load_date = substr(to_char(CURRENT_DATE()),1,4) || substr(to_char(CURRENT_DATE()),6,2) || substr(to_char(CURRENT_DATE()),9,2)';
  execute immediate delete_query;
let uri varchar := concat(
'select 
$1:COMPANY_CODE,
$1:STORE_CODE,
$1:JAN_CODE,
$1:PERIOD,
$1:QUANTITY,
$1:AMOUNT,
$1:GROSS_PROFIT,
$1:SELLING_PRICE,
$1:SALE_QUANTITY,
$1:SALE_AMOUNT,
$1:SALE_GROSS_PROFIT,
$1:SALE_PRICE,
$1:NUMBER_OF_DEALERS,
$1:NUMBER_OF_VISITORS,
$1:LOAD_DATE
FROM @SYNAPSE_STAGE_PRD/delta/sample_data'
,'/year='
, :year
,'/month='
, :month
,'/day='
, :day
);
let copy_query varchar := concat('copy into PRD_RAW_DATA.PUBLIC.SAMPLE_DATA from '
                                        ,'('
                                        ,uri
                                        ,'(file_format => my_parquet_format, pattern => \'.*.parquet\') t'
                                        ,') force=TRUE'
                                    );
    execute immediate copy_query;
    return(copy_query);
  END;
  $$;

This is error message;这是错误信息; Uncaught exception of type 'STATEMENT_ERROR' on line 77 at position 4: Failed to cast variant value "2022-08-17 00:00:00.000" to DATE在 position 4 的第 77 行上未捕获类型“STATEMENT_ERROR”的异常:无法将变量值“2022-08-17 00:00:00.000”转换为 DATE

Do you know the solution to this?你知道解决这个问题的方法吗? Any help would be appriciated.任何帮助都将不胜感激。 Thank you.谢谢你。

You can cast a timestamp to date if needed, like this:如果需要,您可以将时间戳转换为日期,如下所示:

select '2022-08-17 00:00:00.000'::date;

gives me:给我:

2022-08-17

In your case I am not sure which is the column that gives that error but if I would take one that looks like a timestamp:在您的情况下,我不确定哪个是给出该错误的列,但如果我会采用一个看起来像时间戳的列:

$1:LOAD_DATE

you could do:你可以这样做:

$1:LOAD_DATE::date

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何在雪花中动态创建表,从存储在 AWS 中的镶木地板文件中获取模式 - How to dynamically create table in Snowflake getting schema from parquet file which stored in AWS 如何从Azure数据工厂中的azure blob存储中获取某些数据,并将目标作为SQL数据库执行复制活动? - How to get just certain data from azure blob storage in Azure Data Factory performing copy activity with destination as SQL database? 是否将数据存储到Azure存储,blob或表? - Storing the data to Azure storage, blob or table? 具有Azure Blob存储的扩展事件文件存储 - Extended events file store with Azure blob storage 雪花程序错误(将数据放入 blob 存储) - Snowflake procedure error (dropping data into blob storage) 是否可以从 Azure sql 数据库中导出单个表,然后直接保存到 azure blob 存储而不下载到本地磁盘 - Is it possible to export a single table from Azure sql database, then directly save into azure blob storage without downloading it to local disk 尝试将数据从Impala Parquet表复制到非Parquet表 - Trying to copy data from Impala Parquet table to a non-parquet table 自动将 SQL 查询结果导出为 txt 文件到 Azure blob 存储 - Export SQL query result as a txt file to Azure blob storage automatically Snowflake:如何在涉及约束和默认值的情况下执行 CTAS 或将数据从表 x 复制到 y? - Snowflake: How to perform CTAS or copy data from table x to y with constraints and default values involved? Snowflake - 并行处理大型 zip 文件并将其复制到 SF 表 - Snowflake - Parallel processing and copy of large zip file to a SF Table
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM