Оформление
Соединения данных Apache Phoenix
1. Обзор
1.1 Версия
| Версия FineBI | Функциональные изменения |
|---|---|
| 6.0 | - |
1.2 Сценарии применения
В этой статье описывается, как подключиться к базе данных Apache Phoenix в FineBI.
Примечание: Эта база данных не поддерживает листы данных, в которых используется атрибут прямой ссылки
2. Подготовительная работа
2.1 Версии и драйверы
| Поддерживаемые версии баз данных | Ссылка на загрузку драйвера | Поддерживаемые версии баз данных |
|---|---|---|
| 1.2 | phoenix-4.12.0-HBase-1.2-client.jar | org.apache.phoenix.jdbc.PhoenixDriver |
2.2 Сбор информации о подключении
Перед подключением к базе данных соберите следующую информацию:
- IP-адрес и номер порта сервера, на котором находится база данных;
- Имя базы данных;
- Для аутентификации по имени пользователя и паролю вам нужно собрать имя пользователя и пароль; для аутентификации Kerberos вам нужно собрать имя клиента и путь к ключу keytab;
- Схема базы данных, к которой необходимо подключиться;
3. конкретные шаги по подключению
1) Войдите в FineBI как администратор, нажмите "System Management > Соединения данных > Управление соединением данных" и нажмите "Новое соединение данных", какпоказано на рисунке ниже:
Примечание: Если пользователь, не являющийся администратором, хочет настроить подключение данных, администратор должен назначить ему разрешения узла подключения данных в системе управления, подробнее см. в разделе Разрешения подключения данных.

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

3) Переключите драйвер на "Custom", чтобы выбрать драйвер, загруженный в разделе 2.1, а затем введите информацию о подключении в разделе 2.2.
Hbase поддерживает аутентификацию Kerberos. Подробнее о методах аутентификации Kerberos см. в разделе: Аутентификация Kerberos для подключений к данным.
Примечание: Пользователи могут по желанию изменять расширенные настройки, подробнее см. в разделе 4.3 "Настройка подключения данных ".

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

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

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

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

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Снимок экрана ошибки:

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

Конкретный код показан ниже:
<свойство> <имя>phoenix.schema.isNamespaceMappingEnabled</имя> <значение>true</
значение> </property> <property> <name>phoenix.schema.mapSystemTablesToNamespace</name> &
nbsp;<value>true</value> </property>