非セキュア・ストアのHive表へのOracle RDBMS表のマッピング

Oracle Database外部表を作成し、Oracle NoSQL Database vehicleTableに最初にマップされたHive外部表にマップするには、sqlplusプロンプトから次のようなコマンドを実行します。

CREATE TABLE IF NOT EXISTS vehicleTable
    (type VARCHAR2(10), make VARCHAR2(12), model VARCHAR2(20), 
        class VARCHAR2(40), color VARCHAR2(20), price NUMBER(8,2), 
        count NUMBER, dealerid NUMBER, delivered TIMESTAMP)
    ORGANIZATION EXTERNAL (TYPE ORACLE_HIVE 
        DEFAULT DIRECTORY DEFAULT_DIR 
        ACCESS PARAMETERS (com.oracle.bigdata.log.qc=query.log))
    REJECT LIMIT UNLIMITED;

同様に、Oracle NoSQL Database rmvTableに最初にマップされたHive外部表にOracle Database外部表をマップするには、次のコマンドを実行します。

CREATE TABLE IF NOT EXISTS rmvTable
    (zipcode VARCHAR2(7), lastname VARCHAR2(20), firstname VARCHAR2(20), 
        ssn NUMBER, gender VARCHAR2(6), license VARCHAR2(9),
        phoneinfo VARCHAR2(67), address VARCHAR2(100),
        vehicleinfo VARCHAR2(1000))
    ORGANIZATION EXTERNAL (TYPE ORACLE_HIVE 
        DEFAULT DIRECTORY DEFAULT_DIR 
        ACCESS PARAMETERS (com.oracle.bigdata.log.qc=query.log))
    REJECT LIMIT UNLIMITED;

最後に、Oracle NoSQL Database exampleJsonTableに最初にマップされたHive外部表にOracle Database外部表をマップするには、次のコマンドを実行します。

CREATE TABLE IF NOT EXISTS exampleJsonTable
    (id INT, jsonfield VARCHAR2(2000))
    ORGANIZATION EXTERNAL (TYPE ORACLE_HIVE 
        DEFAULT DIRECTORY DEFAULT_DIR 
        ACCESS PARAMETERS (com.oracle.bigdata.log.qc=query.log))
    REJECT LIMIT UNLIMITED;

Oracle Database外部表に指定する名前をマップ先のHive外部表の名前と異なる名前にする場合は、com.oracle.bigdata.tablenameプロパティを使用して、コマンドのACCESS PARAMETERSでHive外部表の名前を指定する必要があります。それ以外の場合、Oracle外部表の名前はデフォルトでHive表の名前になります。次に例を示します。

CREATE TABLE IF NOT EXISTS oracleVehicleTable
    (type VARCHAR2(10), make VARCHAR2(12), model VARCHAR2(20), 
        class VARCHAR2(40), color VARCHAR2(20), price NUMBER(8,2), 
        count NUMBER, dealerid NUMBER, delivered TIMESTAMP)
    ORGANIZATION EXTERNAL (TYPE ORACLE_HIVE 
        DEFAULT DIRECTORY DEFAULT_DIR 
        ACCESS PARAMETERS (com.oracle.bigdata.log.qc=query.log
        com.oracle.bigdata.tablename=vehicleTable))
    REJECT LIMIT UNLIMITED;

Oracle Big Data SQL 4ユーザーズ・ガイドには、ORACLE_HIVEアクセス・ドライバに指定できる様々なACCESS PARAMETERSの情報があります。