こんにちは!
このところ、オリンピック観戦で寝不足が続いているYokoです。
Webサイト上で公開されているファイルからデータを取り込みたい時、皆さんはどうしていますか?
ダウンロードして共有ストレージに入れておく…という方が多いですよね。
今回はWebサイト上のCSVファイルを、ダウンロードの手間なく、Qlik Cloudに直接取り込む方法をご紹介します。
昔はできていたのに…
QlikViewやQlik Sense DesktopではWeb上のファイルを直接取り込むことができました。
Qlik Cloudのコネクタ設定で探しても、どこにもない😥
えっ?ないの?なんで?
必要なことなるよね…
こうなったらRESTコネクタで取っちゃいましょう!
というのが今回の企画です。
では、早速やってみよう。
ファイルのURLを取得する
まずは、ダウンロードしたいファイルのURLを取得しておく必要があります。
今回ダウンロードするのはGeoloniaさんが公開している住所データベースです。
Geoloniaさんの住所データには全国の町丁目、大字〜緯度・経度までが含まれています。このデータがすごいところは国土交通省の大字・町丁目レベル位置参照情報は年1回の更新であるのに対し、こちらは月1回の更新なのだそうで、それを無料公開してるって太っ腹ですよね。

GeoloniaさんのWebサイトを開き、CSVダウンロードのリンクを右クリックし、「リンクのアドレスをコピー」を選択して、文字列をコピペしておきます。
これで準備完了です。
Qlik CloudのRESTコネクタの設定
Qlikの新しい接続を構成していきます。
コネクタは「REST」を選択します。

RESTの設定ではRequestのURLに先程コピペしたURLを貼り付けます。

設定はデフォルトのままスクロールしていくと、Request/response body encodingの設定が出てきます。
ここでドロップダウンしてみると、UTF-8, ISO-8859-1, Windows-1251しか出てきません。
ん?
Shift-JISはないの?
通常、Shift-JISはcodepage 932ですよねえ…

はい、結論から言うとShift-JISはないんです😢
実は、GeoloniaさんのCSVファイルはUTF-8なので、問題はありません!
「UTF-8のデータを選んだんだろ」って言われそうですが、そのとおり!
今回はUTF-8のデータを選びましたっ😅
というわけで、UTF-8のまま、「接続をテスト」ボタンを押下すると、あっさりつながりました。
データの取得
接続ができたので、「データを選択」ボタンをクリックして、取り込むデータの設定を行います。
Response typeのドロップダウンを見ると、CSV, JSON, XMLに対応しているようです。
ここでは以下のように設定して、スクリプトを挿入します。
| 設定項目 | 設定 |
|---|---|
| CSV has header | ON |
| Tables > CSV source | ON |


ロードスクリプトが下記のように自動生成されます。

データのロード
「データをロード」をクリックし、取り込んでみます。
以下のように、データを正しくロードできましたね。

しかし、これで全面解決ではない
今回は、文字コードUTF-8のデータを取り込みました。
しかし、日本国内のWebサイトで公開でれているCSVファイルはShift-JISが一般的です。
Shift-JISのCSVデータを取り込むと、当然、文字化けを起こしてしまいます。
RESTコネクタのRequest/response body encodingの設定を変更してやってみましたが、やはり文字化けを起こしてしまいました。
じゃあ、どうするの?
エディタを使って変換するとか、nkfを使って変換するとか…
自動更新しようとしているのに、それでは全く意味ないよね。
英語圏なら何ら問題ないんですけどね…
まあ、文字化けするのは日本語だけなので、気象庁から過去の気象データを取り込むとか、為替や金利のデータを取り込むというのなら数値は文字化けとは無関係なので、割り切って使うという手もありますが…
あれこれ試そうとは思いましたが、これにあまり時間を掛けてもと思いますので、UTF-8のファイルに限っては、こうの方法は有効ということでお願いします🙇♂️
まとめ
RESTコネクタを使って、Webサイト上のCSVファイルからQlikへ直接データをロードする方法をご紹介しました。
Shift-JISのデータには使えそうにありませんが、Shift-JISデータを含め、自動化する手段がない訳ではありません。
その方法は次回の記事に譲りたいと思います。
ではまた!


