Можно ли создать таблицу Phoenix на основе существующей таблицы HBase? - PullRequest
0 голосов
/ 11 октября 2019

1) Возможно ли создать таблицу Феникса на основе существующей таблицы HBase?
Основываясь на этой информации здесь
http://phoenix.apache.org/language/#create_table это должно быть возможно, но какие именно параметры необходимо передать,Я не уверена. Я не вижу примеров там.

"Параметры конфигурации таблицы и столбца HBase могут передаваться в виде пар ключ / значение для настройки таблицы HBase по желанию. Обратите внимание, что при использовании предложения IF NOT EXISTS, если таблица уже существует, тогдав него не будет внесено никаких изменений. "

2) Кроме того, возможно ли, что в процессе создания таблицы я сам контролирую отображение имен столбцов феникса в имена столбцов HBase?

3) Я знаю, что представление Phoenix (поддерживаемое таблицей HBase) имеет определенные проблемы / ограничения для поддержания своих индексов, если процесс записи выполняет запись непосредственно в базовую таблицу HBase, а не в представление Phoenix.

https://issues.apache.org/jira/browse/PHOENIX-1499 https://issues.apache.org/jira/browse/PHOENIX-1619

Итак ... будет ли это проблемой также, если мы создадим таблицу Phoenix, поддерживаемую таблицей HBase (и запишем в таблицу HBase позадиФеникс вернулся)? Я имею в виду, если ответ на 1) положительный, у меня будет та же проблема с таблицей Феникса, что и с представлением Феникса (при условии, что мои записи не проходят через Феникс)?

1 Ответ

1 голос
/ 12 октября 2019

Непосредственное получение ответа здесь.

a) Конкретные свойства могут быть переданы семействам столбцов или таблице в целом. Это различные параметры, которые были определены с помощью параметров. Здесь можно указать параметры: http://phoenix.apache.org/language/#options. Вы можете создать представление, которое ссылается на существующую таблицу hbase. Я предпочитаю представления, потому что я могу удалить и воссоздать их без проблем, в отличие от таблиц, удаление которых приведет к исчезновению базовой таблицы HBase

b) Это невозможно, AFAIK. Нет никаких вариантов отображения между существующими таблицами hbase и соответствующими представлениями феникса (т. Е. FN в фениксе ссылается на firstName в HBase)

c) Это правильно. По крайней мере, в версиях 4.x Феникс, это правда.

i) Если вы создадите таблицу Phoenix (таблица HBase будет создана автоматически) и запишете ее непосредственно в HBase, вам придется позаботиться об использовании типов записи Phoenix для записи, чтобы они правильно читались из HBase(https://github.com/apache/phoenix/blob/master/phoenix-core/src/main/java/org/apache/phoenix/schema/types). Также обратите внимание, что вам придется позаботиться, если у вас есть SALT_BUCKETS и соль феникса, если вы определили таблицы из феникса подобным образом

...