RareJob Tech Blog

レアジョブのエンジニア・デザイナーによる技術ブログです

redash v10 で追加された Excel データソースを試す

久しぶりの技術ブログになりました。塚田です。趣味は公園巡りです。

お昼休みに会社近くの代々木公園で鳩を眺めていたところで redash v10 のニュースが入ってきました。

github.com

change log を確認すると New Data Source: CSV/Excel Files との記載があり、新しく CSVExcel がデータソースとして加わったようです。

https://github.com/getredash/redash/blob/release/10.0.x/CHANGELOG.md

しかし オフィシャルサイトを見ると、これについてのドキュメントは 2021/10/4 現在見つかりません。(どこかにあったら教えてください)

そのため 今回 Excel に絞りソースコードを元に確認しました。

https://github.com/getredash/redash/blob/master/redash/query_runner/excel.py#L12

今回新しく追加されたデータソースで ガチガチに実装しているということではなく、Pandas のライブラリを使っているようです。

このため、集計に不要のレコード・カラムがあった場合スキップさせることができそうです。

https://pandas.pydata.org/docs/reference/api/pandas.read_excel.html

試してみた

ソースのデータ

サンプルとして、無料で公開されている Excel を使わせて貰いました。 https://file-examples.com/index.php/sample-documents-download/sample-xls-download/#google_vignette

f:id:sumito1984:20211004155537p:plain

redash から接続

以下のようなクエリを書いて接続しました。

url: 'https://file-examples-com.github.io/uploads/2017/02/file_example_XLS_10.xls'
user-agent: 'sample'
usecols: [1, 2, 4]
names:
  - First Name
  - Last Name
  - Country
skiprows: 0
skipfooter: 0
  • url ... 接続先の URL
  • user-agent ... 接続する際のユーザーエージェント
  • usecols: 利用するカラム
  • names: カラムに対するラベリング
  • skiprows & skipfooter: 読み込む際にスキップするカラム

結果

無事 Excel のデータを redash で描写することができました。

f:id:sumito1984:20211004160645p:plain

補足事項

Google driveExcel を置いて試しましたが Excel file format cannot be determined, you must specify an engine manually. というエラーが出ました。 Excel の拡張子で保存する必要があるようです。

それでは。