HBase のハイブに外部テーブルを作成できます。可変列を持つ外部テーブルを作成する必要があります。これは、HBase の列が特定のテーブルに対して固定されておらず、列の数が固定されておらず、作成できることを意味します。データ挿入時に動的に、そのような状況を処理するためのアプローチはどうあるべきか.
まとめ:HBaseテーブルで列数が固定されていない場合にハイブに外部テーブルを作成する方法。
前もって感謝します。
Hbase シェルでテーブルを作成する
create 'hbase_2_hive_names', 'id', 'name', 'age'
データを Hbase にロードします (入力ファイルは HDFS にある必要があります)
export HADOOP_CLASSPATH=$(/usr/local/hbase/bin/hbase classpath);$HADOOP_HOME/bin/hadoop jar /usr/local/hbase/hbase-0.94.1.jar importtsv -Dimporttsv.columns=HBASE_ROW_KEY,id:id,name:fn,name:ln,age:age hbase_2_hive_names /var/data/samples/names.tsv
Hive シェルで外部テーブルを作成する
CREATE EXTERNAL TABLE hbase_hive_names(hbid INT, id INT, fn STRING, ln STRING, age INT) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,id:id,name:fn,name:ln,age:age") TBLPROPERTIES("hbase.table.name" = "hbase_2_hive_names");