4 クラウド・ストレージ・コマンドの使用

SQLclリリース20.3以降では、クラウド・ストレージ(cs)コマンドを使用して、デフォルトのクラウド・ストレージURLを設定し、コンパートメント、バケットおよびオブジェクトをリストし、クラウド・ストレージ内のオブジェクトの内容の一部を表示します。

Oracle Cloud Infrastructure Object StorageまたはOracle SWIFT Object Storageを使用して、クラウド・ストレージ内のオブジェクトにアクセスできます。

OCILOADおよびUNLOADコマンドは、指定されたデフォルトURLをサポートします。

トピック

4.1 前提条件

クラウド・ストレージ・コマンドを使用するには、最初に認証およびアクセス用のOCIプロファイルを設定する必要があります。

必要なSSHキーの設定方法およびOracle Cloud Infrastructureソフトウェア開発キットの構成方法の詳細は、Oracle Cloud Infrastructureドキュメント設定および前提条件を参照してください。

次の点に注意してください:

  • RSAキー・ペアを、PEM形式(2048ビット以上が必要)およびパスフレーズなしで生成します。このkey_fileをプロファイルで使用します。

  • 相対パスはSQLclの起動ディレクトリに基づいて解決されるため、構成ファイル内で相対パスを使用しないでください。使用した場合、key_fileが見つからない可能性があります。

  • Windowsでkey_fileのパスを指定するには、単一の円記号(\)のかわりに二重の円記号(\\)を使用します。

OCI構成ファイル(~/.oci/config)に含まれるプロファイルのリストを表示するには、次のように入力します。

oci profile

プロファイルをdemoとして設定するには、次のように入力します。

oci profile demo

4.2 クラウド・ストレージ・コマンドのオプション

SQLclでcloudstoragecloud_storageまたはcsを使用して、クラウド・ストレージ・コマンドを起動できます。

SQLclのクラウド・ストレージ・コマンド・オプションのリストを表示するには、次のように入力します。

help cs
コマンド・オプションは次のとおりです。
  • cs [ url ] <url>: デフォルトのクラウド・ストレージURLを設定します。URLには、ホストとオプションでネームスペース、バケットおよびオブジェクトが含まれている必要があります。

    Example:
    --host
    cs https://objectstorage.us-ashburn-1.oraclecloud.com
    --namespace 
    cs https://objectstorage.us-ashburn-1.oraclecloud.com/n/test
    –-bucket
    cs https://objectstorage.us-ashburn-1.oraclecloud.com/n/test/b/example
    --object 
    cs https://objectstorage.us-ashburn-1.oraclecloud.com/n/test/b/example/o/employees.csv
  • cs clear: クラウド・ストレージURLをクリアします。

  • cs show: 現在のデフォルト・クラウド・ストレージURLとプロファイル設定を表示します。

  • cs listc [ <compartment> ]: 指定されたコンパートメント内のコンパートメントをリストします。コンパートメントが指定されていない場合は、プロファイルで指定されているネームスペース内のコンパートメントをリストします。

  • cs listb <compartment>: コンパートメント内のバケットをリストします。

  • cs listo [ <bucket> ]: バケット内のオブジェクトをリストします。クラウド・ストレージcsの設定コマンドまたはlistoコマンドにバケットを含める必要があります。

  • cs peek [ <qualified-name> ] [ { pos | position} <position> ] [ size <size> ]: オブジェクトの内容を表示します。各項目の意味は、次のとおりです。

    qualified-nameはオブジェクトの名前で、オプションでネームスペースおよびバケットで修飾されます。修飾された名前と指定されたデフォルトURLの組合せによって、オブジェクトURLが完全に識別される必要があります。

    positionは表示の開始位置です

    sizeは、表示する文字数です。省略した場合、2000文字が表示されます。

4.3

表へのクラウド・ストレージ・ファイルのロード

次の例は、クラウド・ストレージ・ファイルをデータベース表にロードする方法を示しています。

--Set Cloud Storage URL to the bucket
cs https://objectstorage.us-ashburn-1.example.com/n/test/b/example

--Create Table "locations"
create table locations(location_id NUMBER(5),location_name VARCHAR2(40));
Table LOCATIONS created

--Load data from LOCATIONS_DATA_TABLE.csv in cloud storage into "locations" table of the schema for the current user
load locations cs /o/LOCATIONS_DATA_TABLE.csv
Cloud Storage Set: https://objectstorage.us-ashburn-1.oraclecloud.com/n/test/b/example
Qualifier: LOCATIONS_DATA_TABLE.csv 
TargetURL: https://objectstorage.us-ashburn-1.oraclecloud.com/n/test/b/example/o/LOCATIONS_DATA_TABLE.csv 
Profile:freedb

format csv

