使用批处理脚本将CSV文件数据加载到雪花云表

时间:2018-11-30 06:03:07

标签: batch-file snowflake-datawarehouse snowflake

我是批处理脚本的新手,我的要求是将CSV文件复制到snowfalke表中。

我尝试使用

  

复制到命令中

由SNOWFLAKE文档提供。

但不幸的是它无法正常工作,请为我提供帮助。

这是我手动尝试过的

for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"

set fullstamp=select * from Tbl_Store where OperationDate='%YYYY%-%MM%-%DD%'
set filename=Tbl_Store_%YYYY%_%MM%_%DD%

sqlcmd -S ta -d SMS_Online  -U sa -P ***-h -1 -s, -W -Q "%fullstamp%" -s "," -o "E:\Workspace\%filename%.csv" 
set File_Name=%filename%.csv
: path to Output the 
set File_PATH=E:\Workspace\

: Set Bucket Path
set AWSBUCKET=s3://S3_TEST

: Set AWS path
set AWSPROFILE= S3_TEST

: upload the ZIP FILE to the AWS
:aws s3 cp %File_PATH%%File_Name% %AWSBUCKET% 

:Copy into SnowFlake
copy into table_name from %File_PATH%%File_Name%   

1 个答案:

答案 0 :(得分:0)

我通过使用需要配置的snowsql.exe找到了解决方案。

通过批处理,我使用下面的命令执行SQL语句以在Snowflake上执行数据加载,之后将ddl语句生成为一个文本文件。

copy into tablename  from @my_s3_stage/%file_path and name on_error = 'skip_file' force=true;
snowsql -c Schema_Name -f file_path 
  

@ my_s3_stage阶段需要在snowfalke IDE上创建