CData CSV Drivers に地味に便利な機能が追加!クラウドストレージにあるCSV を日付条件で絞り込んで一つのテーブルに結合!

by 佐藤孝司 | 2022年08月29日

こんにちは、Operations Manager の佐藤です。

CSV ファイルをダウンロードしてコピペ、ダウンロードしてコピペといった作業を日々繰り返してデータを作っている皆様に朗報です。このたびCData Drivers がV22へとバージョンアップとなり、CData CSV Drivers にも地味に便利なアップデートが施されました。今回のバージョンアップでは「対象となるCSV ファイルを日付条件でフィルタリング」という機能が追加されています。

本記事ではアップデート内容の紹介と、実際に新機能を使用して

  1. 複数のCSV ファイルから成る給与計算データを
  2. 一定時点までのデータに絞り込んだうえで
  3. 一つのテーブルっぽくしてODBC 接続

してみたいと思います。

CData CSV Drivers について

CSV とは、Comma Separated Values の略で、各項目がカンマ(,)で区切られたデータを指します。「CSV ファイル = Microsoft Excel で開くためのファイル」と誤認されることもありますが、実際は項目がカンマで区切られたシンプルな構造のデータですので、テキストエディタなどで開くこともできます。また、シンプルで汎用性が高いことからさまざまなソフトウェア間でデータの入出力に使用されることもあります。


メモ帳で開くとこんな感じ。カンマで区切られまくっている。

CData はCSV やTSV(タブ区切りデータ)ファイルにBI ツールやDB、各種ETL ツールから接続するためのCData CSV Drivers を開発・提供しています。CData CSV Drivers を使用すると、ローカルに保存されたCSV を読み込むだけでなく、SharePoint やGoogle Drive などのクラウド上のストレージに保存されたCSV にアクセスしたり、同じ構造を持つ複数のCSV ファイルを一つのテーブルのように扱うこともできます。取得したデータをExcel 上にダイレクトに表示し編集するためのExcel Add-In もあります。

CData CSV Drivers は下記のリンクからダウンロードできます。30日の無償トライアルもありますので、興味のある方はぜひ使ってみてください!

CSV Drivers | CSV Connectors - CData Software Japan

V22アップデート内容

今回の取り上げるアップデートの内容について確認しておきましょう。今回記事で使用するCData ODBC Driver for CSV の日付フィルターはVersion 番号7950以降で利用可能です。

IncludeFiles と ExcludeFiles 接続プロパティで datetime フィルタのサポートが追加され、CreatedDate と ModifiedDate を任意の条件でフィルタできるようになりました。これまで、フィルタ条件として指定できたのはファイルの拡張子のみでしたが、今回のアップデートからファイルの作成日または変更日に条件を指定できます。

日付条件でファイルをフィルタすることで、一定期間や一定時点でのデータを集計したりBI 上に表示したりすることができます。例えば、日々の売上情報のCSV ファイルを毎日特定のフォルダに格納するような業務システムが動いている場合には、決算日より前の日付と決算日より後の日付を除外してそのフォルダのCSV を取り込むことで、一会計期間の売上データに絞って、BI ツールに取り込むことができます。

なお、本記事執筆時点では

  • Box (box://)
  • GCloudStorage (gs://)
  • GoogleDriveStorageSource (gdrive://)
  • OneDrive (onedrive://)
  • SharePoint (sp://)
  • SharePointREST (sprest://)

のみCreatedDate(ファイルの作成日)でのフィルタに対応しています。

実際に使ってみる

今回は、SharePoint 上のフォルダに毎月の給与計算結果のCSV データが格納されていると仮定し、一定時点までの給与計算データを一つのテーブルとしてODBC 接続してみたいと思います。

今回使用したCData ODBC Driver for CSV は下記のリンクからダウンロードすることができます。

CSV ODBC Driver: ODBC Driver for CSV - CData Software Japan

接続の確立

本記事では、SharePoint 上のフォルダにファイルが格納されているというケースを想定していますが、CData ODBC Driver for CSV はGoogle Drive やDropbox など、他のクラウドストレージやローカルファイルにも対応しています。

詳しくはこちらのヘルプドキュメントをご覧ください。
https://cdn.cdata.com/help/RVG/jp/odbc/pg_connecting.htm

今回はDocument 下のCSV というフォルダにCSV ファイルが格納されていると仮定し、それぞれのパラメータを以下のように設定します。

Auth Scheme:OAuth を選択
URI:sprest://Documents/CSV
Storage Base URL:対象のフォルダがあるSharePoint サイトトップページのURL。

各項目の入力が終わったら接続テストのボタンを押下します。必要な項目が正しく入力されていれば「接続テストに成功しました。」と表示されます。


↑ CData 社員が安堵する画面

文字コードの設定

補足となりますが、CSV ファイルをExcel で使用することが多い環境では、CSV ファイルの文字コードがShift-JIS になっているケースもあります。



CData ODBC Driver for CSV の初期設定ではCharset がUTF-8 に設定されているので、上述の場合にはCharset をShift-JIS に変更しないとエラーが表示されるので注意が必要です。

CSV ファイルの読み込み条件の設定

V22アップデートで追加された機能を使用して決算日(2021/12/31とします)より後に作成されたファイルを除外してみます。ついでに読み込み不要なファイルテキストファイルも読み込み対象から除外しておきます。

Exclude Files に除外条件として

除外する拡張子:TXT
除外する日付:CreatedDate>'2021-12-31'(ファイルの作成日が2021/12/31より後のもの)

をカンマ(,)で区切って入力します。

テーブル一覧には2021年12月までのデータだけが表示されるようになりました。

複数のCSV ファイルを一つのテーブルとして扱う

上記のケースではCSV ファイルごとにテーブルが作成されていますが、対象となったCSV ファイルを同一テーブルにまとめた方が分析しやすいケースも考えられます。CData ODBC Driver for CSV では、同じ構造を持つCSV ファイルを一つテーブルとして扱うことができます。

Aggregate Files のパラメータをTrue にすることで、読み込みの対象となったCSV ファイルに含まれるデータが一つのテーブルとして扱われます。V22 アップデートで追加された「日付条件フィルタ」とこの機能の組み合わせで、一定期間中に作成されたCSV ファイルに含まれるデータを一つテーブルにまとめてODBC 接続するといったことが可能になっています。

まとめ

V22 アップデートにより日付条件でのファイル指定もできるようになったので、たくさんのCSV をクラウドストレージからダウンロードしてはExcel 上でマージする手順を経ずとも、データの集計や分析をすることができるようになりました。

CData CSV Drivers を使うと、SharePoint などさまざまな場所に保管されたCSV ファイルに接続できます。今回はODBC を使用しましたが、この他にもJDBC、ADO.NET などの技術にも対応しており、Excel Add-In やPower BI の専用コネクタもあります。

CData Drivers は250を超えるSaaS やデータソースにODBCを初めとした各種技術を使用して接続することができるので、普段業務に使用しているものがないか、以下のリンクからぜひ確認してみてください!

CData Drivers

トライアル・お問い合わせ

関連コンテンツ