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_HDFSORACLE_HIVEの両方のアクセス・ドライバで、Apache Hadoop MapReduceプログラミング・モデルを満たす多数のクラスを指定する必要があります。これらのクラスの一部は両方のアクセス・ドライバ・タイプに必要であるのに対して、ORACLE_HIVEアクセス・ドライバにのみ必要なクラスもあります。ORACLE_HDFSORACLE_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 Database TableStorageHandler)。
  • org.apache.hadoop.hive.serde2.AbstractSerDeのインスタンス(たとえば、Oracle NoSQL Database TableSerDe)。
  • 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の統合において重要な役割を果たします。