
UniQUEとは
UniQUE(ユニーク Uni QUery Engine)はオープンソースの Apache Arrow(インメモリカラムナー技術)をベースにした高速Queryエンジンです。
図1の様に CSVファイルまたはParquetファイルをデータソースとして SQLで操作(インメモリ処理)できます。ビッグデータでもストレスなく扱えます。
SQLはPostgrSQL互換のサブセットです。
下記は株売買高のトップ10銘柄を集計するSQLの例です。株銘柄マスター(stock_master)と株取引情報(stock_trading_info)をジョインキー(stock_code)で内部ジョイン、企業毎に株売買高を集計、株売買高でソート、株売買高を1,000万円単位にして、株売買高のトップ10企業を抽出します。
この様なSQLをQueryで実行し、実行結果をPandasに変換してグラフ表示や外部ファイル(CSVやParquet)に書き出しできます。また、実行結果から新しいテーブルを作成することもできます。

SELECT company, sum_trading_volume FROM (
SELECT company, SUM(CAST(trading_volume AS INTEGER)/10000000) AS sum_trading_volume FROM (
SELECT stock_code, company FROM stock_master)
INNER JOIN stock_trading_info USING (stock_code)
GROUP BY company)
ORDER BY sum_trading_volume DESC
LIMIT 10 ;
UniQUE vs. ESPERiC
UniQUEと当社製品のESPERiC(エスペリック)との相違を表1に示します。Apache Arrowはメモリ上でPandasとデータ交換する関数をサポートしているので、UniQUEではPandasとの連携も容易です。

UniQUE for Colab
Google Colaboratory(略称 Colab)で使用できる「UniQUE for Colab」無料バージョンを提供します。Colabは、GoogleのJupyter Lab Webサービスで、多くの学生、研究者、データ分析の現場などで利用されており、下記の様な特長を備えています。
・環境構築が不要 (Google アカウントとWebブラウザーだけあれば使用できる)
・無料で使用できる(有料 Colab Pro もあり)
・GPU への無料アクセス
・NoteBookが簡単に共有できる
当社はUniQUEプロトタイプを作成しApache Arrowを評価した結果「使える」と判断し、多くの学生や研究者などに使って貰いたいとの思いで提供するものです。
ダウンロード ボタンを押すと、ダウンロードフォームが表示されます。
インストール方法、API仕様、SQLサポートはダウンロードしたzipファイルを解凍するとREADMEが付いていますので それをお読みください。
図2はColabでUniQUEを動作させた時のもので、株売買高のトップ10銘柄を集計したデモ画面です。
使用したデータはCSVファイルで
・株式銘柄リスト 3,973行(約700KB)
・株売買データ 32,204,464行(約1.7GB) です。
この株売買高のトップ10銘柄の集計SQLは約5秒で完了します。CSVファイルはGoogle Drive上にあり、動作時の状況により、取り込み時間は10数秒〜数十秒とブレが生じます。
