2012-04-26 4 views
0

次のような一般的なプログラムを開発するにはどうすればよいですか?HUBでのHBASE変換の作成

a。 HBASEからのデータの読み込み b。 HBASEへのデータのロード c。私は十分に汎用的な変換を作成する必要があるのMapReduce

内のルックアップとしてHBaseのテーブルを使用すると、彼らはデータパイプラインで簡単に組込み可能でなければなりません。

+0

より具体的に言えば、HUBとは何ですか?どのようにして彼らはジェネリックである必要がありますか?どのテーブル/列ファミリ/列を読み込むかを知るようにジョブをパラメータ化しますか?ほとんどのデータワークフローは非常にユニークで、同じタスクであっても(例えば、テキスト文書の名前付きエンティティ認識を行う場合など)、汎用的にすることでどのようなメリットが得られますか?具体的にHBaseの本を見ても答えられないのは何ですか? – David

+0

私はhbaseテーブルに任意のフォーマット( - json、xmlなど)でデータをロードします。 – user1326784

答えて

0

HBaseはデータをバイト配列として格納するため、任意のデータを自由に配置できます。すべてをXMLまたはJSONにシリアル化し、HBaseを純粋なBLOBストレージとして扱うことができます。これは、実際にはキーで照会したい場合や、キーに基づいてテーブルをスキャンする場合に限り、かなり効率的です。

これを行うことで失うものの1つは、行の値に基づいてサーバー側でフィルタリングする機能です。たとえば、過去1か月のHTTPトランザクションのテーブル(キーがタイムスタンプに基づく)のすべての行を必要とし、エラー条件(500応答)を持つ行だけを見たい場合は、応答コードを列として格納した場合は、500応答コードの項目のみを返すフィルタを作成できます。それでもテーブルの関連部分をスキャンする必要がある場合は、エラーコードと一致するデータだけがネットワーク経由でhbaseクライアントに送信されます。この周り

一つの方法は、あなたがシリアライズされたオブジェクト(JSON/XML /何でも)としてデータを保存するハイブリッドアプローチを行い、また、あなたがフィルタリングしたい場合がありますもののために追加の列を格納することです。

関連する問題