IBM Cloud Docs
ibm-lhユーティリティでサポートされている取り込みオプションとパラメータ

ibm-lhユーティリティでサポートされている取り込みオプションとパラメータ

このトピックでは、インジェスト用の ibm-lh ユーティリティで使用できるすべてのオプションとパラメータを示します。 摂取の指示はない。

データをインジェストする手順をお探しの場合は、以下のトピックを参照してください:

以下のインジェストモードがサポートされている:

  • 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 PRESTOSPARK_LEGACY、およびSPARK
engine-id REST API ベースの SPARK 取り込みを使用する場合の Spark エンジンのエンジン ID。 このパラメーターの短縮コマンドは -e です。 --engine-id <spark-enginename> SPARK
escape-char CSV エスケーププロパティ文字。 デフォルト値は /。 --escape-char <escape_character_value> PRESTOSPARK_LEGACY、およびSPARK
encoding CSV エンコーディングのプロパティ文字。 デフォルト値は utf-8 --encoding <encoding_value> PRESTOSPARK_LEGACY、およびSPARK
field-delimiter CSVファイルのフィールド区切り値。 デフォルト値は , --field-delimiter <field_delimiter_value> PRESTOSPARK_LEGACY、およびSPARK
header ヘッダの有無にかかわらず、CSVファイルには必須のパラメータ。 デフォルト値は true --header <true/false> PRESTOSPARK_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> PRESTOSPARK_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> PRESTOSPARK_LEGACY、およびSPARK
source-data-files データ・マイグレーション用のデータ・ファイルまたはフォルダー。 / で終わるファイル名は、フォルダーと見なされます。 単一または複数のファイルを使用できます。 これは、取り込みジョブを実行するための必須パラメーターです。 例: <file1_path>,<file2_path>,<folder1_path>。 ファイル名は大文字と小文字が区別されます。 このパラメーターの短縮コマンドは -s です。 --source-data-files <SOURCE_DATA_FILE> PRESTOSPARK_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> PRESTOSPARK_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> PRESTOSPARK_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 は、 PRESTOSPARK_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 ファイルにヘッダーが存在するかどうかなど) を指定できます。 このパラメーターは、 PRESTOSPARK_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 ツールを呼び出す前に、ログ・ディレクトリーが存在している必要があります。

このパラメータは、コマンドラインオプションでのみ適用されます。PRESTOSPARK_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 使用する必要があります。