Примеры¶
В следующем примере показано получение доступа к таблице MySQL через JDBC.
Предполагая, что инстанс MySQL доступен на 192.168.200.6:3306, создается таблица в MySQL:
use demodb; create table myclass( id int(4) not null primary key, name varchar(20) not null, degree double(16,2) );
Затем некоторые данные вставляются в таблицу MySQL:
insert into myclass values(1, 'tom', 90); insert into myclass values(2, 'john', 94); insert into myclass values(3, 'simon', 79);
JDBC-файлы драйвера MySQL (JAR) копируются в /usr/lib/pxf/lib/shared/ на всех узлах кластера (если директории shared нет, ее надо предварительно создать), а в /etc/pxf/conf/pxf-private.classpath должен быть прописан это путь:
# PXF Shared Libraries /usr/lib/pxf/lib/shared/*.jar
После этого все сегменты PXF перезапускаются. В ADB создается внешняя таблица:
CREATE EXTERNAL TABLE myclass( id integer, name text, degree float8 ) LOCATION ( 'pxf://localhost:51200/demodb.myclass?PROFILE=JDBC&JDBC_DRIVER=com.mysql.jdbc.Driver&DB_URL=jdbc:mysql://192.168.200.6:3306/demodb&USER=root&PASS=root' ) FORMAT 'CUSTOM' ( FORMATTER='pxfwritable_import' );
Наконец, к последней таблице выполняется запрос, который возвращает ожидаемые результаты:
SELECT * FROM myclass; SELECT id, name FROM myclass WHERE id = 2;