Não é possível visualizar dados através do mapeamento do Hive para o Cassandra

1

Após carregar dados do banco de dados Oracle para o Cassandra via Sqoop, consegui visualizar meus dados por meio do Cassandra e do Hive. Disseram-me que, ao fazer isso, dois arquivos seriam gerados para cada um, criando problemas de espaço. Para resolver isso, abandonei a tabela no Hive, criei uma tabela externa e a mapeei para minha família de colunas em Cassandra. Mas não consigo visualizar nenhum dado na tabela Hive. Eu estou usando o Datastax Enterprise 3.0.1. Usando o Sqoop, migrei a tabela 'test' do Oracle DB para uma família de colunas do Cassandra com o mesmo nome no espaço de chaves 'test_keyspace'. Eu sou capaz de visualizar os dados através do cassandra-cli usando o comando: teste de lista;

Descrever a família de colunas em cqlsh me fornece 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 eu digito 'show tables' no Hive. Mas 'select * from test' mostra todos os valores da tabela como NULL, exceto a tecla de linha.

Alguém saberia uma solução?

    
por nsa 18.12.2013 / 08:05

1 resposta

0

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" );
    
por 30.07.2014 / 13:35

Tags