Não é possível visualizar dados por meio do mapeamento do Hive para Cassandra

Não é possível visualizar dados por meio do mapeamento do Hive para Cassandra

Depois de carregar dados do banco de dados Oracle para Cassandra via Sqoop, consegui visualizar meus dados por meio do Cassandra e do Hive. Disseram-me que, ao fazer isso, seriam gerados 2 arquivos para cada um, criando problemas de espaço. Para resolver isso, eliminei a tabela no Hive e criei uma tabela externa e mapeei-a para minha família de colunas no Cassandra. Mas não consigo visualizar nenhum dado na tabela Hive. Estou usando o Datastax Enterprise 3.0.1. Usando o Sqoop, migrei a tabela 'test' do banco de dados Oracle para uma família de colunas Cassandra de mesmo nome no keyspace 'test_keyspace'. Consigo visualizar os dados através do cassandra-cli usando o comando: list test;

Descrever a família de colunas em cqlsh me dá o seguinte resultado:

CREATE TABLE test (
rowkey text PRIMARY KEY,
bar text,
gump bigint,
home text,
note text,
pay text
) WITH
comment='' AND
comparator=text AND
read_repair_chance=0.100000 AND
gc_grace_seconds=864000 AND
default_validation=text AND
min_compaction_threshold=4 AND
max_compaction_threshold=32 AND
replication_on_write='true' AND
compaction_strategy_class='SizeTieredCompactionStrategy' AND compression_parameters:stable_compression='SnappyCompressor';

O comando que estou usando para criar a tabela Hive é:

CREATE external TABLE test (
rowkey string,
bar string,
gump string,
home string,
note string,
pay string
)
STORED BY 'org.apache.hadoop.hive.cassandra.CassandraStorageHandler'
TBLPROPERTIES ( "cassandra.ks.name" = "test_keyspace" );

A tabela é listada quando digito 'mostrar tabelas' no Hive. Mas 'select * from test' mostra todos os valores da tabela como NULL, exceto a chave da linha.

Alguém saberia uma solução?

Responder1

Tente criar a tabela assim:

CREATE external TABLE test (
    rowkey string,
    bar string,
    gump string,
    home string,
    note string,
    pay string
)
STORED BY 'org.apache.hadoop.hive.cassandra.CassandraStorageHandler'
WITH SERDEPROPERTIES("cql.primarykey"="rowkey"
TBLPROPERTIES ( "cassandra.ks.name" = "test_keyspace", "cassandra.cql.type"="text, text, text, text, text, text" );

informação relacionada