私は活発に使用しました。 cassandra列ファミリは自動的にHiveテーブルにマップされます。
ただし、データ型が列ファミリでtimeuuidの場合、Hiveテーブルではデータ型が読み取れません。盛んなカサンドラTimeUUIDType
たとえば、次のコマンドを使用して、列ファミリをマップする外部表を作成します。
Hive > create external table A (rowkey string, column_name string, value string)
> STORED BY 'org.apache.hadoop.hive.cassandra.CassandraStorageHandler'
> WITH SERDEPROPERTIES (
> "cassandra.columns.mapping" = ":key,:column,:value");
カラム名がcassandraのTimeUUIDTypeの場合、Hiveテーブルでは読み取り不可能になります。例えば
、カサンドラの列ファミリ内の行は次のようになります。
列名がTimeUUIDTypeあるRowKey: 2d36a254bb04272b120aaf79d70a3578
=> (column=29139210-b6dc-11df-8c64-f315e3a329d6, value={"event_id":101},timestamp=1283464254261)
。ハイブテーブルで
、それは次の行のようになります。
2d36a254bb04272b120aaf79d70a3578 t��ߒ4��!�� {"event_id":101}
ので、列名がハイブテーブルに読み取ることができません。
ここからレンダリングを取得していますか?たとえHiveツールがtimeuuidを人間が読める文字列に変換する方法を知らないとしても、それをうまく照会できるはずです。 – jbellis
cassandraのレコードについては、cassandraのコンソールから取得します。ハイブレコードの場合は、ハイブコンソールからレンダリングを取得します。 – chnet
読み取り不可能な列名を照会できませんでした。たとえば、In Hiveでは、 'select * from table a where column_name = '29139210-b6dc-11df-8c64-f315e3a329d6'を使用します。マッパー/リダクションジョブが始まりますが、私は自分が望む行を得られません。それは何も返さない。 – chnet