問題タブ [hbase]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1036 参照

schema - hbase を使用したフィード アグリゲーター。スキーマをどのように設計するか?

多数の rss/atom フィードを監視するプロジェクトに取り組んでいます。データ ストレージに hbase を使用したいのですが、スキーマの設計に問題があります。最初の反復では、集計フィード (すべてのフィードからの最新の 100 件の投稿を時系列順に並べたもの) を生成できるようにしたいと考えています。

現在、私は2つのテーブルを使用しています:

集約されたフィード用のある種のインデックス テーブルが必要です。それをどのように構築すればよいですか?この種のアプリケーションに hbase は適していますか?

質問の更新: 以下にリストされているようなクエリに効率的に応答できるスキーマを (hbase で) 設計することは可能ですか?

0 投票する
5 に答える
8149 参照

hadoop - BigTable で OLAP を実行できますか?

以前は、MySQL で実行される OLAP キューブを使用して WebAnalytics を構築していました。さて、私が使用した OLAP キューブは、各行が基本的に測定値または測定値の集計セットである単純な大きなテーブルです (OK、それよりも少し賢く格納されています)。各測定値には、一連のディメンション (つまり、どのページ名、ユーザーエージェント、IP など) と一連の値 (つまり、ページビュー数、訪問者数など) があります。

このようなテーブルで実行するクエリは、通常、次の形式 (メタ SQL) です。

したがって、前述のフィルターを使用して、選択した日の各時間の合計を取得します。障害の 1 つは、これらのキューブは通常、完全なテーブル スキャンを意味し (さまざまな理由)、これは、これらのものを作成できるサイズ (MiB 単位) の実際的な制限を意味することでした。

私は現在、Hadoop などの詳細を学んでいます。

上記のクエリを BigTable で mapreduce として実行するのは簡単に見えます。「hour」をキーにして、マップをフィルター処理し、値を合計して reduce するだけです。

バッチ モードではなく、BigTable の種類のシステムで、上に示したような (または少なくとも同じ出力で) クエリを実行できますか?

そうでない場合; BigTable/Hadoop/HBase/Hive などの領域でこのようなことを行うための適切なテクノロジは何ですか?

0 投票する
4 に答える
6583 参照

sql - HBaseの高度なクエリ

次のHBaseスキーマシナリオ(公式FAQから)を考えると...

StudentとCourseなどの2つのエンティティ間の多対多の関連付けのためにHbaseテーブルをどのように設計しますか?

2つのテーブルを定義します。

学生:学生ID学生データ(名前、住所、...)コース(ここでは列修飾子としてコースIDを使用します)

コース:コースIDコースデータ(名前、シラバス、...)学生(ここでは学生IDを列修飾子として使用します)

このスキーマを使用すると、クエリにすばやくアクセスして、学生のすべてのクラス(学生テーブル、コースファミリー)、またはクラスのすべての学生(コーステーブル、学生ファミリー)を表示できます。

「少なくとも2つの共通のコースを共有するすべての学生を教えてください」という要求をどのように満たしますか?そのセットを返す「クエリ」をHBaseで構築できますか、それともすべての関連データを取得してコードで自分で処理する必要がありますか?

0 投票する
1 に答える
1485 参照

couchdb - RDBMS のバックグラウンド担当者に最も適した Key-Value ストアはどれですか?

すべての Key-Value ストアの中で明確な勝者はありますか? Cassandra、MongoDB、CouchDB? それらはすべて、いくつかの中心的なガイドラインに従っていますか? または、API を定義する際に独自の発言権を持っています。

特に、キー値ストアを初めて使用する RDBMS の熟練者の観点から、この質問をしています。このフィールドの理解/使用法を最もよく理解するには、どれに従う必要がありますか?

RDMS については、利用可能なすべての DB (Oracle、SQL Server など) がテーブル、インデックス、外部キーなどのすべての成果物を持っているという彼らの理論から知っています。これらの唯一の違いは、効率、セキュリティ、機能です。

これらのドキュメント中心のデータベースの普遍的な理論について知り、これらすべての DB (Mongo、Couch など) が持つ最小限の成果物を知るにはどうすればよいですか?

0 投票する
6 に答える
15868 参照

cassandra - 大量の順序付けられた時系列データをbigtable派生物に保存する

私は、bigtable、hbase、cassandraなどのこれらの新しいデータストアが実際に何であるかを正確に把握しようとしています。

私は大量の株式市場データ、毎日数百ギガバイトを追加できる数十億行の価格/見積もりデータを処理します(ただし、これらのテキストファイルは少なくとも1桁圧縮されることがよくあります)。このデータは基本的に、少数の数値、2つまたは3つの短い文字列、およびタイムスタンプ(通常はミリ秒レベル)です。行ごとに一意の識別子を選択する必要がある場合は、行全体を選択する必要があります(交換により、同じミリ秒で同じシンボルに対して複数の値が生成される可能性があるため)。

このデータをbigtable(その派生物を含む)にマッピングする最も簡単な方法は、シンボル名と日付(非常に大きな時系列を返す可能性があり、100万を超えるデータポイントは前代未聞ではありません)によるものだと思います。説明を読むと、これらのシステムでは複数のキーを使用できるようです。また、10進数はキーの候補としては適切ではないと思います。

これらのシステムの一部(たとえば、Cassandra)は、範囲クエリを実行できると主張しています。たとえば、特定の日の午前11時から午後1時30分までのMSFTのすべての値を効率的にクエリできますか?

