0

Hbaseでインデックステーブルを設計する必要があります。たとえば、私のメインテーブルは次のようになります。

Person
row key: uuid --> name and address columns

名前をPersonキーでマップするインデックスPerson_Name_Indexテーブルを作成する必要があります。私のインデックステーブルは次のようになります。

Person_Name_Index
row key: name --> person row key

Person_Name_Indexの行キー名に複数の人の行キーを挿入する効率的な方法は何ですか?すべての人物行キーを単一の値にすることができますが、名前に別の人物行キーを追加する必要がある場合。それらをすべて読んでから、新しいアイテムを追加する必要があります。各人の行キーを別々の列に配置する場合は、名前が一意であることを確認する必要があります。テーブルを大きくするuuidタイプの文字列を使用せずにそれを行う方法がわかりません。何かアイデアや提案はありますか?

ありがとう、

4

1 に答える 1

0

Sean が HBase で述べたように、必要なアクセス パスに従ってデータをモデル化することをお勧めします。RDBMS として扱うことはお勧めしません (そうではないため)。あなたの場合、人テーブルのキーを名前として取得し、その後に区切られた(パイプなど)とUIDを続けます-その後、名前で検索し、人ごとに一意のIDを持つことができます

String personName="Name to Search";
String delimiter="|";
PrefixFilter prefixFilter = new PrefixFilter(Bytes.toBytes(personName+delimiter));
Scan scan = new Scan();
scan.setFilter(prefixFilter);
ResultScanner resultScanner = hBaseTable.getScanner(scan);

次に、スキャナーを繰り返して、名前を持つすべての人を確認します

于 2012-09-15T12:16:35.757 に答える