Oracle Big Data SQLについての基礎知識
「Oracle Big Data SQLとの統合の概要」で説明したように、Oracle Big Data SQLでは、データ・ソースをOracle外部表として表すことで、Oracle NoSQL Database表などの様々な外部データ・ソースにSQLでアクセスできます。これを実現するために、アクセス・ドライバと呼ばれるメカニズムが採用され、Oracle Big Data SQLシステムで実行されているOracleリレーショナル・データベースの表であるかのようにデータにアクセスします。Oracle Big Data SQLは、アクセスされるデータ・ソースごとに新しいアクセス・ドライバ・タイプを指定することで、外部表のアクセス・ドライバ・メカニズムを拡張します。Oracle Big Data SQLの導入前は、Oracle Database外部表メカニズムにより、次の2つのアクセス・ドライバ・タイプのみが定義されていました。
- フラット・ファイルから読み取るための
ORACLE_LOADER
アクセス・ドライバ。 - Oracleデータベース間で独自の形式でデータを移行するための
ORACLE_DATAPUMP
アクセス・ドライバ。
Big Data SQLの導入により、次の新しいアクセス・ドライバ・タイプが定義されています。
- Apache Hadoop分散ファイル・システムに格納されているデータにアクセスするための
ORACLE_HDFS
アクセス・ドライバ。 - Apache Hive表またはOracle NoSQL Database表に格納されているデータにアクセスするための
ORACLE_HIVE
アクセス・ドライバ。 - オブジェクト・ストアに格納されているファイルにアクセスするための
ORACLE_BIGDATA
アクセス・ドライバ。
ORACLE_HDFS
とORACLE_HIVE
の両方のアクセス・ドライバで、Apache Hadoop MapReduceプログラミング・モデルを満たす多数のクラスを指定する必要があります。これらのクラスの一部は両方のアクセス・ドライバ・タイプに必要であるのに対して、ORACLE_HIVE
アクセス・ドライバにのみ必要なクラスもあります。ORACLE_HDFS
とORACLE_HIVE
の両方に必要なクラス・タイプは次のとおりです。
org.apache.hadoop.mapreduce.InputFormat
のインスタンスorg.apache.hadoop.mapreduce.OutputFormat
のインスタンスorg.apache.hadoop.mapreduce.RecordReader
のインスタンスorg.apache.hadoop.mapreduce.InputSplit
のインスタンス
パッケージorg.apache.hadoop.mapreduceに関する項を参照してください。
ORACLE_HIVE
には必要で、ORACLE_HDFS
には必要がないクラス・タイプは次のとおりです。
org.apache.hadoop.hive.ql.metadata.HiveStoarageHandler
のインスタンス(たとえば、Oracle NoSQL DatabaseTableStorageHandler
)。org.apache.hadoop.hive.serde2.AbstractSerDe
のインスタンス(たとえば、Oracle NoSQL DatabaseTableSerDe
)。org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector
のインスタンス。たとえば、Oracle NoSQL Databaseによって定義され、「Apache Hiveとの統合」の項で説明されている様々なObjectInspector
実装。org.apache.hadoop.hadoop.hive.ql.metadata.HiveStoragePredicateHandler
のインスタンス。
Hive APIおよびパッケージoracle.kv.hadoop.hive.tableに関する項を参照してください。
ORACLE_HDFS
アクセス・ドライバはHDFSファイルに格納されているデータのみを読み取ることができますが、ORACLE_HIVE
アクセス・ドライバはHDFSファイルに格納されているデータのみでなく、Oracle NoSQL Database表などの他の場所に格納されているデータも読み取ることができます。次の各項で説明するように、Oracle NoSQL DatabaseとApache Hiveの統合は、Oracle NoSQL DatabaseとOracle Big Data SQLの統合において重要な役割を果たします。