column_names on
delimiter ,
enclosure_left "
enclosure_right "
encoding UTF8
row_limit off
row_terminator default
skip_rows 0
skip_after_names

--Number of rows processed: 23
--Number of rows in error: 0
0 - SUCCESS: Load processed without errors

select count(*) from locations;

COUNT(*)
–--------
50

クラウド・ストレージへの表データのアンロード

この例では、locations表からクラウド・ストレージにデータをアンロードする方法を示しています。データはクラウド・ストレージの場所にアンロードされ、LOCATIONS_DATA_TABLE.csvという名前が付けられます。

--Set Cloud Storage URL to the bucket
cs https://objectstorage.us-ashburn-1.oraclecloud.com/n/test/b/example

–-Specify delimiter as | and terminator as <eof>
set loadformat delimiter | term <eof>

--Unload locations table into cloud storage
unload locations cs
Cloud Storage Set: https://objectstorage.us-ashburn-1.oraclecloud.com/n/test/b/example
TargetURL: https://objectstorage.us-ashburn-1.oraclecloud.com/n/test/b/example
Profile: DEFAULT

format csv

column_names on
delimiter |
enclosure_left "
enclosure_right "
encoding UTF8
row_terminator <eof>

** UNLOAD Start ** at 2020.09.10-17.08.34
Export Separate Files to https://objectstorage.us-ashburn-1.oraclecloud.com/n/test/b/example
DATA TABLE LOCATIONS
File Name: LOCATIONS_DATA_TABLE.csv
Number of Rows Exported: 23
** UNLOAD End ** at 2020.09.10-17.08.39

-- Show file contents
cs peek /o/LOCATIONS_DATA_TABLE.csv

"LOCATION_ID"|"LOCATION_NAME"<eof>01|"California"<eof>02|"Alaska<eof>03|"Florida"<eof>04|"Texas"<eof>05|"Virginia"<eof>
06|"Louisiana"<eof>07|"Massachusetts"<eof>08|"Arkansas"<eof>09|"Oregon"<eof>10|"Hawaii"<eof>11|"Maryland"<eof>
12|"Pennsylvania"<eof>13|"Colorado<eof>14|"Michigan"<eof>15|"Minnesota"<eof>16|"Ohio"<eof>17|"Maine"<eof>18|"Arizona"<eof>
19|"Missouri"<eof>20|"Vermont"<eof>21|"Kansas"<eof>22|"Nevada"<eof>23|"Illinois"

コンパートメント、バケットおよびオブジェクトのリスト

この例では、クラウド・ストレージ内のコンパートメント、バケットおよびオブジェクトをリストする方法を示しています。

cs https://objectstorage.us-ashburn-1.oraclecloud.com/n/test

--Lists the compartments in the namespace
cs listc

COMP_APEX
dbtst
old
ords
pdf-fn-compartment
sandbox
sqldev

--Lists the compartments in the compartment sqldev
cs listc sqldev

sqldev1

--Lists the buckets in the compartment sqldev
cs listb sqldev

example
test 

--Lists the objects in the bucket transfer
cs listo /b/example

COUNTRIES_DATA_TABLE.csv
DEPARTMENTS_DATA_TABLE.csv
REGIONS_DATA_TABLE.csv
LOCATIONS_DATA_TABLE.csv

--Displays the first 2000 characters of LOCATIONS_DATA_TABLE file
cs peek /o/LOCATIONS_DATA_TABLE.csv
 

OCI PUTコマンドを使用したクラウド・ストレージへのローカル・ファイルのロード

この例では、OCI PUTコマンドおよびクラウド・ストレージ・コマンドを使用して、ローカル・ファイルをクラウド・ストレージにロードする方法を示しています。

--Set Cloud Storage URL to the bucket
cs https://objectstorage.us-ashburn-1.oraclecloud.com/n/test/b/example

--Put an object from local directory into cloud storage
oci put C:\\Users\\JDOE\\EMPLOYEES_DATA_TABLE.csv /o/myemployees.csv

Status:200 OK

--List the objects in the bucket
cs listo

COUNTRIES_DATA_TABLE.csv
DEPARTMENTS_DATA_TABLE.csv
REGIONS_DATA_TABLE.csv
LOCATIONS_DATA_TABLE.csv
myemployees.csv

OCI GETコマンドを使用したクラウド・ストレージからのファイルの取得

次の例は、OCI GETコマンドおよびクラウド・ストレージ・コマンドを使用してクラウド・ストレージからファイルを取得する方法を示しています。

--Set Cloud Storage URL to the bucket
cs https://objectstorage.us-ashburn-1.oraclecloud.com/n/test/b/example/o/

--Set the local directory
cd C:\\Users\JDOE\\TempCS

--Get the myemployees.csv file from cloud storage
oci get /o/myemployees.csv

Status:200 OK
Response Saved to C:\Users\JDOE\TempCs\myemployees.csv