[Database, Big Data] Accessing a Hive Table from Oracle Database

原文はこちら。
https://blogs.oracle.com/bigdataconnectors/entry/accessing_a_hive_table_from

HiveはHDFSのデータを問い合わせるためのツールで、人気のあるツールです。Oracle SQL Connector for HDFSはversion 2.0でHive表から直接データを読み取ることができます。また、Oracle SQL Connector for HDFSのコマンドラインツールが非常に簡素化されました。Hive表とHiveデータベース名をHadoop構成プロパティとして指定しさえすれば、コネクターはHive表のデータにアクセスすることができます。
oracle.hadoop.exttab.sourceType=hive
oracle.hadoop.exttab.hive.tableName=<hive table name>
oracle.hadoop.exttab.hive.databaseName=<hive database name>
コマンドラインツールは外部表をOracle Databaseに作成します。Hive表のデータにアクセスするためにこの外部表に対し問い合わせます。データベースの他の表のように外部表に問い合わせることができるので、Oracle SQLの機能を使ってHive表に対して問い合わせることができます。

外部表の名前とデータベース接続情報もHadoop構成プロパティとして指定します。
hadoop jar $OSCH_HOME/jlib/orahdfs.jar \
oracle.hadoop.exttab.ExternalTable
-D oracle.hadoop.exttab.sourceType=hive \
-D oracle.hadoop.exttab.hive.tableName=<hive table name> \
-D oracle.hadoop.exttab.hive.databaseName=<hive database name> \
-D oracle.hadoop.connection.url=<database connection url> \
-D oracle.hadoop.exttab.tableName=<external table name> \
….
-createTable
外部表を作成している間にHive表のデータ型は外部表のOracleのデータ型に自動的にマッピングされます。以下はマッピングの例です。
Hive Tinyint, Smallint, Int Oracle NUMBER
Hive Float, Double Oracle NUMBER (default precision)
Hive Decimal Oracle NUMBER
Hive Boolean Oracle VARCHAR2(5)
Hive String Oracle VARCHAR2(4000)
Hive Timestamp Oracle TIMESTAMP

0 件のコメント:

コメントを投稿