次の Linux コマンドを使用しています。
hadoop jar phoenix-4.6.0-HBase-0.98-client.jar org.apache.phoenix.mapreduce.CsvBulkLoadTool --table TT --input /tmp/text.csv
このコマンドは正常に機能しますが、csv ファイルからのデータは hbase テーブルにロードされませんが、データはインデックス テーブルに正常にロードされます (TT のインデックス テーブルの csv ファイルをインポートします)。
環境:</p>
HBASE 0.98.9
Hadoop 2.6.0
フェニックス 4.6-hbase-0.98
ケース 1:すべての列をカバーするインデックス
1)
CREATE TABLE example (
my_pk bigint not null,
m.first_name varchar(50),
m.last_name varchar(50)
CONSTRAINT pk PRIMARY KEY (my_pk))
2)
CREATE INDEX index_example on example(m.last_name ASC) include (m.first_name)
or create index index_example on example(m.first_name,m.last_name)
3)
hadoop jar phoenix-4.6.0-HBase-0.98-client.jar org.apache.phoenix.mapreduce.CsvBulkLoadTool --table example --input /tmp/text1.csv --index-table INDEX_EXAMPLE
4)
select * from example
成功してデータを持っている
select * from index_example
成功してデータを持っている
テストケース: org.apache.phoenix.mapreduce.CsvBulkLoadToolIT.testImportWithIndex()
ケース 2:列のインデックスで覆われた部分
1)
CREATE TABLE example (
my_pk bigint not null,
m.first_name varchar(50),
m.last_name varchar(50)
CONSTRAINT pk PRIMARY KEY (my_pk))
2)
create index index_example on example(m.last_name ASC)
3)
hadoop jar phoenix-4.6.0-HBase-0.98-client.jar
org.apache.phoenix.mapreduce.CsvBulkLoadTool --table example --input /tmp/text1.csv --index-table INDEX_EXAMPLE
4)
select * from example
成功しましたが、データがありません
select * from index_example
成功はデータを持っています
テストケース: org.apache.phoenix.mapreduce.CsvBulkLoadToolIT.testImportOneIndexTable()