It's pretty tiny, only has 1528725 rows.
That column probably already exists since it's a clone of an existing phoenix
table... :(
From: Tulasi Paradarami <[email protected]>
To: "[email protected]" <[email protected]>; Bob Dole
<[email protected]>
Sent: Wednesday, March 11, 2015 9:51 PM
Subject: Re: add a snapshotted phoenix table
How big is the table? I think, its taking so long to create the table because
phoenix creates a new column "_0" for each row with null values. So, when it
failed the upserts were only partially complete but table is available for
querying. Since, view doesnt perform this upsert, its faster to create & query.
On Wednesday, March 11, 2015, Bob Dole <[email protected]> wrote:
Hi,
I have taken a hbase snapshot of an existing phoenix table. I then performed a
clone_snapshot and would like to make phoenix aware of the new table.
I tried issueing the same CREATE statement over the cloned table and the
command seems to hang and eventually throws the below exception:
Error: (state=08000,code=101)
org.apache.phoenix.exception.PhoenixIOException
at
org.apache.phoenix.util.ServerUtil.parseServerException(ServerUtil.java:108)
at
org.apache.phoenix.iterate.BaseResultIterators.getIterators(BaseResultIterators.java:569)
at
org.apache.phoenix.iterate.ConcatResultIterator.getIterators(ConcatResultIterator.java:50)
at
org.apache.phoenix.iterate.ConcatResultIterator.currentIterator(ConcatResultIterator.java:97)
at
org.apache.phoenix.iterate.ConcatResultIterator.next(ConcatResultIterator.java:117)
at
org.apache.phoenix.iterate.GroupedAggregatingResultIterator.next(GroupedAggregatingResultIterator.java:68)
at
org.apache.phoenix.iterate.UngroupedAggregatingResultIterator.next(UngroupedAggregatingResultIterator.java:39)
at
org.apache.phoenix.compile.PostDDLCompiler$1.execute(PostDDLCompiler.java:211)
at
org.apache.phoenix.query.ConnectionQueryServicesImpl.updateData(ConnectionQueryServicesImpl.java:1604)
at
org.apache.phoenix.schema.MetaDataClient.createTable(MetaDataClient.java:551)
at
org.apache.phoenix.compile.CreateTableCompiler$2.execute(CreateTableCompiler.java:184)
at
org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:271)
at
org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:263)
at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
at
org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:261)
at
org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:1054)
at sqlline.SqlLine$Commands.execute(SqlLine.java:3673)
at sqlline.SqlLine$Commands.sql(SqlLine.java:3584)
at sqlline.SqlLine.dispatch(SqlLine.java:821)
at sqlline.SqlLine.runCommands(SqlLine.java:1793)
at sqlline.SqlLine$Commands.run(SqlLine.java:4161)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at sqlline.SqlLine$ReflectiveCommandHandler.execute(SqlLine.java:2810)
at sqlline.SqlLine.dispatch(SqlLine.java:817)
at sqlline.SqlLine.initArgs(SqlLine.java:657)
at sqlline.SqlLine.begin(SqlLine.java:680)
at sqlline.SqlLine.mainWithInputRedirection(SqlLine.java:441)
at sqlline.SqlLine.main(SqlLine.java:424)
Caused by: java.util.concurrent.TimeoutException
at java.util.concurrent.FutureTask.get(FutureTask.java:201)
at
org.apache.phoenix.iterate.BaseResultIterators.getIterators(BaseResultIterators.java:524)
... 29 more
However, even with the above error, !table in sqlline will show the newly
created table and I can invoke queries against. I tried creating a view and the
CREATE VIEW command completed without errors however I'd rather use tables.
Is there a proper way to make phoenix aware of an existing phoenix table?
Thanks!