特定の日のすべてのシンボルを検索し、価格が$ 10〜 $ 10.25のすべてのシンボルを要求したい場合はどうなりますか(値を検索し、結果としてキーを返したい場合)?

2つの時系列を取得し、一方を他方から減算し、2つの時系列とその結果を返したい場合、自分のプログラムで彼のロジックを実行する必要がありますか?

関連する論文を読むと、これらのシステムは大規模な時系列システムにはあまり適していないことがわかります。しかし、グーグルマップのようなシステムがそれらに基づいているなら、時系列もうまくいくはずだと思います。たとえば、時間をx軸、価格をy軸、シンボルを名前付きの場所と考えてください。突然、bigtableが時系列の理想的なストアになるはずです(地球全体を保存、取得できる場合) 、ズームおよび注釈付きの株式市場データは些細なものである必要があります)。

専門家が私を正しい方向に向けたり、誤解を解いたりできますか。

ありがとう

0 投票する
2 に答える
834 参照

mysql - 分散環境で実行されていない場合、HBase は意味がありますか?

データのインデックスを作成しています。これには、多くのトリプレットをフォームに格納する必要があります(document, term, weight)。このような行を最大数百万行保存します。現在、MySQL で単純なテーブルとしてこれを行っています。ドキュメントと用語の識別子を、他のテーブルへの外部キーよりも文字列値として保存しています。ソフトウェアを書き直し、データを保存するより良い方法を探しています。

HBase の仕組みを見ると、これはかなりスキーマに適合しているように見えます。多くのトリプレットを保存する代わりにdocument{term => weight}.

私は単一ノードでこれを行っているので、分散ノードなどは気にしません。MySQL が機能するのでそのまま使用する必要がありますか、それとも HBase を試すのが賢明でしょうか? Lucene がこれをフルテキスト インデックス作成に使用していることがわかります (これは、私が行っていることと似ています)。私の質問は、単一の HBase ノードが単一の MySQL ノードとどのように比較されるかということです。私は Scala から来ているので、直接の Java API は、JDBC や MySQL の各クエリの解析などよりも優れているのでしょうか?

私の主な関心事は、以前はボトルネックだった挿入速度です。処理後、ライブ クエリのためにデータを MySQL に戻すことになるでしょう。

両方のプロトタイプを作成してみますが、コミュニティがこれに関する貴重な洞察を提供してくれると確信しています。

0 投票する
1 に答える
400 参照

hadoop - これはHBaseの適切な(または可能な)使用法ですか?

HBaseを、{document => {term => weight}}「用語Xを重みZでドキュメントYに挿入する」などの形式の数百万のエントリをプッシュできるストアとして使用し、「このドキュメントの上位1000の用語を選択する」または「各ドキュメントの上位1000の用語を選択してください。」これは私の現在のMySQL実装で機能しますが、おそらくドメインはHBaseに適しています。HBaseとBigTableは、同様の問題ドメインであるフルテキストインデックス作成に使用されていることに注意してください。

私はHBaseで数ページしか読んでいないことがわかりますが、私の質問の要点を理解していただければ幸いです。この質問に関連しています。

考えられる障壁には、HBaseがLIMIT句と同等のクエリを許可しないことが含まれる場合があります。重みでクエリを実行したい場合は、を関連付けたいと思います{weight => term}。これは、同じ重みを持つ2つの用語で問題が発生します(HBaseでは一意のキーのみが許可されると想定しています)。または、特定の重みの用語のコレクションを保存する必要がありますが、これにより、返される用語の数を正確に制限する能力が制限されます。

0 投票する
1 に答える
3347 参照

hadoop - HBase からの Hadoop mapreduce ストリーミング

HBase (0.20.1) をデータ ソースとデータ シンクの両方として使用する Hadoop (0.20.1) mapreduce ジョブを作成しています。Python スクリプトとの間でデータをストリーミングするために hadoop-0.20.1-streaming.jar を使用する必要がある Python でジョブを作成したいと考えています。データ ソース/シンクが HDFS ファイルの場合、これは正常に機能します。

Hadoop は mapreduce の HBase との間のストリーミングをサポートしていますか?

0 投票する
11 に答える
36463 参照

storage - スケーラブルな画像ストレージ

私は現在、ある種の画像ストレージも提供する必要がある Web ベースのアプリケーションのアーキテクチャを設計しています。ユーザーは、サービスの重要な機能の 1 つとして写真をアップロードできます。また、これらの画像を表示することも (Web 経由で) 主な用途の 1 つになります。

ただし、このようなスケーラブルなイメージ ストレージ コンポーネントをアプリケーションで実現する方法がわかりません。私はすでに別の解決策を考えましたが、経験が不足しているため、あなたの提案を聞くのを楽しみにしています. 画像とは別に、メタデータも保存する必要があります。ここに私の最初の考えがあります:

  1. HDFS のような (分散) ファイルシステムを使用し、アップロードされた画像とサービス要求を保存するために、専用の Web サーバーを「ファイルシステム クライアント」として準備します。画像のメタデータは、各画像のファイルパス情報を含む追加のデータベースに保存されます。

  2. HDFS の上に HBase のような BigTable 指向のシステムを使用し、画像とメタ データを一緒に保存します。繰り返しますが、ウェブサーバーは画像のアップロードとリクエストを橋渡しします。

  3. 画像とメタデータの両方を格納するために、CouchDB のような完全にスキーマレスなデータベースを使用します。さらに、HTTP ベースの RESTful API を使用して、データベース自体をアップロードおよび配信に使用します。(追加の質問: CouchDB は Base64 経由で blob を保存しますが、画像/jpeg などの形式でデータを返すことはできますか?)