Не могу прочитать данные из существующей таблицы на базе данных через Феникс - PullRequest
1 голос
/ 20 апреля 2019

При использовании Java-запросов Hbase через Phoenix я сталкиваюсь со следующей проблемой: Мое соединение в порядке, поэтому я получаю все данные из SYSTEM.CATALOG, используя этот запрос:

SELECT * FROM SYSTEM.CATALOG

Это даст мне результат как:

TENANT_ID TABLE_SCHEM TABLE_NAME ...

null      DEVLOCAL    BASE_COMMENTS ...
null      SYSTEM      CATALOG ...
null      g           edges ...
null      g           messages ...
...

Я думаю, что g.edge существует, поэтому я пытаюсь:

Select * from g.edges

И проблема начинается здесь:

Exception in thread "main" org.apache.phoenix.schema.TableNotFoundException: ERROR 1012 (42M03): Table undefined. tableName=G.EDGES
at org.apache.phoenix.query.ConnectionQueryServicesImpl.getAllTableRegions(ConnectionQueryServicesImpl.java:575)
at org.apache.phoenix.iterate.DefaultParallelScanGrouper.getRegionBoundaries(DefaultParallelScanGrouper.java:72)
at org.apache.phoenix.iterate.BaseResultIterators.getRegionBoundaries(BaseResultIterators.java:529)
at org.apache.phoenix.iterate.BaseResultIterators.getParallelScans(BaseResultIterators.java:696)
at org.apache.phoenix.iterate.BaseResultIterators.getParallelScans(BaseResultIterators.java:627)
at org.apache.phoenix.iterate.BaseResultIterators.<init>(BaseResultIterators.java:499)
at org.apache.phoenix.iterate.ParallelIterators.<init>(ParallelIterators.java:62)
at org.apache.phoenix.execute.ScanPlan.newIterator(ScanPlan.java:242)
at org.apache.phoenix.execute.BaseQueryPlan.iterator(BaseQueryPlan.java:351)
at org.apache.phoenix.execute.BaseQueryPlan.iterator(BaseQueryPlan.java:212)
at org.apache.phoenix.execute.BaseQueryPlan.iterator(BaseQueryPlan.java:207)
at org.apache.phoenix.execute.BaseQueryPlan.iterator(BaseQueryPlan.java:202)
at org.apache.phoenix.jdbc.PhoenixStatement$1.call(PhoenixStatement.java:310)
at org.apache.phoenix.jdbc.PhoenixStatement$1.call(PhoenixStatement.java:290)
at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
at org.apache.phoenix.jdbc.PhoenixStatement.executeQuery(PhoenixStatement.java:289)
at org.apache.phoenix.jdbc.PhoenixStatement.executeQuery(PhoenixStatement.java:283)
at org.apache.phoenix.jdbc.PhoenixStatement.executeQuery(PhoenixStatement.java:1706)
at HbaseDataProvider.query(HbaseDataProvider.java:29)
at Main.main(Main.java:10)

... что Г. ЭДЖЕС не существует. Я пробовал "g". "Ребра" не в верхнем регистре, но все равно выдает ошибку Пожалуйста, дайте мне идею или покажите мне, если я что-то неправильно понимаю. Спасибо!

1 Ответ

0 голосов
/ 22 апреля 2019

О, я исправил свою проблему.Это вызвано отсутствием феникса.На самом деле Apache Phoenix не выполняет автоматическую синхронизацию своих метаданных из hbase, поэтому, если у вас есть таблицы, созданные с использованием оболочки hbase, сначала вам нужно создать таблицы с тем же именем таблицы, именем схемы в Phoenix, чтобы Phoenix мог синхронизировать метаданные из hbase.Я виноват в том, что я не внимательно прочитал документы.Вот ссылка: https://phoenix.apache.org/faq.html

...