お問い合わせ
2 分で読むことができます。

ワイルドカードが使用できない場合の対処方法 (Amazon S3とのデータ接続)

2025年4月08日

はじめに

Qlik SenseではAmazon S3との接続時ワイルドカード指定を使用した複数のデータファイルの取り込みができません。今回はAmazon S3との接続を例としてワイルドカードが使用できない場合の対処方法を紹介します。

概要

Data:
Load *
From [lib://data/売上_*.xlsx]
(ooxml, embedded labels, table is Sheet1);

Qlik Senseではワイルドカードを用いてファイル名の文字列を指定し複数のファイルをロード可能です。上記の場合「data」に配置された「売上_」からはじまるExcelファイルを全て取り込みますが、クラウドサービスにはワイルドカード指定が利用できないものがあります。

ワイルドカード指定が利用できない代表的なクラウドサービスの例が以下です。

  • Amazon S3
  • Azure Storage
  • Dropbox
  • Google Cloud Storage
  • Google Drive
  • OneDrive

データ接続準備

「Amazon_S3」及び「Amazon_S3_Metadata」のデータ接続が作成されていることを確認してください。

スクリーンショット 2025-04-07 141158

対処方法

こちらに記載のスクリプトでワイルドカードを使用せずに複数のファイルを取り込むことができます。任意のフォルダ配置されているファイル名のリストを取得し、ループ処理でファイルをデータを取り込む方法です。
以下は例として「売上_」と名前のつくExcelファイルを全て取り込むスクリプトとなっています。

【スクリプト】

※赤字の部分は自身の環境にあった適切な記載に変更してください。

//Amazon S3へ接続
LIB CONNECT TO 'Amazon_S3_Metadata (○○○○)';
ファイルリスト_Temp:
LOAD Key as ファイル名;

SELECT Key
FROM ListObjects
WITH PROPERTIES ( prefix='', maxResults='' );


//「売上_」と名前のつくファイル名のリストを取得
ファイルリスト:
NoConcatenate
LOAD
ファイル名
Resident ファイルリスト_Temp
Where WildMatch(ファイル名, 'test/売上_*');

// 不要なテーブルを削除
DROP TABLE ファイルリスト_Temp;

//取得したファイルリストのデータをループ処理で取り込む
Let NumRows = NoOfRows('ファイルリスト');
For i = 0 to $(NumRows) - 1
Let vFILEName = Peek('ファイル名', $(i), 'ファイルリスト');

//Dataテーブルを作成
Data:
Load *
From [lib://Amazon_S3 (○○○○)/$(vFILEName)]
(txt, utf8, embedded labels, delimiter is ',', msq);

Next

// 不要なデータを削除
DROP TABLE ファイルリスト;

おわりに

Qlik Senseでクラウドサービス接続時にワイルドカード指定ができない場合、上記のスクリプトを参考にしてみてください。



Topics: BIツール
Jiro

Written by Jiro

Qlik_No1_2022
QSナレッジ事例バナー
DXバナー
Qlikseminar
qs_trial
Qllikseminar
Vizlibナレッジ
Vizlibセミナー
qv_knowledge
book_kawaii
Snowflake_バナー

新着記事

タグ別の記事

全て表示