74 DBMS_HADOOP

DBMS_HADOOPパッケージは、特定のHive表にOracle外部表を作成するCREATE_EXTDDL_FOR_HIVE()という名前のPL/SQLプロシージャを提供します。

DBMS_HADOOPを使用するためには、ビッグ・データSQLを正しく設定する必要があります。

この章のトピックは、次のとおりです:

74.1 DBMS_HADOOPの概要

DBMS_HADOOPパッケージには、Oracle外部表を作成するためのプロシージャとOracle外部表のパーティションを同期化するためのプロシージャの2つのプロシージャが用意されています。

これらのプロシージャは、次のとおりです。

  • CREATE_EXTDDL_FOR_HIVE() - 特定のHive表に対してOracle外部表を作成します。

  • SYNCHRONIZE_PARTITIONS_FOR_HIVE() - Oracle外部表パーティションを、対応するHive表のパーティションと同期するために使用します。

74.2 DBMS_HADOOPのセキュリティ・モデル

ユーザーには、外部表パラメータを変更するために、表に対するALTER権限が必要です。ALTER権限以外にも、外部データ・ソースを含むディレクトリ・オブジェクトに対するREAD権限と、不良ファイル、ログ・ファイルおよび廃棄ファイルを含むディレクトリ・オブジェクトに対するWRITE権限が必要です。

パーティション化外部表にも同様の権限が適用されます。

74.3 DBMS_HADOOPサブプログラムの要約

DBMS_HADOOPには、CREATE_EXTDDL_FOR_HIVEプロシージャとSYNC_PARTITIONS_FOR_HIVEプロシージャのサブプログラムが含まれます。

表74-1 DBMS_HADOOPサブプログラム

サブプログラム 説明

CREATE_EXTDDL_FOR_HIVEプロシージャ

指定されたHive表名で、Hive表に対応する外部表を作成するために実行できるDDLのテキストを作成します。

SYNC_PARTITIONS_FOR_HIVEプロシージャ

Oracleカタログ内のHive表の既存のパーティション化定義を同期します。

74.3.1 CREATE_EXTDDL_FOR_HIVEプロシージャ

このプロシージャは、特定のHive表に対してOracle外部表を作成します。

構文

DBMS_HADOOP.CREATE_EXTDDL_FOR_HIVE (
   cluster_id         IN  VARCHAR2,
   db_name            IN  VARCHAR2 := NULL,
   hive_table_name    IN  VARCHAR2,
   hive_partition     IN  BOOLEAN,
   table_name         IN  VARCHAR2 := NULL,
   perform_DDL        IN  BOOLEAN := FALSE,
   text_of_DDL        OUT CLOB);

パラメータ

表74-2 CREATE_EXTDDL_FOR_HIVEプロシージャのパラメータ

パラメータ 説明

cluster_id

HadoopクラスタID

hive_db_name

Hive表が存在するデータベース

hive_table_name

Hive表の名前

hive_partition

この引数がTRUEであり、元のHive表がパーティション化されている場合、対応するOracle外部表も、同じパーティション・キーを使用してパーティション化されます。

元のHive表がパーティション化されていない場合、hive_partition=TRUEは無効です。hive_partition=FALSEの場合、元のHive表がパーティション化されていても、対応するOracle外部表はパーティション化されません。

table_name

Oracle外部表の名前

perform_DDL

この引数がTRUEの場合、外部表は自動的に作成されます。それ以外の場合、DDL文のテキスト表現が生成され、text_of_DDLで戻されます。

text_of_DDL

引数perform_DDLFALSEの場合、DDL文のテキスト表現が生成され、text_of_DDLで戻されます。

74.3.2 SYNCHRONIZE_PARTITIONS_FOR_HIVEプロシージャ

このプロシージャは、Oracle外部表パーティションを、対応するHive表のパーティションと同期します。

構文

DBMS_HADOOP.SYNCHRONIZE_PARTITIONS_FOR_HIVE (
   table_name     IN  VARCHAR2,
   table_owner    IN  VARCHAR2);

パラメータ

表74-3 SYNCHRONIZE_PARTITIONS_FOR_HIVEプロシージャのパラメータ

パラメータ 説明

table_name

Oracle外部表

table_owner

スキーマ名。