整数-17678の値を持つHBASEテーブルを作成しています。しかし、私がpheonixからそれを取得するとき、それは私に異なる正の価値を与えます。 RowKeyは合成の行キーであり、行キーに問題はありません。Phoenixが負の整数値を正しく表示しない
HBaseの挿入:
public class test
{
public static void main(String args[])
{
Configuration config = HBaseConfiguration.create();
Connection connection = ConnectionFactory.createConnection(config);
Table table = connection.getTable(TableName.valueOf("TEST"));
Integer i=-17678;
try
{
Put p = new Put(Bytes.toBytes("rowkey"));
p.addColumn(Bytes.toBytes("test"),Bytes.toBytes("test"),Bytes.toBytes(i));
table.put(p);
}
finally
{
table.close();
connection.close();
}
}
}
フェニックス検索:
TESTから選択CAST(整数として "値")。
+------------------------------------------+
| TO_INTEGER(test."Value") |
+------------------------------------------+
| 2147465970 |
+------------------------------------------+
ここに間違いがありますか?またはフェニックスの問題?
ありがとうございました。だから私はJDBCドライバを使用してクエリ私は正しい値を得ているだろうか?私はフェニックスを使用してデータを挿入したくない、hbaseのクライアントAPIは賭けです。 –
データがPhoenixが予期する形式でシリアル化されていないため、そのまま動作しません。 HBaseを使用してフェニックスが適切にデシリアライズできるデータを挿入する方法の例を使用して回答を更新しました。 – kliew
唯一の回避策は、pheonix自体を使用してデータを挿入することですか? –