ibm-lhユーティリティでサポートされている取り込みオプションとパラメータ
このトピックでは、インジェスト用の ibm-lh ユーティリティで使用できるすべてのオプションとパラメータを示します。 摂取の指示はない。
データをインジェストする手順をお探しの場合は、以下のトピックを参照してください:
- CLIからibm-lhユーティリティを使用したPresto インジェスト
- ibm-lhツールのコマンドラインからスパークを取り込む
- コマンドラインからのデータ取り込み - Spark REST API
以下のインジェストモードがサポートされている:
PRESTO
SPARK_LEGACY
SPARK
SPARK
がデフォルトモードである。
パラメータと変数
ibm-lhユーティリティは、'ibm-lh data-copy
コマンドで呼び出せるさまざまなパラメータと変数をサポートしている。 以下の表は、パラメータとその詳細を示したものである。
パラメーター | 説明 | 宣言 (declaration) | 取り込みの方式 |
---|---|---|---|
create-if-not-exist |
ターゲット・テーブルが存在しない場合は作成する。 | --create-if-not-exist |
PRESTO および SPARK_LEGACY |
dbpassword |
取り込みを行うために使用されるデータベース・パスワード。 これは、デフォルト・ユーザーが使用されていない限り、取り込みジョブを実行するための必須パラメーターです。 | --dbpassword <DBPASSWORD> |
PRESTO |
dbuser |
取り込みを行うために使用されるデータベース・ユーザー名。 これは、デフォルト・ユーザーが使用されていない限り、取り込みジョブを実行するための必須パラメーターです。 | --dbuser <DBUSER> |
PRESTO |
debug |
取り込みジョブのログをデバッグする。 このパラメーターの短縮コマンドは -d です。 |
--debug |
PRESTO 、SPARK_LEGACY 、およびSPARK |
engine-id |
REST API ベースの SPARK 取り込みを使用する場合の Spark エンジンのエンジン ID。 このパラメーターの短縮コマンドは -e です。 |
--engine-id <spark-enginename> |
SPARK |
escape-char |
CSV エスケーププロパティ文字。 デフォルト値は /。 | --escape-char <escape_character_value> |
PRESTO 、SPARK_LEGACY 、およびSPARK |
encoding |
CSV エンコーディングのプロパティ文字。 デフォルト値は utf-8 。 |
--encoding <encoding_value> |
PRESTO 、SPARK_LEGACY 、およびSPARK |
field-delimiter |
CSVファイルのフィールド区切り値。 デフォルト値は , 。 |
--field-delimiter <field_delimiter_value> |
PRESTO 、SPARK_LEGACY 、およびSPARK |
header |
ヘッダの有無にかかわらず、CSVファイルには必須のパラメータ。 デフォルト値は true 。 |
--header <true/false> |
PRESTO 、SPARK_LEGACY 、およびSPARK |
ingest-config |
データ・マイグレーション用の構成ファイル | --ingest-config <INGEST_CONFIGFILE> |
PRESTO および SPARK_LEGACY |
ingestion-engine-endpoint |
取り込みエンジンの終点。 hostname=<hostname> 、port=<port> 。 これは、取り込みジョブを実行するための必須パラメーターです。 |
--ingestion-engine-endpoint <INGESTION_ENGINE_ENDPOINT> |
PRESTO および SPARK_LEGACY |
instance-id |
固有のインスタンスを識別します。 SaaS 環境では、CRN はインスタンス ID です。 このパラメーターの短縮コマンドは -i です。 |
--instance-id <instance-CRN> |
SPARK |
job-id |
ジョブ ID は、REST API または UI ベースの取り込みが開始されたときに生成されます。 このジョブ ID は、取り込みジョブの状況を取得するために使用されます。 このパラメータは、ibm-lh get-status コマンドの対話型取り込みモードでのみ使われます。 このパラメーターの短縮コマンドは -j です。 |
ibm-lh get-status --job-id <Job id> |
SPARK |
all-jobs |
この all-jobs パラメータは、すべての取り込みジョブの履歴を示します。 このパラメータは、ibm-lh get-status コマンドの対話型取り込みモードでのみ使われます。 |
ibm-lh get-status --all-jobs |
SPARK |
line-delimiter |
CSVファイルの行区切り値。 デフォルト値は ` . |
--line-delimiter <line_delimiter_value> |
PRESTO , SPARK_LEGACY , and SPARK です |
log-directory |
このオプションは、ログ・ファイルの場所を指定するために使用します。 ログ・ディレクトリー を参照してください。 | --ingest-config <ingest_config_file> --log-directory <directory_path> |
PRESTO 、SPARK_LEGACY 、およびSPARK |
partition-by |
partition-by リストのタイムスタンプの年、月、日、時間の関数をサポート。 ターゲットテーブルがすでに存在する場合、または create-if-not-exist パラメータが指定されていない場合、 partition-by はデータに影響を与えません。 create-if-not-exist パラメータは、 SPARK ではサポートされなくなりました。 |
ibm-lh data-copy --partition-by "<columnname1>, <columnname2>" |
SPARK_LEGACY および SPARK |
password |
インスタンスに接続するユーザーのパスワード。 SaaS,では、インスタンスのAPIキーが使用される。 このパラメーターの短縮コマンドは -pw です。 |
--password <apikey> |
SPARK |
schema |
CSV 仕様などを含むスキーマ・ファイル。 詳細は スキーマ・ファイルの仕様 を参照してください。 | --schema </path/to/schemaconfig/file> |
PRESTO 、SPARK_LEGACY 、およびSPARK |
source-data-files |
データ・マイグレーション用のデータ・ファイルまたはフォルダー。 / で終わるファイル名は、フォルダーと見なされます。 単一または複数のファイルを使用できます。 これは、取り込みジョブを実行するための必須パラメーターです。 例: <file1_path>,<file2_path>,<folder1_path> 。 ファイル名は大文字と小文字が区別されます。 このパラメーターの短縮コマンドは
-s です。 |
--source-data-files <SOURCE_DATA_FILE> |
PRESTO 、SPARK_LEGACY 、およびSPARK |
staging-location |
CSV ファイルがステージングされる場所、および状況によっては parquet ファイルがステージングされる場所については、 ステージング・ロケーション を参照してください。 これは、取り込みジョブを実行するための必須パラメーターです。 | --staging-location <STAGING_LOCATION> |
PRESTO |
staging-hive-catalog |
ステージング用のデフォルトのカタログを使用しない場合、このパラメータを使用して、watsonx.data で構成されている Hive カタログの名前を指定します。 デフォルトのカタログは hive_data です。 |
--staging-hive-catalog <catalog_name> |
PRESTO |
staging-hive-schema |
取り込み用のステージング・ハイブ・カタログに関連付けられたスキーマ名。 このパラメーターを使用して、カスタム・スキーマ名を作成して渡します。 デフォルト・スキーマ: lhingest_staging_schema 。 スキーマがデフォルトとして作成される場合、このパラメーターは必要ありません。 |
--staging-hive-schema <schema_name> |
PRESTO |
sync-status |
このパラメーターは、REST API ベースの取り込みで使用されます。 デフォルト値は false です。 このパラメーターが true に設定されている場合、 ibm-lh data-copy ツールは、取り込みジョブが実行依頼された後、待機してポーリングし、継続状況を取得します。 |
--sync-status <IS THERE ANY ENTRY?> |
SPARK |
system-config |
このパラメータは、システム関連のパラメータを指定するために使用されます。 詳細については、 システム設定を 参照してください。 | --system-config <path/to/system/configfile> |
PRESTO 、SPARK_LEGACY 、およびSPARK |
target-catalog-uri |
ターゲット・カタログ URI | --target-catalog-uri <TARGET_CATALOG_URI> |
SPARK_LEGACY |
target-table |
データ・マイグレーション・ターゲット表。 <catalog>.<schema>.<table1> これは、取り込みジョブを実行するための必須パラメーターです。 例: <iceberg.demo.customer1> 。 このパラメーターの短縮コマンドは -t です。 詳細は ターゲット・テーブル を参照。 |
--target-table <TARGET_TABLE> |
PRESTO 、SPARK_LEGACY 、およびSPARK |
trust-store-path |
取り込みエンジンにアクセスするためのトラストストアのパス。 これは、SSL 接続を確立するために使用されます。 このパラメータは非 root ユーザーには必須である。 | --trust-store-path <TRUST_STORE_PATH> |
PRESTO および SPARK_LEGACY |
trust-store-password |
取り込みエンジンにアクセスするためのトラストストアのパスワード。 これは、SSL 接続を確立するために使用されます。 このパラメータは非 root ユーザーには必須である。 | --trust-store-password <TRUST_STORE_PASSWORD> |
PRESTO および SPARK_LEGACY |
user |
インスタンスに接続するユーザーのユーザー名。 このパラメーターの短縮コマンドは -u です。 |
--user <username> |
SPARK |
url |
watsonx.dataクラスタの場所のベースURL。 このパラメーターの短縮コマンドは -w です。 |
--url <url> |
SPARK |
以下のパラメータは、表では収まりきらない詳細があるため、別のセクションに記載している。
システム構成
の system-config
パラメータはファイルを参照し、システム関連のパラメータを指定するために使用されます。
コマンド行の場合、パラメーターは次のように宣言されます。
--system-config /path/to/systemconfig/file
システム構成パラメーターの形式は次のとおりです。
[system-config]
<param_name1>:<param_val>
<param_name2>:<param_val>
<param_name3>:<param_val>
...
現在、memory-limit パラメーターのみがサポートされています。 このパラメーターは、取り込みジョブで使用できる最大メモリーを watsonx.data で指定します。 メモリ制限のデフォルト値は 500 M です。 制限はバイト、K、M、または G 単位で指定できます。 system-config
は、 PRESTO
、 SPARK_LEGACY
、および SPARK
取り込みモードに適用できます。
以下は、memory-limit
パラメータはシステム設定ファイルで指定できます。
[system-config]
memory-limit:500M
[system-config]
memory-limit:5000K
[system-config]
memory-limit:1G
[system-config]
memory-limit:10000000 #This is in bytes
memory-limit
パラメーターは、 PRESTO
取り込みモードに適用できます。
ステージング・ロケーション
このパラメーターは、 PRESTO
取り込みモードに適用されます。
ステージング・ロケーションは、以下の目的で使用されます。
- CSV ファイルまたはフォルダーの取り込み
- ローカル Parquet ファイルまたはフォルダーの取り込み。
- S3 Parquet ファイルの取り込み
- 状況によっては、 S3 Parquet フォルダー内のソース・ファイルに TIME などの特殊な列タイプが含まれているか、異なる列タイプに関連付けられている場合があります。
CLI を使用した取り込みジョブの場合、ステージング・バケットは、 Hive カタログに関連付けられているバケットと同じでなければなりません。 ステージングは、 Hive カタログでのみ可能です。
内部 MinIO バケット (iceberg-data、hive-data、wxd-milvus、wxd-system) およびそれらの関連カタログは、外部からアクセスできないため、ステージングに使用できません。 ユーザーは、外部接続によって公開され、アクセス可能な独自のストレージ・バケットを使用できます。
スキーマ・ファイル仕様
schema パラメーターは、スキーマ・ファイルを指します。 スキーマ・ファイルを使用して、CSV ファイルのプロパティー (フィールド区切り文字、行区切り文字、エスケープ文字、エンコード、CSV ファイルにヘッダーが存在するかどうかなど) を指定できます。 このパラメーターは、 PRESTO
、 SPARK_LEGACY
、および SPARK
の各取り込みモードに適用されます。
以下に、スキーマ・ファイル仕様を示します。
[CSV]
DELIMITER:<delim> #default ','
#LINE_DELIMITER:
#A single char delimiter other than ' '(blank), need not be enclosed in quotes.
#Must be enclosed in quotes if it is one of: '\n' for newline, '\t' for TAB, ' ' for space.
LINE_DELIMITER:<line_delim> #default '\n'
HEADER:<true|false> #default 'true'
#HEADER is a mandatory entry within schema file.
#single character value
ESCAPECHAR:<escape_char> #default '\\'
#Encoding (Example:"utf-8")
ENCODING:<encoding> #default None
Presto インジェストでサポートされるエンコーディング値は、 Python でサポートされるエンコーディング値に直接依存し、Sparkインジェストでサポートされるエンコーディング値は、 Java でサポートされるエンコーディング値に直接依存する。
HEADER
以外のエンコーディング値は、シングルクォーテーションで囲む必要があります。
以下はスキーマ仕様の例である:
$ more /tmp/schema.cfg
[CSV]
DELIMITER:','
HEADER:false
LINE_DELIMITER:'\n'
ログ・ディレクトリー
INGEST ログ・ファイルは、ログ・ディレクトリーに生成されます。 デフォルトでは、取り込みログ・ファイルは /tmp/ingest.log
として生成されます。 --log-directory
パラメーターを使用して、ログ・ファイルを取り込むための新しい場所を指定できます。 INGEST コマンド呼び出しごとに別個のログ・ファイルが作成されます。 新しいログ・ファイル名の形式は、 ingest_<timestamp)_<pid>.log
です。 ibm-lh INGEST ツールを呼び出す前に、ログ・ディレクトリーが存在している必要があります。
このパラメータは、コマンドラインオプションでのみ適用されます。PRESTO
、SPARK_LEGACY
、 そして SPARK
摂取モード。
コマンド行を使用する場合の例:
ibm-lh data-copy --source-data-files s3://cust-bucket/warehouse/a_source_file1.csv,s3://cust-bucket/warehouse/a_source_file2.csv
--staging-location s3://cust-bucket/warehouse/staging/
--target-table iceberg_target_catalog.ice_schema.cust_tab1
--ingestion-engine-endpoint "hostname=localhost,port=8080"
--create-if-not-exist
--log-directory /tmp/mylogs
構成ファイルを使用する場合の例:
ibm-lh data-copy --ingest-config ext.cfg --log-directory /tmp/mylogs
ターゲット表
取り込みのためにテーブル名およびスキーマ名の特殊文字を処理する機能は、基礎となるエンジン (Presto、レガシー Spark、Spark)、およびそれらがサポートする特殊文字によって制限されます。 特殊文字を含むスキーマ名またはテーブル名を使用する場合、Sparkではすべての特殊文字が受け入れられるわけではありません。Presto、レガシースパーク。 特殊文字のサポートについては、資料を参照してください。
データ・マイグレーションのターゲット表の SQL ID は <catalog>.<schema>.<table>
です。 特殊文字を含む部分をエスケープするには、二重引用符 " またはバッククォート ` を使用します。
例:
`ibm-lh data-copy --target-table 'catalog."schema 2.0"."my table!"'`
ibm-lh data-copy --target-table 'catalog.`schema 2.0`.`my table!`'
`ibm-lh data-copy --target-table catalog.'"schema 2.0"'.'"my table!"'`
ibm-lh data-copy --target-table "catalog.\`schema 2.0\`.\`my table!\`"
`ibm-lh data-copy --target-table catalog.\"schema\ 2.0\".\"my\ table!\"`
ダブルクォーテーション「 」とバッ クティック「 」の両方が使えますが、クォーテーションマークのスタイルを混在させる ことはできません。 リテラル引用符を識別子の中に入れるには、引用符を二重にしてください(""や``など)。
watsonx.dataバージョン2.0.0以降では、'target-tables
は非推奨となり、'target-table
使用する必要があります。