4 クラウド・ストレージ・コマンドの使用
SQLclリリース20.3以降では、クラウド・ストレージ(cs
)コマンドを使用して、デフォルトのクラウド・ストレージURLを設定し、コンパートメント、バケットおよびオブジェクトをリストし、クラウド・ストレージ内のオブジェクトの内容の一部を表示します。
Oracle Cloud Infrastructure Object StorageまたはOracle SWIFT Object Storageを使用して、クラウド・ストレージ内のオブジェクトにアクセスできます。
OCI
、LOAD
および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でcloudstorage
、cloud_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