Hive データ のPostgreSQL インターフェースを作成

Hive JDBC Driver のリモート機能を使用し、データアクセス用のPostgreSQL エントリポイントを作成します。

加藤龍彦
ウェブデベロッパー

最終更新日:2015-12-02
hive ロゴ

CData

jdbc ロゴ画像
PostgreSQL ロゴ

こんにちは!ウェブ担当の加藤です。マーケ関連のデータ分析や整備もやっています。

インターネット上には、多くのPostgreSQL クライアントがあります。標準のドライバーからBI、アナリティクスツールまで、PostgreSQL はデータアクセスのための一般的なインターフェースです。 JDBC ドライバーを使用することで、簡単に任意の標準クライアントから接続できるPostgreSQL エントリポイントを作成できます。

Hive にPostgreSQL データベースとしてアクセスするには、CData JDBC Driver for ApacheHive とJDBC foreign data wrapper (FDW) を使用します。ここでは、FDW をコンパイルしてインストールし、PostgreSQL サーバーからHive にクエリを実行します。

JDBC データソースとしてHive データに接続する

JDBC データソースとしてHive に接続するには、以下が必要です。

  • Driver JAR path:
  • JAR は、インストールディレクトリのlib サブフォルダにあります。
  • Driver class: cdata.jdbc.apachehive.ApacheHiveDriver

  • JDBC URL: URL は、"jdbc:apachehive:" で始まり、セミコロンで区切られた名前と値の組み合わせで任意の接続プロパティを含めることができます。

    Apache Hive への接続を確立するには以下を指定します。

    • Server:HiveServer2 をホストするサーバーのホスト名またはIP アドレスに設定。
    • Port:HiveServer2 インスタンスへの接続用のポートに設定。
    • TransportMode:Hive サーバーとの通信に使用するトランスポートモード。有効な入力値は、BINARY およびHTTP です。デフォルトではBINARY が選択されます。
    • AuthScheme:使用される認証スキーム。有効な入力値はPLAIN、LDAP、NOSASL、およびKERBEROS です。デフォルトではPLAIN が選択されます。
    • CData 製品においてTLS/SSL を有効化するには、UseSSL をTrue に設定します

    ビルトイン接続文字列デザイナ

    JDBC URL の構成については、Hive JDBC Driver に組み込まれている接続文字列デザイナを使用してください。JAR ファイルのダブルクリック、またはコマンドラインからJAR ファイルを実行します。

    java -jar cdata.jdbc.apachehive.jar

    接続プロパティを入力し、接続文字列をクリップボードにコピーします。

    Using the built-in connection string designer to generate a JDBC URL (Salesforce is shown.)

    以下は一般的なJDBC URL です。

    jdbc:apachehive:Server=127.0.0.1;Port=10000;TransportMode=BINARY;

JDBC FDW を構築する

FDW は、PostgreSQL を再コンパイルせずに、PostgreSQL の拡張機能としてインストールできます。例としてjdbc2_fdw 拡張子を使用します。

  1. ご使用のバージョンのJRE 共有オブジェクトから、/usr/lib/libjvm.so にシンボリックリンクを追加します。例: ln -s /usr/lib/jvm/java-6-openjdk/jre/lib/amd64/server/libjvm.so /usr/lib/libjvm.so
  2. ビルドを開始する: make install USE_PGXS=1

Hive データをPostgreSQL データベースとしてクエリする

拡張機能をインストールした後、以下のステップに従ってHive へのクエリの実行を開始します。

  1. データベースにログインします。
  2. データベースの拡張機能をロードする: CREATE EXTENSION jdbc2_fdw;
  3. Hive のオブジェクトを作成する: CREATE SERVER ApacheHive FOREIGN DATA WRAPPER jdbc2_fdw OPTIONS ( drivername 'cdata.jdbc.apachehive.ApacheHiveDriver', url 'jdbc:apachehive:Server=127.0.0.1;Port=10000;TransportMode=BINARY;', querytimeout '15', jarfile '/home/MyUser/CData/CData\ JDBC\ Driver\ for\ Salesforce MyDriverEdition/lib/cdata.jdbc.apachehive.jar');
  4. MySQL デーモンに認識されているユーザーのユーザー名とパスワードのユーザーマッピングを作成します。 CREATE USER MAPPING for postgres SERVER ApacheHive OPTIONS ( username 'admin', password 'test');
  5. ローカルデータベースに外部テーブルを作成する: postgres=# CREATE FOREIGN TABLE customers ( customers_id text, customers_City text, customers_CompanyName numeric) SERVER ApacheHive OPTIONS ( table_name 'customers');
Hive に対して 読み取り/書き込みコマンドを実行可能にする: postgres=# SELECT * FROM customers;

関連コンテンツ

トライアル・お問い合わせ

30日間無償トライアルで、CData のリアルタイムデータ連携をフルにお試しいただけます。記事や製品についてのご質問があればお気軽にお問い合わせください。