Skip to content

Соединения данных Apache Phoenix

1. Обзор

1.1 Версия

Версия FineBIФункциональные изменения
6.0-

1.2 Сценарии применения

В этой статье описывается, как подключиться к базе данных Apache Phoenix в FineBI.

Примечание: Эта база данных не поддерживает листы данных, в которых используется атрибут прямой ссылки

2. Подготовительная работа

2.1 Версии и драйверы

Поддерживаемые версии баз данныхСсылка на загрузку драйвераПоддерживаемые версии баз данных
1.2phoenix-4.12.0-HBase-1.2-client.jarorg.apache.phoenix.jdbc.PhoenixDriver

2.2 Сбор информации о подключении

Перед подключением к базе данных соберите следующую информацию:

  • IP-адрес и номер порта сервера, на котором находится база данных;
  • Имя базы данных;
  • Для аутентификации по имени пользователя и паролю вам нужно собрать имя пользователя и пароль; для аутентификации Kerberos вам нужно собрать имя клиента и путь к ключу keytab;
  • Схема базы данных, к которой необходимо подключиться;

3. конкретные шаги по подключению

1) Войдите в FineBI как администратор, нажмите "System Management > Соединения данных > Управление соединением данных" и нажмите "Новое соединение данных", какпоказано на рисунке ниже:

Примечание: Если пользователь, не являющийся администратором, хочет настроить подключение данных, администратор должен назначить ему разрешения узла подключения данных в системе управления, подробнее см. в разделе Разрешения подключения данных.

1.png

2) Найдите значок APACHE Phoenix, как показано ниже:

35.png

3) Переключите драйвер на "Custom", чтобы выбрать драйвер, загруженный в разделе 2.1, а затем введите информацию о подключении в разделе 2.2.

Hbase поддерживает аутентификацию Kerberos. Подробнее о методах аутентификации Kerberos см. в разделе: Аутентификация Kerberos для подключений к данным.

Примечание: Пользователи могут по желанию изменять расширенные настройки, подробнее см. в разделе 4.3 "Настройка подключения данных ".

33.png

4) Нажмите "Нажмите для подключения к базе данных", после успешного подключения выберите режим базы данных (если он не выбран, будет использоваться режим по умолчанию). Наконец, сохраните соединение с данными, как показано ниже:

34.png

4. Добавьте таблицы базы данных в FineBI

Существует два способа добавления таблиц из базы данных в FineBI:

2.png

5. условия

5.1 FineBI остается на стартовой странице

Проблемные явления:

Поместите phoenix-4.12.0-HBase-1.2-client.jar в каталог %FineBI%\webapps\webroot\WEB-INF\lib, перезапустите FineBI, FineBI всегда находится на стартовой странице. Как показано на рисунке ниже:

1586781481408884.png

Решение:

1) С помощью zip-инструмента откройте файл phoenix-4.12.0-HBase-1.2-client.jar, перейдите к файлу javax и удалите файлы el и servlet, как показано ниже:

35.png

3) Перезапустите FineBI.

5.2 Запросы

1) A join B on A.a=B.b. A B не поддерживает подзапросы.

2) Старайтесь избегать использования многоуровневых вложенных SQL-запросов. Многоуровневая вложенность может привести к ошибкам SQL, если исходный набор данных пользователя уже имеет вложенность SQL, движок открывает данные в реальном времени, когда с запросом может возникнуть проблема.

Например, SQL-оператор select T_2.a from ( select T_1.a from ( select * from A) T_1 ) T_2 сообщит об ошибке.

5.3 Сообщение о проблемах и их решение

1) Описание: JDBC-доступ к базе данных не может быть подключен, подскажите ошибку местоположения или zookeeper не может найти соответствующий адрес.

Решение:

Проверьте, является ли IP-адрес, соответствующий имени машины в файле /etc/hosts, IP-адресом локальной сети;

Убедитесь, что параметры имени машины в/etc/hostnameи/etc/hostsнастроены одинаково;

Убедитесь, что имя машины IP+, настроенное для хостов машины, на которой расположен BI, является правильным.

2) Описание: BI test connection failed, error Caused by: java.sql.SQLException: org.apache.hadoop.hbase.DoNotRetryIOException: java.lang.IllegalAccessError: tried to получить доступ к методу com.google.common.base.Stopwatch.<init>()V из класса org.apache.hadoop.hbase.zookeeper.MetaTableLocator

Решение:

Замените пакет guava на guava-16.0.1.jar.

3) Описание: Тестовое подключение BI не удалось с ошибкой ERROR 726 (43M10): Inconsistent namespace mapping properties. Cannot initiate connection as SYSTEM:CATALOG is found but у клиента не включен phoenix.schema.isNamespaceMappingEnabledERROR 726 (43M10): Inconsistent namespace mapping properties. Невозможно инициировать соединение, так как найден SYSTEM:CATALOG, но у клиента нет phoenix.schema.isNamespaceMappingEnabled enabledСнимок экрана ошибки:

222

Решение:

Если вы используете в Hbase пользовательское пространство имен, а не только стандартное, то эквивалентом в Phoenix является концепция схемы. Однако по умолчанию она не включена, поэтому вам нужно добавить следующий элемент конфигурации в hbase-site.xml:

222

Конкретный код показан ниже:

  
  
 <свойство> <имя>phoenix.schema.isNamespaceMappingEnabled</имя> <значение>true</  
  
  
  
 значение> </property> <property> <name>phoenix.schema.mapSystemTablesToNamespace</name> &  
 nbsp;<value>true</value> </property>