18 ORACLE_BIGDATAアクセス・ドライバ
ORACLE_BIGDATA
アクセス・ドライバを使用すると、Oracle Databaseの表に格納されたデータであるかのように、オブジェクト・ストアに格納されているデータにアクセスできます。
ORACLE_BIGDATA
は、現在、Oracleオブジェクト・ストア、Amazon S3およびAzure Blob Storageへのアクセスをサポートしています。このドライバを使用すると、テストや小規模なデータ・セットに有用なローカル・データを問い合せることもできます。
- ORACLE_BIGDATAアクセス・ドライバの使用
ORACLE_BIGDATA
ドライバを使用すると、外部オブジェクト・ストアにあるデータにアクセスできます。 - オブジェクト・ストアの資格証明の作成方法
資格証明オブジェクトを使用すると、外部オブジェクト・ストアにアクセスできます。 - オブジェクト・ストアのアクセス・パラメータ
これらのアクセス・パラメータを使用すると、オブジェクト・ストアに存在するファイルに関するプロパティを指定できます。
親トピック: 外部表
18.1 Using the ORACLE_BIGDATAアクセス・ドライバ
ORACLE_BIGDATA
ドライバを使用すると、外部オブジェクト・ストアにあるデータにアクセスできます。
オブジェクト・ストア内のデータにアクセスするには、次の2つのステップが必要です。
- 資格証明オブジェクトを作成します(パブリック・バケットには不要です)。
資格証明オブジェクトには、オブジェクト・ストア資格証明が暗号化された形式で格納されます。資格証明によって指定されたアイデンティティは、オブジェクト・ストアの基礎となるデータにアクセスできる必要があります。
- インライン外部表がサポートされています。これらの外部表は、単に問合せの一部として表されます。
インライン外部表を使用して、外部表または問合せを作成します。アクセス・ドライバ・タイプは
ORACLE_BIGDATA
である必要があります。CREATE TABLE
文では、オブジェクト・ストアにアクセスする認証を提供する資格証明オブジェクトを参照する必要があります。作成する表には、オブジェクト・ストア内のファイルへのURIを提供するLOCATION
句も必要です。パブリック・バケットの場合、
CREDENTIAL
は必要ありません。
親トピック: ORACLE_BIGDATAアクセス・ドライバ
18.2 オブジェクト・ストアの資格証明の作成方法
資格証明オブジェクトを使用すると、外部オブジェクト・ストアにアクセスできます。
資格証明オブジェクトを作成するには、DBMS_CREDENTIAL.CREATE_CREDENTIAL
またはDBMS_CLOUD.CREATE_CREDENTIAL
を使用します。このオブジェクトには、オブジェクト・ストアにアクセスするために必要なユーザー名とパスワード情報が含まれています。この資格証明パスワードは、クラウド・サービス内のユーザー名に対して作成された認証トークン(認証トークン)と一致する必要があります。
ノート:
DBMS_CLOUD
パッケージをインストールしておく必要があります。
- DBMS_CREDENTIAL.CREATE_CREDENTIALを使用した資格証明オブジェクトの作成
DBMS_CLOUD
のサブプログラムDBMS_CREDENTIAL.CREATE_CREDENTIAL
を使用すると、外部オブジェクト・ストアへのアクセスを認証できます。 - DBMS_CLOUD.CREATE_CREDENTIALを使用した資格証明オブジェクトの作成
DBMS_CLOUD
のサブプログラムDBMS_CLOUD.CREATE_CREDENTIAL
を使用すると、外部オブジェクト・ストアへのアクセスを認証できます。 - オブジェクト・ストレージのLocation句の定義方法
これらの例を使用して、ソースに応じてオブジェクト・ストアURIを指定する方法を確認します。 - ORACLE_BIGDATAアクセス・パラメータの理解
ORACLE_BIGDATA
を使用するには、データにアクセスして解析する方法を示す情報をアクセス・パラメータに指定します。
親トピック: ORACLE_BIGDATAアクセス・ドライバ
18.2.1 DBMS_CREDENTIAL.CREATE_CREDENTIALを使用した資格証明オブジェクトの作成
DBMS_CLOUD
のサブプログラムDBMS_CREDENTIAL.CREATE_CREDENTIAL
を使用すると、外部オブジェクト・ストアへのアクセスを認証できます。
次の例では、DBMS_CREDENTIAL.CREATE_CREDENTIAL
の使用方法を示します。
例18-1 クラウド・サービス資格証明
次の例では、my_credential
はOracle Cloud Infrastructureユーザー名、username
はアカウント・ユーザー名、password
はOracle Cloud Infrastructure認証トークンです。
execute dbms_credential.create_credential(
credential_name => 'my_credential',
username => 'username',
password => 'password'
);
例18-2 ネイティブのOracle Cloud Infrastructure資格証明
次の例では、my_credential
はOracle Cloud Infrastructureユーザー名、user_ocid
はOracle Cloud Identifier (OCID)、tenancy_ocid
はOracle Cloudテナンシ識別子、private_key
はSSH秘密キー、fingerprint
は公開キー・フィンガープリントです。
execute dbms_credential.create_credential(
credential_name => 'my_credential',
username => 'user_ocid',
password => '',
key => '{"tenancy_ocid":"tenancy_ocid","private_key":"private_key","fingerprint":"fingerprint"}');
資格証明を作成した後、パラメータcom.oracle.bigdata.credential.nameで資格証明オブジェクト名を指定します。このリリースの時点では、資格証明は表と同じスキーマ内にある必要があります。
関連トピック
親トピック: オブジェクト・ストアの資格証明の作成方法
18.2.2 DBMS_CLOUD.CREATE_CREDENTIALを使用した資格証明オブジェクトの作成
DBMS_CLOUD
のサブプログラムDBMS_CLOUD.CREATE_CREDENTIAL
を使用すると、外部オブジェクト・ストアへのアクセスを認証できます。
次の例では、DBMS_CLOUD.CREATE_CREDENTIAL
の使用方法を示します。
ノート:
資格証明パラメータは、OCIリソース・プリンシパル、Azureサービス・プリンシパル、Amazonリソース名(ARN)またはGoogleサービス・アカウントにはできません。例18-3 ネイティブのOracle Cloud Infrastructure資格証明
次の例では、my_credential
はOracle Cloud Infrastructureユーザー名、password
はOracle Cloud Infrastructure認証トークン、user_ocid
はOracle Cloud Identifier (OCID)、tenancy_ocid
はOracle Cloudテナンシ識別子、private_key
はSSH秘密キー、fingerprint
は公開キー・フィンガープリントです。
execute dbms_cloud.create_credential DBMS_CLOUD.CREATE_CREDENTIAL(
credential_name => 'my_credential',
username => 'user_ocid@example.com',
password => 'password'
key => '{"tenancy_ocid":"tenancy_ocid","private_key":"private_key","fingerprint":"fingerprint"}');
資格証明を作成した後、パラメータcom.oracle.bigdata.credential.nameで資格証明オブジェクト名を指定します。このリリースの時点では、資格証明は表と同じスキーマ内にある必要があります。
関連トピック
親トピック: オブジェクト・ストアの資格証明の作成方法
18.2.3 オブジェクト・ストレージのLocation句の定義方法
これらの例を使用して、ソースに応じてオブジェクト・ストアURIを指定する方法を確認します。
LOCATION
は、オブジェクト・ストア内のデータを指すURIです。現在サポートされているオブジェクト・ストアは、Oracleオブジェクト・ストア、Amazon S3およびAzure Blob Storageです。
この例では次の変数が使用されています。
region
– テナンシのリージョンhost
– サーバー・ホスト名port
– ホスト上でリスニングしている、サービスに割り当てられたポート番号container
– コンテナ・リソースの名前namespace
– リージョン内のネームスペースbucket
– リソースのグローバルに一意な名前objectname
– バケット内のオブジェクトの一意の識別子filename
– オブジェクト・ストアのファイル名
場所を定義するには、次の前提条件に注意してください。
-
資格証明オブジェクトは、プライベート・オブジェクト・ストアへのアクセスのために必要です。資格証明パラメータを省略する場合は、オブジェクトがパブリック・バケットにある必要があります。
この資格証明に関連付けられているユーザーIDには、オブジェクト・ストレージからデータを読み取るためのアクセス権が必要です。
-
ローカル・ストレージを使用してオブジェクト・ストレージ内のデータへのアクセスをテストする場合は、
ORACLE_LOADER
データ・ソースの場合と同じように、その場所のOracleディレクトリ・オブジェクトを指定する必要があります。
例18-4 ネイティブのOracle Cloud Infrastructureオブジェクト・ストレージ
location ('https://objectstorage.region.oraclecloud.com/n/namespace/b/bucket/o/objectname')
例18-5 Oracle Cloud Infrastructureオブジェクト・ストレージ
location ('https://swiftobjectstorage.region.oraclecloud.com/v1/namespace/bucket/filename'
例18-6 ホストスタイルのURI形式
location ('https://bucket.host/objectname')
例18-7 パススタイルのURI形式
location ('https://host/bucket/objectname')
たとえば、AmazonパススタイルのURIの形式は次のとおりです。
location ('https://s3-us-west-2.amazonaws.com/adwc/filename')
例18-8 Azure BLOB Storageの場所の形式
location ('https://host:port/container/blob')
たとえば、AzureパススタイルのURIの形式は次のとおりです。
location ('https://exampleacount.blob.core.windows.net/examplecontainer/exampleblob')
親トピック: オブジェクト・ストアの資格証明の作成方法
18.2.4 ORACLE_BIGDATAアクセス・パラメータの理解
ORACLE_BIGDATA
を使用するには、データにアクセスして解析する方法を示す情報をアクセス・パラメータに指定します。
csv
、textfile
、avro
、parquet
またはorc
のいずれかの値を使用してファイル形式タイプを定義します。com.oracle.bigdata.fileformat=[csv|textfile|avro|parquet|orc]
ORACLE_BIGDATA
を使用すると、テストや単純な問合せ目的でローカル・ファイルにアクセスすることもできます。この場合、LOCATION
フィールド値はORACLE_LOADER
に使用する値と同じです。LOCATION
フィールドでは、Oracleディレクトリ・オブジェクトの後にファイルの名前を続けることができます。ローカル・ファイルの場合、資格証明オブジェクトは必須ではありません。ただし、ファイルにアクセスするには、ディレクトリ・オブジェクトに対する権限が必要です。
18.3 オブジェクト・ストアのアクセス・パラメータ
これらのアクセス・パラメータを使用すると、オブジェクト・ストアに存在するファイルに関するプロパティを指定できます。
- プロパティを指定するための構文ルール
プロパティは、SQLCREATE TABLE
のACCESS PARAMETERS
句および構成ファイル内に、キーワード/値のペアを使用して設定します。 - com.oracle.bigdata.fileformat
ORACLE_HDFS
によって生成されたHive表のROW FORMAT
句に基づいて、データ・ソースの行形式を説明します。 - ORACLE_BIGDATAアクセス・パラメータ
すべてのファイル形式に共通するアクセス・パラメータのセットがあります。特定のファイル形式に固有のパラメータもあります。 - GATHER_EXTERNAL_TABLE_STATS
これは、外部表(ORACLE_HDFS
、ORACLE_HIVE
、ORACLE_BIGDATA
)の統計を手動で収集するためのPL/SQLインタフェースです。
親トピック: ORACLE_BIGDATAアクセス・ドライバ
18.3.1 プロパティを指定するための構文ルール
プロパティは、SQL CREATE TABLE
のACCESS PARAMETERS
句および構成ファイル内に、キーワード/値のペアを使用して設定します。
構文は次のルールに従う必要があります。
-
各キーワード/値のペアの形式は、キーワード、コロンまたは等号と、値です。有効なキーワード/値のペアを次に示します。
keyword=value keyword:value
値は、セパレータの後の最初の非空白文字から行末までのすべてになります。セパレータと値の間の空白は無視されます。値の後の空白は保持されます。
-
プロパティ定義は1行または複数行にできます。
-
行の終了文字は、LF、改行または改行とLFの組合せです。
-
1つのプロパティ定義が複数行にわたる場合は、最終行以外の行の終了文字の前にバックスラッシュ(エスケープ文字)を付けます。この例では、
Keyword1
プロパティの値はValue part 1 Value part 2 Value part 3
です。Keyword1= Value part 1 \ Value part 2 \ Value part 3
-
先頭の空白の各物理行を削除して行を連結することで、論理行を作成できます。パーサーによって、プロパティ名および値が論理行から抽出されます。
-
文字の前に代入を示すバックスラッシュ(エスケープ文字)を付けることで、プロパティ名またはプロパティ値に特殊文字を埋め込むことができます。次の表で、特殊文字について説明します。
表18-1 プロパティの特殊文字
エスケープ・シーケンス | 文字 |
---|---|
|
バックスペース( |
|
水平タブ( |
|
LF ( |
|
改ページ( |
|
改行( |
|
二重引用符( |
|
一重引用符( |
|
バックスラッシュ( 複数のバックスラッシュが行末にある場合、パーサーは奇数のバックスラッシュに対してのみ値を次の行に継続します。 |
|
2バイト、ビッグ・エンディアンのUnicodeコード・ポイント。 1文字に2コード・ポイント(4バイト)が必要な場合、パーサーは2番目のコード・ポイントに |
親トピック: オブジェクト・ストアのアクセス・パラメータ
18.3.2 com.oracle.bigdata.fileformat
ORACLE_HDFS
によって生成されたHive表のROW FORMAT
句に基づいて、データ・ソースの行形式を説明します。
デフォルト値
TEXTFILE
セマンティクス
ORC
最適化された行列ファイル形式
PARQUET
列指向、バイナリ・ファイル形式
RCFILE
レコード列ファイル形式
SEQUENCEFILE
圧縮ファイル形式
TEXTFILE
プレーン・テキスト・ファイル形式
INPUTFORMAT
データ・ファイルからレコードを抽出できるJavaクラスを識別します。
OUTPUTFORMAT
出力レコードを目的の形式に設定できるJavaクラスを識別します。
親トピック: オブジェクト・ストアのアクセス・パラメータ
18.3.3 ORACLE_BIGDATAアクセス・パラメータ
すべてのファイル形式に共通するアクセス・パラメータのセットがあります。特定のファイル形式に固有のパラメータもあります。
共通のアクセス・パラメータ
次の表に、ORACLE_BIGDATA
を介してアクセスされるすべてのファイル形式に共通するパラメータを示します。1列目には、すべてのデータ・ファイル・タイプに共通する各アクセス・パラメータを示します。2列目は各パラメータの説明です。
表18-2 共通のアクセス・パラメータ
共通のアクセス・パラメータ | 説明 |
---|---|
|
オブジェクト・ストア内のデータ・ファイルにアクセスするときに使用する資格証明オブジェクトを指定します。 このアクセス・パラメータは、オブジェクト・ストアへのアクセスに必要です。ディレクトリ・オブジェクトを介したファイルへのアクセスの場合や、パブリック・バケットに格納されているデータの場合は必要ありません。 資格証明に指定する名前は、表の所有者と同じスキーマにある資格証明オブジェクトの名前である必要があります。この表に対する 資格証明オブジェクトを作成するには、
DBMS_CREDENTIAL PL/SQL パッケージのDBMS_CREDENTIAL.CREATE_CREDENTIAL を使用します。
|
|
ファイルの形式を指定します。このパラメータの値によって、ファイルを処理するリーダーが識別されます。各リーダーは追加のアクセス・パラメータをサポートでき、それらは他のリーダーでサポートされるものもサポートされないものもあります。 有効な値:
parquet 、orc 、textfile 、avro 、csv 、jsondoc 、jsontable
デフォルト: |
|
ログ・メッセージをログ・ファイルに書き込むかどうかを指定します。 有効な値: デフォルト: |
|
パラレル問合せコーディネータによって作成されるログ・ファイルの名前を指定します。このパラメータは、 |
|
問合せの実行時に作成されるログ・ファイルの名前を指定します。この値は、 有効な値: デフォルト: |
Avro固有のアクセス・パラメータ
共通のアクセス・パラメータの他に、Avroファイル形式でのみ有効なパラメータもあります。この表では、1列目にAvroファイル形式に固有のアクセス・パラメータを示し、2列目でそのパラメータについて説明します。現時点では、Avro固有のパラメータは1つのみです。
表18-3 Avro固有のアクセス・パラメータ
Avro固有のパラメータ | 説明 |
---|---|
|
バイト配列に格納されている10進数の表現を指定します。 有効な値: デフォルト: このパラメータを使用しない場合、Avroの10進数列は、バイト配列に格納されているのはAvro仕様で定義されているとおりの値の数値表現(デフォルトは |
Parquet固有のアクセス・パラメータ
一部のアクセス・パラメータは、Parquetファイル形式でのみ有効です。この表では、1列目にParquetファイル形式に固有のアクセス・パラメータを示し、2列目でそのパラメータについて説明します。
表18-4 Parquet固有のアクセス・パラメータ
Parquet固有のアクセス・パラメータ | 説明 |
---|---|
|
これは、binaryを文字列として格納するかどうかを指定するブール型プロパティです。 有効な値: デフォルト: |
|
これは、 有効な値: デフォルト: |
テキスト・ファイルおよびCSVに固有のアクセス・パラメータ
テキスト・ファイルとカンマ区切り値(csv
)ファイル形式は、Hiveテキスト・ファイル形式に似ています。これは、デリミタ付きファイルからテキスト・データおよびcsv
データを読み取ります。ORACLE_BIGDATA
は、行の終了文字(\n
、\r
または\r\n
)を自動的に検出します。デフォルトでは、ファイル内のフィールドはカンマで区切られており、ファイル内のフィールドの順序は外部表内の列の順序と一致すると想定されています。
例18-9 CSVデータ・ファイル
これは単純なcsv
の例です。このデータ・ファイルにはカンマ区切りの値が含まれ、オプションで引用符で囲まれています。
–----Source csv data in t.dat
t.dat:
1,"abc",
2,xyx,
–---------Create an external table over the csv source data in t.dat
CREATE TABLE t
(
c0 number,
c1 varchar2(20)
)
ORGANIZATION external
(
TYPE oracle_bigdata
DEFAULT DIRECTORY DMPDIR
ACCESS PARAMETERS
(
com.oracle.bigdata.fileformat=csv
)
location
(
't.dat'
)
)REJECT LIMIT 1
;
–------Select data from external table
select c0, c1 from t;
C0 C1
---- -----
1 abc
2 xyz
例18-10 CSVデータ・ファイル
この例では、フィールド・セパレータが'|
'であるcsv
データ・ソースを使用して外部表を作成する方法を示します。データ・ファイルはgzip
で圧縮され、空白にNULLが使用され、日付書式を含みます。
–----The source csv data in t.dat
t.dat:
1| |
2|Apr-99-30|
–------Create an external table over the csv data source in t.dat
CREATE TABLE t(
c0 number,
c1 date
)
ORGANIZATION external
(
TYPE oracle_bigdata
DEFAULT DIRECTORY DMPDIR
ACCESS PARAMETERS
(
com.oracle.bigdata.fileformat=textfile
com.oracle.bigdata.compressiontype=gzip
com.oracle.bigdata.csv.rowformat.separatorcharacter='|'
com.oracle.bigdata.blankasnull=true
com.oracle.bigdata.dateformat="MON-RR-DD HH:MI:SS"
)
location
(
't.dat.gz'
)
)REJECT LIMIT 1
;
--Select csv data from external table
QL> select c0, c1 from t;
C0 C1
------ ---------
1
2 30-APR-99
例18-11 JSONデータ・ファイル - 列へのJSON値のマップ
この方法は、単純なJSONドキュメントに適しています。行は主に、複数のキー/値ペアを持つ単一のオブジェクトで構成されることが想定されています。通常の表と同様に、列のデータ型はファイルにある値のデータ型と一致する必要があります。ドキュメントにネストされた値(複雑な値)が含まれている場合、パーサーは値をJSONドキュメントとして出力します。ただし、これは文字列として格納されます。ユーザーは、アクセス・パラメータcom.oracle.bigdata.fileformat=jsontable
を介してこのマッピング方式を指定します。
このマッピング・スキームの例として、次のUC1ファイルを考えてみます:
{"ts":1603802918441,"level":"DEBUG1","component":"resp","cell-id":"cloudsql-v1-12"}
{"ts":1603802918442,"level":"DEBUG2","component":[{"tst":1},{"tst":2},{"tst":3}],"cellid":"cloudsql-v1-12"}
{"ts":1603802918443,"level":"DEBUG3","component":"resp","cell-id":"cloudsql-v1-12"}
{"ts":1603802918444,"level":"DEBUG4","component":"resp","cell-id":"cloudsql-v1-12"}
次の外部表を作成できます:
CREATE TABLE logs(
ts number(20),
lvl varchar(35)
component varchar(50),
cellid varchar2(20)
) ORGANIZATION EXTERNAL
(TYPE ORACLE_BIGDATA
DEFAULT DIRECTORY default_dir
ACCESS PARAMETERS
(com.oracle.bigdata.fileformat = jsontable)
location ('nested.json'));
その後、次のように表を問い合せることができます:
SQL> Select * from logs;
TS LVL COMPONENT CELLID
---------- --------- -------------------------------- -----------------
1.6038E+12 DEBUG1 resp cloudsql-v1-12
1.6038E+12 DEBUG2 [{"tst":1},{"tst":2},{"tst":3}] cloudsql-v1-12
1.6038E+12 DEBUG3 resp cloudsql-v1-12
1.6038E+12 DEBUG4 resp cloudsql-v1-12
4 rows selected.
行2のコンポーネント列の値は、JSONドキュメントとして表されることに注意してください。すでに説明したように、これはvarcharとしてv1に格納されます。通常、データ型マッピング方式は、表DDLで定義されたデータ型に依存します。データ型の不一致がある場合、値は拒否され、処理が続行されます。たとえば、次のシナリオを考えてみます。
{"Customer ID", 123456}
{"Customer ID", "123456"}
{"Customer ID", true}
表の列が数値として定義されている場合、前述の行3は変換エラーを生成し、値を拒否します。ただし、これは行2の引用符で囲まれた値に対して回復可能性があります。
例18-12 JSONデータ・ファイル - 行全体が単一の列にマッピングされます。
このマッピング方式では、JSONドキュメント全体がJSONタイプの単一の列にマッピングされます。ユーザーは、アクセス・パラメータcom.oracle.bigdata.fileformat=jsondoc
を介してこのマッピング方式を指定します。
このマッピング・スキームの例として、次のUC1ファイルを考えてみます:
{"ts":1603802918441,"level":"DEBUG1","component":"resp","cell-id":"cloudsql-v1-12"}
{"ts":1603802918442,"level":"DEBUG2","component":[{"tst":1},{"tst":2},{"tst":3}],"cellid":"cloudsql-v1-12"}
{"ts":1603802918443,"level":"DEBUG3","component":"resp","cell-id":"cloudsql-v1-12"}
{"ts":1603802918444,"level":"DEBUG4","component":"resp","cell-id":"cloudsql-v1-12"}
次の外部表を作成できます:
CREATE TABLE logs (data JSON)
ORGANIZATION EXTERNAL
(TYPE ORACLE_BIGDATA
DEFAULT DIRECTORY default_dir
ACCESS PARAMETERS
(com.oracle.bigdata.fileformat = jsondoc)
location ('nested.json'));
その後、外部表を問い合せることができます:
SQL> select l.doc.cell-id, l.doc.component[1].tst
from logs l
where l.doc.ts = 1603802918442;
cell-id tst
--------------------------------
cloudsql-v1-12 2
前述の例では、2番目の行のコンポーネントおよびセルID値(TS = 1603802918442)を選択しました。行2のコンポーネント値が配列であることを確認します。次に、配列の2番目の項目(つまり、COMPONENT[1])を問い合せます。
例18-13 JSONデータ・ファイル
{"id":"72","name":"George","lat":40.76727216,"lon":-73.99392888,"segments":["wealthy","middle-aged"],"age":45}
{"id":"79","name":"Lucy","lat":40.71911552,"lon":-74.00666661,"segments":["married","yes"],"age":33}
— Create the external table over Json source
CREATE TABLE people (
data json
)
ORGANIZATION EXTERNAL (
TYPE ORACLE_BIGDATA
ACCESS PARAMETERS(
com.oracle.bigdata.fileformat=jsondoc
)
LOCATION ('https://swftobjectstorage.us-ashburn-1.oraclecloud.com/n/mytenant/b/people/o/data.json')
)
REJECT LIMIT UNLIMITED;
–---Select data from external table
select s.data.id,
s.data.name,
s.data.segments[0]
from people s;
id Name segments[0]
–--- –---- –-----------------------------------
72 George wealthy
79 Lucy married
テキスト・ファイル、CSV固有およびJSON固有のアクセス・パラメータ
表18-5 テキスト・ファイルおよびCSVに固有のアクセス・パラメータ
テキスト・ファイルに固有のアクセス・パラメータ | 説明 |
---|---|
|
ファイルの読取りに使用する入出力(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ドキュメントです。このようなファイルの例は、[{"a":1}、{"a":2}、{"a":3}]です。 有効な値: デフォルト: 例: |
|
フィールドの引用符文字を指定します。指定した場合、引用符文字はロード時に削除されます。 有効な値: 文字 デフォルト: NULL (引用符なしを意味します) 例: |
|
指定した数の行が拒否された後で、操作をエラー終了します。これは、変換エラーでレコードが拒否される場合にのみ適用されます。 有効な値: 数値 デフォルト: 例: |
com.oracle.bigdata.removequotes |
ソース・ファイル内のフィールドを囲む引用符を削除します。 有効な値: デフォルト: 例: |
|
ファイルの先頭からスキップする行数を指定します。 有効な値: 数値 デフォルト: 例: |
|
ソース・ファイル内のタイムスタンプ書式を指定します。書式オプション
有効な値: デフォルト: 例: |
|
ソース・ファイル内のローカル・タイムゾーン付きタイムスタンプ書式を指定します。書式オプション
有効な値: デフォルト: 例: |
|
ソース・ファイル内のタイムゾーン付きタイムスタンプ書式を指定します。書式オプション
有効な値: デフォルト: 例: |
|
フィールドの先頭と末尾の空白を切り捨てる方法を指定します。 有効な値: デフォルト: 例: |
|
ファイルのデータがフィールドに対して長すぎる場合、このオプションでは、行を拒否したりフィールドをNULLに設定したりするかわりに、フィールドの値を切り捨てます。 有効な値: デフォルト: 例: |
親トピック: オブジェクト・ストアのアクセス・パラメータ
18.3.4 GATHER_EXTERNAL_TABLE_STATS
これは、外部表(ORACLE_HDFS
、ORACLE_HIVE
、ORACLE_BIGDATA
)の統計を手動で収集するためのPL/SQLインタフェースです。
動作とパラメータはdbms_stats.gather_table_stats
と同じですが、表の所有者はプロシージャを実行しているセッション・ユーザーである必要があり、このプロシージャを使用して収集された統計は再起動後も保持される点が異なります。このプロシージャは、Hiveから自動的に同期化される外部表では使用できません。
GATHER_TABLE_STATSプロシージャを参照してください。
構文
PROCEDURE gather_external_table_stats( tabname varchar2, partname varchar2 default null, estimate_percent number default dbms_stats.DEFAULT_ESTIMATE_PERCENT, block_sample boolean default FALSE, method_opt varchar2 default dbms_stats.DEFAULT_METHOD_OPT, degree number default dbms_stats.DEFAULT_DEGREE_VALUE, granularity varchar2 default dbms_stats.DEFAULT_GRANULARITY, cascade boolean default dbms_stats.DEFAULT_CASCADE, stattab varchar2 default null, statid varchar2 default null, statown varchar2 default null, no_invalidate boolean default dbms_stats.to_no_invalidate_type(dbms_stats.get_param('NO_INVALIDATE')), stattype varchar2 default 'DATA', force boolean default FALSE, options varchar2 default dbms_stats.DEFAULT_OPTIONS )
PROCEDURE gather_external_table_stats(
tabname varchar2,
partname varchar2 default null,
estimate_percent number default dbms_stats.DEFAULT_ESTIMATE_PERCENT,
block_sample boolean default FALSE,
method_opt varchar2 default dbms_stats.DEFAULT_METHOD_OPT,
degree number default dbms_stats.DEFAULT_DEGREE_VALUE,
granularity varchar2 default dbms_stats.DEFAULT_GRANULARITY,
cascade boolean default dbms_stats.DEFAULT_CASCADE,
stattab varchar2 default null,
statid varchar2 default null,
statown varchar2 default null,
no_invalidate boolean default dbms_stats.to_no_invalidate_type(dbms_stats.get_param('NO_INVALIDATE')),
stattype varchar2 default 'DATA',
force boolean default FALSE,
options varchar2 default dbms_stats.DEFAULT_OPTIONS
)
親トピック: オブジェクト・ストアのアクセス・パラメータ