Skip to main content
Announcements
The way to achieve your own success is the willingness to help somebody else. Go for it!
cancel
Showing results for 
Search instead for 
Did you mean: 
takayuki
Contributor
Contributor

SnowflakeへのデータStoreについて

はじめまして

当方環境ではQlikSenseのデータ接続先としてAWSとSnowflakeを利用しており

既にSnowflakeには接続は確立済みで、Snowflake内のテーブルをQlikSenseで取得できることは確認済みです

 

この度QlikSenseで集計、保持したデータをSnowflakeへStoreしようとしているのですが

コードの記述が分からず質問させて頂きたいと思います

AWS(AmazonS3)であればデータのStoreは

 

Store <テーブル名> into [lib:<接続確立済スペース名>/<AmazonS3対象階層Pass>/<保存するファイル名称>.<拡張子>](<拡張子名>);

→テーブル名はQlikロードスクリプトで保持したStoreしたいテーブルの名称、拡張子はQVD、CSV等

概ね上記のような構成のコードとなっており、問題なく動作させられているのですが

これをSnowflakeで再現しようとした場合は

 

仮にCSVデータをStoreしようとした場合、事前に該当名称のCSVをSnowflakeに保持させ

LIB CONNECT TO '<接続確立済スペース名>';

SQL USE ROLE <Snowflakeロール名>;

Store <テーブル名> into "<データベース名>"."<スキーマ名>"."<対象CSVファイル名>";

となるのかなと思ったのですが、動作しません

 

またCSVではなく、Qlikで保持しているテーブルをCSV形式ではなく

テーブルデータのままSnowflakeに保持させられないかと思ったのですがこの際にも

LIB CONNECT TO '<接続確立済スペース名>';

SQL USE ROLE <Snowflakeロール名>;

Store <テーブル名> into "<データベース名>"."<スキーマ名>"."<テーブル名>";

というコードでできないのかと思ったもののこれもうまくいきません

 

発生したエラーとしましては

 

以下のエラーが発生しました:
No qualified path for file: ***
ここでエラーが発生しました:
Store <テーブル名> into "<データベース名>"."<スキーマ名>"."<テーブル名>";
 
というエラーが返ってくるので、ロールの権限が不足しているのかとは思うのですが
こちらは社内Snowflake管理者に確認中ですが、割と強い権限を付与してくれているらしいので
コード自体にも問題がある可能性を懸念しての質問となります
Storeする為のコード記述自体には問題はないのでしょうか?
1 Solution

Accepted Solutions
hka
Employee
Employee

Snowflakeに直接Storeするのはできないです。

例えば、S3にCSV出力してSnowflakeはそのCSVを取り込むようにする形ではダメなのでしょうか。

View solution in original post

2 Replies
hka
Employee
Employee

Snowflakeに直接Storeするのはできないです。

例えば、S3にCSV出力してSnowflakeはそのCSVを取り込むようにする形ではダメなのでしょうか。

takayuki
Contributor
Contributor
Author

Hka様

ご回答ありがとうございます

 

現状まさに、その流れでQlikSense→AmazonS3→Snowflakeというフローにてデータを取り込んでおり支障が出ている訳ではないものの

今後のデータ集約、データパイプラインのメンテナンス工数といった観点から

Snowflakeへ直接Store、またはテーブルへのデータ書き込みができないか検証していた、という状況です

 

現在の運用継続か、QlikReplicate等のツール追加導入も視野に対応検討していきます