様々なデータソースからデータを SQL で処理できるエンジン Apache Drill の 1.0 がリリースされていました*1。これが面白いのは JSON や CSV などに対して SQL によるデータ加工ができること。以下のように S3 などと連携させた面白い例がたくさんありますが、まずはシンプルに CSV を SELECT してみます。
まず、apache-drill-1.0.0.tar.gz を適当なところに解凍しておきます。今日テストとして使うのは日本郵便の郵便番号 CSV*2 の東京版。文字コードの設定方法がわからなかったので、これをとりあえず UTF-8 に変換してデスクトップに配置しておきます。
あとは以下のような感じでやると簡単に CSV が SELECT できます。
これは工夫次第でいろいろ使えそうですね。
MongoDBを調べていたら、ライセンスがちょっと特殊なことになっていることに気づきました。
「Licensing - MongoDB」によると、本体はGNU AGPL v3.0、ドライバはApache License v2.0、ドキュメントはCC(by-nc-sa)になっています。
AGPLは今まで使ったことがなかったので調べてみると、AGPLv3 の内容は、第13 条以外はGPLv3 と同じように見えます。GPLでは「13. Use with the GNU Affero General Public License」となっている部分が、AGPLは「13. Remote Network Interaction; Use with the GNU General Public License.」になっています。
13. リモートネットワーク上のインタラクション; GNU 一般公衆利用許諾書と共に利用する場合
本許諾書の他の条項のいかんに関わらず,あなたがプログラムを変更したのであれば,あなたの変更したバージョンは,(あなたのバージョンがそのようなやりとりをサポートするのであれば)コンピュータネットワーク上での遠隔的なやりとりを行う全てのユーザに,ネットワークサーバから無料で,なんらかの標準的あるいはソフトウェアのコピーを容易にする通例の手段で,対応ソースへのアクセスが提供されており,あなたのバージョンの対応ソースを受け取る機会が明確に提供されていなければならない。この対応ソースは,以下のパラグラフによりGNU 一般公衆利用許諾書バージョン3が適用されるあらゆる著作物のための対応ソースも含むものとする。
本許諾書の他の条項のいかんに関わらず,あなたは,対象著作物をGNU 一般公衆利用許諾書バージョン3に基づいて許諾された著作物とリンクまたは結合して単一の結合された著作物とすること,及びその結果として作成された著作物をコンベイすることができる。本許諾書の条項は,当該結合された著作物中の対象著作物の部分に対しては引き続き適用されるが,しかしこれが結合された著作物は引き続きGNU 一般公衆利用許諾書バージョン3の基にあるものとする。
コンピュータネットワーク上での遠隔的なやりとりを行う全てのユーザにソースを受け取る機会を提供する必要があるということなので、ASPなんかで使う場合であっても、MongoDB本体を改造したらソースを提供しないといけないということなんでしょうか。ドライバがApacheライセンスなので、自分の作ったプログラム自身はAGPLにはならないという解釈でいいのでしょうか。そういえば、MySQLのクライアントライブラリがGPLになったので、PHPにバンドルできなくなって、「FOSS License Exception」の適用で揉めてたということもあったので、そのようなことが起きないようにということなんでしょうかね。