1

列ファミリー f1 と ID を行キーとして、NAME を別の列フィールドとして持つ Hbase テーブル EMP を作成しました。

このHbaseテーブルの上にPhoenix Viewを作成すると

CREATE view EMP(ID INTEGER NOT NULL PRIMARY KEY, NAME VARCHAR(40)); 選択状態を実行すると、Phoenix ビューに ID 列の負の値が表示されます。Hbase の実際の値は 101,102,103 のようなものですが、Phoenix で「select id from EMP」を実行すると、-101 -102 -103 の値が得られます。

ID のデータ型を Integer から Unassigned_Int に変更して、ID の実際の値を完全に変更しようとしました。32423 23429 12432 となります。

Phoenix で主キーを varchar ではなく数値として定義する方法についてアドバイスをお願いします。

Phoenix でキャスト関数も使用しようとしましたが、その関数は Varchar を Integer にキャストできません。

ありがとう、アビシェーク

4

1 に答える 1

0

既存の HBase テーブルにどのようにデータをロードしましたか? 非テキスト (int、float など) の値が、\x エスケープを使用した 16 進数の byte[] 形式を使用してシリアル化されている場合、これらの値の UNSIGNED_INT または UNSIGNED_FLOAT フィールドを使用して Phoenix テーブル/ビューを作成してみてください。

于 2015-03-08T13:14:26.263 に答える