17.4 ORACLE_BIGDATAファイルへのアクセス
ORACLE_BIGDATA
を使用するには、データにアクセスして解析する方法を示す情報をアクセス・パラメータに指定します。
csv
、textfile
、avro
、parquet
、jsondoc
またはorc
のいずれかの値を使用してファイル形式タイプを定義します。com.oracle.bigdata.fileformat=[csv|textfile|avro|parquet|orc|jsondoc]
ORACLE_BIGDATA
を使用すると、テストや単純な問合せ目的でローカル・ファイルにアクセスすることもできます。この場合、LOCATION
フィールド値はORACLE_LOADER
に使用する値と同じです。LOCATION
フィールドでは、Oracleディレクトリ・オブジェクトの後にファイルの名前を続けることができます。ローカル・ファイルの場合、資格証明オブジェクトは必須ではありません。ただし、ファイルにアクセスするには、ディレクトリ・オブジェクトに対する権限が必要です。すべてのファイルのリストについては、次を参照してください:
- プロパティを指定するための構文ルール
プロパティは、SQLCREATE TABLE
のACCESS PARAMETERS
句および構成ファイル内に、キーワード/値のペアを使用して設定します。 - ORACLE_BIGDATA共通アクセス・パラメータ
すべてのファイル形式に共通するアクセス・パラメータのセットがあります。一部のパラメータは、特定のファイル形式に固有です。 - ORACLE_BIGDATA固有のアクセス・パラメータ
Avro、Parquet、TextfileおよびCSVには、すべて固有のアクセス・パラメータがあります。
親トピック: ORACLE_BIGDATAアクセス・ドライバ
17.4.1 プロパティを指定するための構文ルール
プロパティは、SQL CREATE TABLE
のACCESS PARAMETERS
句および構成ファイル内に、キーワード/値のペアを使用して設定します。
構文は次のルールに従う必要があります。
-
各キーワード/値のペアの形式は、キーワード(コロンまたは等号)と、値です。有効なキーワード/値のペアを次に示します。
keyword=value keyword:value
値は、セパレータの後の最初の非空白文字から行末までのすべてになります。セパレータと値の間の空白は無視されます。値の後の空白は保持されます。
-
プロパティ定義は複数の行にまたがることができます。この場合、最後の行を除き、行の終了文字の前にバックスラッシュ(エスケープ文字)を付けます。たとえば:
Keyword1= Value part 1 \ Value part 2 \ Value part 3
-
特殊文字は、文字の前にバックスラッシュ(エスケープ文字)を付けることで、プロパティ名またはプロパティ値に埋め込むことができます。次の表で、特殊文字について説明します。
表17-1 プロパティの特殊文字
エスケープ・シーケンス | 文字 |
---|---|
|
バックスペース( |
|
水平タブ( |
|
LF ( |
|
改ページ( |
|
改行( |
|
二重引用符( |
|
一重引用符( |
|
バックスラッシュ( 複数のバックスラッシュが行末にある場合、パーサーは奇数のバックスラッシュに対してのみ値を次の行に継続します。 |
|
Unicodeコード・ポイント |
ノート:
複数のバックスラッシュが行末にある場合、パーサーは奇数のバックスラッシュに対してのみ値を次の行に継続します。親トピック: ORACLE_BIGDATAファイルへのアクセス
17.4.2 ORACLE_BIGDATA共通アクセス・パラメータ
すべてのファイル形式に共通するアクセス・パラメータのセットがあります。一部のパラメータは、特定のファイル形式に固有です。
共通のアクセス・パラメータ
次の表に、ORACLE_BIGDATA
を介してアクセスされるすべてのファイル形式に共通するパラメータを示します。1列目には、すべてのデータ・ファイル・タイプに共通する各アクセス・パラメータを示します。2列目は各パラメータの説明です。
ノート:
特定のファイル形式に固有のパラメータは、他のファイル形式には使用できません。表17-2 共通のアクセス・パラメータ
共通のアクセス・パラメータ | 説明 |
---|---|
|
ファイルの形式を指定します。このパラメータの値によって、ファイルを処理するリーダーが識別されます。各リーダーは追加のアクセス・パラメータをサポートでき、それらは他のリーダーでサポートされるものもサポートされないものもあります。 有効な値:
parquet 、 orc 、 textfile 、 avro 、 csv 、 jsondoc
デフォルト: |
|
ログ・メッセージをログ・ファイルに書き込むかどうかを指定します。 有効な値: デフォルト: |
|
パラレル問合せコーディネータによって作成されるログ・ファイルの名前を指定します。このパラメータは、 |
|
問合せの実行時に作成されるログ・ファイルの名前を指定します。この値は、 有効な値: デフォルト: |
|
オブジェクト・ストア内のデータ・ファイルにアクセスするときに使用する資格証明オブジェクトを指定します。 このアクセス・パラメータは、オブジェクト・ストアへのアクセスに必要です。ディレクトリ・オブジェクトを介したファイルへのアクセスの場合や、パブリック・バケットに格納されているデータの場合は必要ありません。 資格証明に指定する名前は、表の所有者と同じスキーマにある資格証明オブジェクトの名前である必要があります。この表に対する DBMS_CREDENTIAL PL/SQL パッケージのDBMS_CREDENTIAL.CREATE_CREDENTIAL を使用します。たとえば:
|
|
オブジェクト・ストアにアクセスするための資格証明オブジェクトが作成されるスキーマを指定します。このパラメータは、 |
親トピック: ORACLE_BIGDATAファイルへのアクセス
17.4.3 ORACLE_BIGDATA固有のアクセス・パラメータ
Avro、Parquet、TextfileおよびCSVには、すべて固有のアクセス・パラメータがあります。
- Avro固有のアクセス・パラメータ
共通アクセス・パラメータに加えて、Avroファイル形式にのみ適用されるパラメータもあります。 - Avroファイルを使用した外部表の作成の例
次の例は、Oracle Cloud Object Storageに格納されているAvroファイルを使用して外部表を問い合せて作成する方法を示しています。 - Parquet固有のアクセス・パラメータ
一部のアクセス・パラメータは、Parquetファイル形式でのみ有効です。 - Avroファイルを使用した外部表の作成の例
次の例は、Oracle Cloud Object Storageに格納されているAvroファイルを使用して外部表を問い合せて作成する方法を示しています。 - TextfileおよびCSV固有のアクセス・パラメータ
テキスト・ファイルおよびカンマ区切り値(csv
)ファイル形式は、ハイブ・テキスト・ファイル形式に似ています。 - 外部表の作成例
次の例は、Oracle Cloud Object Storageに格納されている表の作成および外部CSVデータの問合せの様々な方法を示しています。
親トピック: ORACLE_BIGDATAファイルへのアクセス
17.4.3.1 Avro固有のアクセス・パラメータ
共通アクセス・パラメータに加えて、Avroファイル形式にのみ適用されるパラメータもあります。
この表では、1列目にAvroファイル形式に固有のアクセス・パラメータを示し、2列目でそのパラメータについて説明します。現時点では、Avro固有のパラメータは1つのみです。
ノート:
特定のファイル形式に固有のパラメータは、他のファイル形式には使用できません。表17-3 Avro固有のアクセス・パラメータ
Avro固有のパラメータ | 説明 |
---|---|
|
バイト配列に格納されている10進数の表現を指定します。 有効な値: デフォルト: このパラメータを使用しない場合、Avroの10進数列は、バイト配列に格納されているのはAvro仕様で定義されているとおりの値の数値表現(デフォルトは |
親トピック: ORACLE_BIGDATA固有のアクセス・パラメータ
17.4.3.2 Avroファイルを使用した外部表の作成の例
次の例は、Oracle Cloud Object Storageに格納されているAvroファイルを使用して外部表を問い合せて作成する方法を示しています。
- Avroファイルを使用した外部表の作成
この例では、外部Avroファイルを参照するデータベース・オブジェクトを作成します。 - DBMS_CLOUDを使用したAvroファイル外部表の作成
この例では、DBMS_CLOUD.CREATE_EXTERNAL_TABLE
プロシージャを使用して、Avroファイル形式の外部表を定義します。
親トピック: ORACLE_BIGDATA固有のアクセス・パラメータ
17.4.3.2.1 Avroファイルを使用した外部表の作成
この例では、外部Avroファイルを参照するデータベース・オブジェクトを作成します。
例17-7 外部表の作成
CREATE TABLE CUSTOMERS_AVRO_XT
(
CUSTOMER_ID NUMBER,
FIRST_NAME VARCHAR2(64),
LAST_NAME VARCHAR2(64),
EMAIL VARCHAR2(64),
SIGNUP_DATE DATE
)
ORGANIZATION EXTERNAL
(
TYPE ORACLE_BIGDATA
ACCESS PARAMETERS
(
com.oracle.bigdata.fileformat=AVRO
com.oracle.bigdata.credential.name="OCI_CRED"
)
LOCATION ('https://objectstorage.us-ashburn-1.oraclecloud.com/n/my_namespace/b/sales_data/o/customers_avro/')
);
親トピック: Avroファイルを使用した外部表の作成の例
17.4.3.2.2 DBMS_CLOUDを使用したAvroファイルの外部表の作成
この例では、DBMS_CLOUD.CREATE_EXTERNAL_TABLE
プロシージャを使用して、Avroファイル形式の外部表を定義します。
例17-8 DBMS_CLOUDを使用した外部表の作成
BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_TABLE(
table_name => 'CUSTOMERS_AVRO_XT',
credential_name => 'OCI_CRED',
file_uri_list => 'https://objectstorage.us-ashburn-1.oraclecloud.com/n/my_namespace/b/sales_data/o/customers_avro/*.avro',
format => '{"type": "avro"}'
);
END;
ノート:
列リストと列タイプを指定する必要はありません。列リストと列タイプは、ファイル自体から自動的に導出されます。親トピック: Avroファイルを使用した外部表の作成の例
17.4.3.3 Parquet固有のアクセス・パラメータ
一部のアクセス・パラメータは、Parquetファイル形式でのみ有効です。
この表では、1列目にParquetファイル形式に固有のアクセス・パラメータを示し、2列目でそのパラメータについて説明します。
ノート:
特定のファイル形式に固有のパラメータは、他のファイル形式には使用できません。表17-4 Parquet固有のアクセス・パラメータ
Parquet固有のアクセス・パラメータ | 説明 |
---|---|
|
これは、binaryを文字列として格納するかどうかを指定するブール型プロパティです。 有効な値: デフォルト: |
|
これは、 有効な値: デフォルト: |
親トピック: ORACLE_BIGDATA固有のアクセス・パラメータ
17.4.3.4 Avroファイルを使用した外部表の作成の例
次の例は、Oracle Cloud Object Storageに格納されているAvroファイルを使用して外部表を問い合せて作成する方法を示しています。
- インライン外部表を使用したParquet外部データの問合せ
この例では、データベース・オブジェクトを作成せずに外部Parquetファイルからデータを直接問い合せます。 - Parquetファイルを参照する外部表の作成
この例では、外部Parquetファイルを参照するデータベース・オブジェクトを作成します。 - DBMS_CLOUD参照Parquetファイルを使用した外部表の作成
この例では、DBMS_CLOUD.CREATE_EXTERNAL_TABLE
プロシージャを使用して、Parquetファイル形式の外部表を定義します。
親トピック: ORACLE_BIGDATA固有のアクセス・パラメータ
17.4.3.4.1 インライン外部表を使用したParquet外部データの問合せ
この例では、データベース・オブジェクトを作成せずに、外部Parquetファイルからデータを直接問い合せます。
例17-9 インライン外部表を使用した外部データの問合せ
SELECT *
FROM EXTERNAL
(
(
CUSTOMER_ID NUMBER,
FIRST_NAME VARCHAR2(64),
LAST_NAME VARCHAR2(64),
EMAIL VARCHAR2(64),
SIGNUP_DATE VARCHAR2(64)
)
TYPE ORACLE_BIGDATA
ACCESS PARAMETERS
(
com.oracle.bigdata.fileformat=parquet
com.oracle.bigdata.credential.name=OCI_CRED
)
LOCATION ('https://objectstorage.us-ashburn-1.oraclecloud.com/n/my_namespace/b/sales_data/o/customers_parquet/')
) t;
親トピック: Avroファイルを使用した外部表の作成の例
17.4.3.4.2 Parquetファイルを参照する外部表の作成
この例では、外部Parquetファイルを参照するデータベース・オブジェクトを作成します。
例17-10 外部表の作成
CREATE TABLE CUSTOMERS_PARQ_XT
(
CUSTOMER_ID NUMBER,
FIRST_NAME VARCHAR2(64),
LAST_NAME VARCHAR2(64),
EMAIL VARCHAR2(64),
SIGNUP_DATE VARCHAR2(64)
)
ORGANIZATION EXTERNAL
(
TYPE ORACLE_BIGDATA
ACCESS PARAMETERS
(
com.oracle.bigdata.fileformat=parquet
com.oracle.bigdata.credential.name=OCI_CRED
)
LOCATION ('https://objectstorage.us-ashburn-1.oraclecloud.com/n/my_namespace/b/sales_data/o/customers_parquet/')
);
親トピック: Avroファイルを使用した外部表の作成の例
17.4.3.4.3 Parquetファイルを参照するDBMS_CLOUDを使用した外部表の作成
この例では、DBMS_CLOUD.CREATE_EXTERNAL_TABLE
プロシージャを使用して、Parquetファイル形式の外部表を定義します。
例17-11 DBMS_CLOUDを使用した外部表の作成
BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_TABLE(
table_name => 'CUSTOMERS_PARQ_XT',
credential_name => 'OCI_CRED',
file_uri_list => 'https://objectstorage.us-ashburn-1.oraclecloud.com/n/my_namespace/b/sales_data/o/customers_parquet/*.parquet',
format => '{"type": "parquet"}'
);
END;
ノート:
列リストと列タイプを指定する必要はありません。列リストと列タイプは、ファイル自体から自動的に導出されます。親トピック: Avroファイルを使用した外部表の作成の例
17.4.3.5 テキスト・ファイルおよびCSVに 固有のアクセス・パラメータ
テキスト・ファイルとカンマ区切り値(csv
)ファイル形式は、Hiveテキスト・ファイル形式に似ています。
テキスト・ファイルおよびCSVファイル形式は、デリミタ付きファイルからテキストおよびcsv
データを読み取ります。ORACLE_BIGDATA
は、行の終了文字(\n
、\r
または\r\n
)を自動的に検出します。デフォルトでは、ファイル内のフィールドはカンマで区切られており、ファイル内のフィールドの順序は外部表内の列の順序と一致すると想定されています。
ノート:
特定のファイル形式に固有のパラメータは、他のファイル形式には使用できません。表17-5 テキスト・ファイルおよびCSVに固有のアクセス・パラメータ
Textfileに固有のアクセス・パラメータ | 説明 |
---|---|
|
ファイルの読取りに使用する入出力(I/O)バッファのサイズを指定します。値は、バッファのサイズ(KB単位)です。また、バッファ・サイズはレコードで許容される最大サイズでもあります。フォーマット・リーダーは、この値より大きいレコードを検出すると、エラーを返します。 デフォルト: |
|
有効な値: デフォルト: 例: |
|
ソース・ファイルの文字セットを指定します。 有効な値: デフォルト: 例: |
|
このパラメータを指定した場合、コードは、指定された圧縮スキームに従ってデータを解凍しようとします。
有効な値: デフォルト: 圧縮なし
|
|
行でデータ型の変換エラーが発生した場合、関連する列をnullとして格納するか、その行を拒否します。 有効な値: デフォルト: 例: |
|
フィールドの値を示すために使用する文字が |
|
フィールド値を区切るために使用する文字を指定します。文字値は一重引用符で囲む必要があります。例: デフォルト: |
|
埋込みフィールドの終了記号またはフィールド値の行の終了文字をエスケープするために使用する文字を指定します。文字値は一重引用符で囲む必要があります。例: |
|
ソース・ファイル内の日付書式を指定します。書式オプション
デフォルト: 例: |
|
データ・ファイルのフィールドの順序を指定します。値は、データ型がオプションであるという1つの例外を除き、 |
|
trueに設定すると、空白行は無視されます。 有効な値: デフォルト: 例: |
|
見つからない列がNULLとして格納されます。 有効な値: デフォルト: 例: |
com.oracle.bigdata.json.ejson |
拡張JSONを有効にするかどうかを指定します。 有効な値: デフォルト: 例: |
com.oracle.bigdata.json.path |
表の行にマップされる一連のネストされたJSON値を識別するJSONパス式。 有効な値: 文字列プロパティ デフォルト: 例: |
com.oracle.bigdata.json.unpackarrays |
JSONファイルで見つかった配列のボックスを解除するかどうかを指定します。ファイルはJSONオブジェクトの配列で構成されます。ファイル全体が文法的に有効なJSONドキュメントです。このようなファイルの例は、 有効な値: デフォルト: 例: |
|
フィールドの引用符文字を指定します。指定した場合、引用符文字はロード時に削除されます。 有効な値: 文字 デフォルト: NULL (引用符なしを意味します) 例: |
|
指定した数の行が拒否された後で、操作をエラー終了します。これは、変換エラーでレコードが拒否される場合にのみ適用されます。 有効な値: 数値 デフォルト: 例: |
com.oracle.bigdata.removequotes |
ソース・ファイル内のフィールドを囲む引用符を削除します。 有効な値: デフォルト: 例: |
|
ファイルの先頭からスキップする行数を指定します。 有効な値: 数値 デフォルト: 例: |
|
ソース・ファイル内のタイムスタンプ書式を指定します。書式オプション
有効な値: デフォルト: 例: |
|
ソース・ファイル内のローカル・タイムゾーン付きタイムスタンプ書式を指定します。書式オプション
有効な値: デフォルト: 例: |
|
ソース・ファイル内のタイムゾーン付きタイムスタンプ書式を指定します。書式オプション
有効な値: デフォルト: 例: |
|
フィールドの先頭と末尾の空白を切り捨てる方法を指定します。 有効な値: デフォルト: 例: |
|
ファイルのデータがフィールドに対して長すぎる場合、このオプションでは、行を拒否したりフィールドをNULLに設定したりするかわりに、フィールドの値を切り捨てます。 有効な値: デフォルト: 例: |
親トピック: ORACLE_BIGDATA固有のアクセス・パラメータ
17.4.3.6 外部表の作成例
次の例は、Oracle Cloud Object Storageに格納された表の作成および外部CSVデータの問合せの様々な方法を示しています。
- CSVファイルを参照する外部表の作成
この例では、外部CSVファイルを参照するデータベース・オブジェクトを作成します。 - DBMS_CLOUDを使用したCSVファイルを使用した外部表の作成
この例では、DBMS_CLOUD.CREATE_EXTERNAL_TABLE
プロシージャを使用して、列およびフィールドの詳細仕様を含む外部表を定義します。
親トピック: ORACLE_BIGDATA固有のアクセス・パラメータ
17.4.3.6.1 CSVファイルを参照する外部表の作成
この例では、外部CSVファイルを参照するデータベース・オブジェクトを作成します。
例17-12 外部表の作成
CREATE TABLE CUSTOMERS_CSV_XT
(
CUSTOMER_ID NUMBER,
FIRST_NAME VARCHAR2(64),
LAST_NAME VARCHAR2(64),
EMAIL VARCHAR2(64),
SIGNUP_DATE DATE
)
ORGANIZATION EXTERNAL
(
TYPE ORACLE_LOADER
DEFAULT DIRECTORY DATA_PUMP_DIR
ACCESS PARAMETERS
(
RECORDS DELIMITED BY NEWLINE
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
MISSING FIELD VALUES ARE NULL
SKIP 1
(
CUSTOMER_ID CHAR(10),
FIRST_NAME CHAR(64),
LAST_NAME CHAR(64),
EMAIL CHAR(64),
SIGNUP_DATE DATE 'YYYY-MM-DD'
)
)
LOCATION ('customers.csv')
)
REJECT LIMIT UNLIMITED;
親トピック: 外部表の作成例
17.4.3.6.2 DBMS_CLOUDを使用したCSVファイルによる外部表の作成
この例では、DBMS_CLOUD.CREATE_EXTERNAL_TABLE
プロシージャを使用して、列およびフィールドの詳細仕様を含む外部表を定義します。
例17-13 DBMS_CLOUDを使用した外部表の作成
BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_TABLE(
table_name => 'CUSTOMERS_CSV_XT',
credential_name => 'OCI_CRED',
file_uri_list => 'https://objectstorage.us-ashburn-1.oraclecloud.com/n/my_namespace/b/sales_data/o/customers_csv/*.csv',
column_list => 'CUSTOMER_ID NUMBER,
FIRST_NAME VARCHAR2(256),
LAST_NAME VARCHAR2(256),
EMAIL VARCHAR2(256),
SIGNUP_DATE DATE',
field_list => 'CUSTOMER_ID CHAR,
FIRST_NAME CHAR(256),
LAST_NAME CHAR(256),
EMAIL CHAR(256),
SIGNUP_DATE CHAR date_format DATE MASK "YYYY-MM-DD"',
format => '{
"type": "csv",
"delimiter": ",",
"skipheaders": 1
}'
);
END;
/
親トピック: 外部表の作成例