2016-10-11 5 views
0

は、私は、コマンドにフェニックスのその後Apacheのフェニックスでビューを作成します。エラー505

CREATE VIEW "t1" (pk VARCHAR PRIMARY KEY, "f1".val VARCHAR) 

を実行することはできないんだけど、私は次のエラーを取得するHBaseのコマンドで

create 't1', {NAME => 'f1', VERSIONS => 5} 

を実行しています

org.apache.phoenix.schema.ReadOnlyTableException: ERROR 505 (42000): Table is read only. 
    at org.apache.phoenix.query.ConnectionQueryServicesImpl.ensureTableCreated(ConnectionQueryServicesImpl.java:815) 
    at org.apache.phoenix.query.ConnectionQueryServicesImpl.createTable(ConnectionQueryServicesImpl.java:1174) 
    at org.apache.phoenix.schema.MetaDataClient.createTableInternal(MetaDataClient.java:1974) 
    at org.apache.phoenix.schema.MetaDataClient.createTable(MetaDataClient.java:770) 
    at org.apache.phoenix.compile.CreateTableCompiler$2.execute(CreateTableCompiler.java:186) 
    at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:305) 
    at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:297) 
    at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53) 
    at org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:295) 
    at org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:1255) 
    at sqlline.Commands.execute(Commands.java:822) 
    at sqlline.Commands.sql(Commands.java:732) 
    at sqlline.SqlLine.dispatch(SqlLine.java:808) 
    at sqlline.SqlLine.begin(SqlLine.java:681) 
    at sqlline.SqlLine.start(SqlLine.java:398) 
    at sqlline.SqlLine.main(SqlLine.java:292) 

これらはセクション

0123の下 https://phoenix.apache.org/faq.htmlに示されているコマンドであります

どのように私は既存のHBaseテーブルにPhoenixテーブルをマップしますか?代わりに、あなたは以下のような既存のHBaseのテーブルにTABLEを作成する必要がVIEWを作成する

+0

あなたはどのバージョンのphoenixを使用していますか? –

答えて

0

は:

CREATE TABLE "t1" (ROWKEY VARCHAR PRIMARY KEY, "f1"."val" VARCHAR) 

詳細については、あなたがフェニックスをマッピングしたいthis

0

確認することができます既存のHBaseテーブルに追加します。しかし問題の説明では、フェニックスビューを最初に作成した後、同じ名前のHBaseテーブルを作成しようとしています。したがって、あなたはorg.apache.phoenix.schema.ReadOnlyTableException: ERROR 505 (42000): Table is read only.例外を取得しています。

代わりにHBaseテーブルを作成してから、既存のHBaseテーブルにマップするPhoenixビューを作成します。

例: はHBaseのテーブルの作成:

同じHBaseのテーブルを指しフェニックスビューを作成する
create 't1', {NAME => 'f1', VERSIONS => 5} 

CREATE VIEW "t1" (pk VARCHAR PRIMARY KEY, "f1".val VARCHAR) 

「PK」欄は、あなたの行キーはVARCHAR(すなわち、Aであることを宣言"f1" .valカラムは、HBaseテーブルに列ファミリとカラム修飾子が "f1"のKeyValuesを含むことを宣言しています:VALとその値はVARCHA

関連する問題