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 Databaseに作成します。Hive表のデータにアクセスするためにこの外部表に対し問い合わせます。データベースの他の表のように外部表に問い合わせることができるので、Oracle SQLの機能を使ってHive表に対して問い合わせることができます。
oracle.hadoop.exttab.sourceType=hive
oracle.hadoop.exttab.hive.tableName=<hive table name>
oracle.hadoop.exttab.hive.databaseName=<hive database name>
外部表の名前とデータベース接続情報もHadoop構成プロパティとして指定します。
外部表を作成している間にHive表のデータ型は外部表のOracleのデータ型に自動的にマッピングされます。以下はマッピングの例です。
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 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 件のコメント:
コメントを投稿