Daten über Hive-Mapping zu Cassandra können nicht angezeigt werden

Daten über Hive-Mapping zu Cassandra können nicht angezeigt werden

Nachdem ich Daten von Oracle DB über Sqoop in Cassandra geladen hatte, konnte ich meine Daten sowohl über Cassandra als auch über Hive anzeigen. Mir wurde gesagt, dass dabei für jede Tabelle zwei Dateien generiert würden, was zu Platzproblemen führen würde. Um dies zu beheben, habe ich die Tabelle in Hive gelöscht, eine externe Tabelle erstellt und sie meiner Spaltenfamilie in Cassandra zugeordnet. Ich kann jedoch keine Daten in der Hive-Tabelle anzeigen. Ich verwende Datastax Enterprise 3.0.1. Mithilfe von Sqoop habe ich die Tabelle „Test“ von Oracle DB in eine Cassandra-Spaltenfamilie mit demselben Namen im Schlüsselbereich „test_keyspace“ migriert. Ich kann die Daten über cassandra-cli mit dem Befehl „list test“ anzeigen.

Die Beschreibung der Spaltenfamilie in cqlsh liefert mir folgendes Ergebnis:

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';

Der Befehl, den ich zum Erstellen der Hive-Tabelle verwende, lautet:

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" );

Die Tabelle wird aufgelistet, wenn ich in Hive „Tabellen anzeigen“ eingebe. Aber „select * from test“ zeigt alle Werte in der Tabelle als NULL an, außer dem Zeilenschlüssel.

Kennt jemand eine Lösung?

Antwort1

Versuchen Sie, die Tabelle folgendermaßen zu erstellen:

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" );

verwandte Informationen