Cascadingは、人気のあるアプリケーションフレームワークで、企業データワークフロー向けのパターン言語である。 Cascadingにより、複雑なデータ処理フローを定義し、洗練されたデータ指向フレームワークを作成できる。これらのフレームワークは、スクリプト用のDomain Specific Languages (DSLs)として使うことができる。
Cascading拡張機能に最近追加されたのが、Lingual、新しいSQLで、DSLをベースにし、Optiq (動的データ管理フレームワーク)のパワーと CascadingのHadoopベースの実行を組み合わせている。 Lingualの目的は、SQL,JDBC,従来のBIツールに精通している開発者とデータ分析家に対して、Hadoop活用のハードルを下げることである。同社は、自分たちが言っている「Cascading と Hadoop向けの真のSQL」を提供する。
CascadingのCTOで設立者である Chris Wensel氏によれば、 Lingualの目標は、サイトやクラウド環境で走っている有名なHadoopディストリビューション全てと上手く連携するように設計されたANSI標準のSQLインターフェースを提供することである。これにより、従来のデータウェアハウスから既存のANSI SQLコードを「カット&ペースト」できるので、Hadoopクラスタ上に仕舞われているデータにユーザーがアクセスできるようになる。またHadoopにあるデータをクエリし、即座に様々なBIツールにエクスポートすることが可能である。
Lingualにより、企業は、標準ベースの技術を介してHadoopで、既存のスキルセットと製品投資を活用できるようになった。SQL,JDBC,あるいは従来のBIツールに精通している分析家や開発者は、著しい生産性とタイムツーマーケットの便益を得ながら、即座に、そして容易にHadoop上でビッグデータアプリケーションを作成し、走らせることができるようになる。
Lingualは、Hadoopクラスタ上のテラバイトのデータに対して一秒未満の応答時間を提供しようとするものではない。そうではなく、同社のゴールは、アプリケーションをHadoop上に簡単に移す機能を提供することである。課題は、リレーショナルあるいはMPPデータベースからHadoopへの移動に関する周りに本当に存在する。
Lingualディストリビューションには以下のものが含まれる。:
· Cascading フレームワークの上に作られたANSI標準のSQLパーサーとオプティマイザー
· 大規模な非構造化データに対するリレーショナルカタログビュー
· Hadoopのテストとクエリを発行するためのSQLシェル
· 既存のBIツールとアプリケーション・サーバーを統合するためのJDBCドライバー
InfoQは、Concurrent, Inc.のCTOであり、設立者であるChris K Wensel氏とLingualを議論する機会があった。
InfoQ: Lingualは、 Apache Hiveに大変似てますね。LingualのHiveに対する優位性は何ですか?
Wensel: Lingualの第一の目標は、ANSIとの互換性にフォーカスすることです。Hadoopは決して単独では使われません、 HDFSの bit-bucketからデータを取得して R やMondrianのような代替ツールに移す必要があるか、既存のワークロードをHadoop上に移して、そのコストパフォーマンスの恩恵を利用できるする必要があります。両方の場合で、あなたはおそらく、既にSQL,「アプリ」、あなたが移行しているクエリがSQLにあることを知っています。あるいは、もしそうでなければ、もっと重要なのは、あなたが使っているツールは、SQLだけ知っていることです。なので、標準ベースのSQLインターフェースを提供することは非常に重要です。
このことを達成するために、我々はたくさんのテストを持っています。我々は現在、 Mondrianテストスイートから6000の複雑なSQLクエリを抽出し、既に90%のカバレッジを達成し、人気のあるツールからもっと追加する計画です。
Lingualは、人間規模の応答時間を提供する、アドホックなクエリツールを目指してはいません。そのために、我々は、適切に分散されたMPPスタイルのデータベースを使うことを進めています。私は、Hadoopに向かないところには、Hadoopを使うことを進めません。
すなわち、我々が提供するのは、標準準拠のJDBCドライバーとテストを速くするためにHadoopに依存しない、Cascadingの「ローカルモード」使って、ローカルなデータに対してクエリをテストする方法です。
ANSI準拠の目標の他に、 Lingualは Cascading上で走るので、Cascadingへのあらゆる改善、Hadoopとメモリ処理でのローカルに提供されている以外のあらゆる新規の「プラナー」は、 Lingualに引き継がれます。一緒に、Cascadingの既存の堅牢さ、柔軟性、拡張性、 Cascading上に計算用の標準化を既に行なっている会社への親和性も引き継がれます。
InfoQ: 既存の説明からは、Lingualがどのようにリレーショナルカタログを定義し、維持しているのかはっきりしません。ある程度実証の詳細をお話しくださいますか?既存のデータとテーブル定義間のマッピングを提供するのに、て区別用意したファイルを使うのですか、それとも Hive SerDeに似たメカニズムを使うのですか?
Wensel: 最初のリリースには、「シングルユーザー」カタログが組み込まれています。近い内に HCatalog統合と/か代替が提供されるでしょう。現在、メタデータカタログは、簡単な(オプションで人が編集可能)JSONドキュメントでローカルなファイルシステムか基本的な共有ができるHDFS(S3でも)上に保存できる。
データの読み書きに関しては、 Lingualは、Cascadingサポートする全ての組み込みモジュール(と Cascalog, Scaldingなど)をサポートする。これらは全てLingual “catalog “コマンドラインインターフェースによって管理される。
データのクエリにいかなる「 Cascadingプロプライエタリ」なフォーマットを使う必要がない。
ユーザーは、単にコマンドラインからファイルをテーブルとして登録すれば、あらゆるメタデータ(列と型)は、可能であればファイルから発見できる。更に進んで、我々はカタログツールから新しくサポートするデータフォーマットを追加するのも簡単にするつもりです。
InfoQ: Lingualのセキュリティモデルは、何ですか?それはファイルのアクセスパーミッションに基づいていますか?それは、JDBCドライバーによってサポートされていますか?
Wensel: 現在、Hadoopの現行のセキュリティモデルを拡張する計画はありません。