スキーマ・オプション

dsbulkコマンドのスキーマ・オプション

dsbulkコマンドのスキーマ・オプションを指定します。

オプションは、短い形式(-k keyspace_name)でも、長い形式(--schema.keyspace keyspace_name)でも使用できます。

-k,--schema.keyspace string

データのロード、アンロード、またはカウントに使用するキースペース。キースペースの名前を引用符で囲む必要はありません。大文字と小文字は区別されます。MyKeyspaceは、MyKeyspaceという名前のキースペースと一致しますが、mykeyspaceという名前のキースペースとは一致しません。schema.queryが指定されていない場合は必須のオプションです。それ以外は任意です。

デフォルト:未指定

-t,--schema.table string

データのロード、アンロード、またはカウントに使用するテーブル。テーブルの名前を引用符で囲まないでください。大文字と小文字は区別されます。MyTableは、MyTableという名前のテーブルとは一致しますが、mytableという名前のテーブルとは一致しません。schema.queryが指定されていない場合は必須のオプションです。それ以外は任意です。

デフォルト:未指定

-m,--schema.mapping string
使用するフィールドとカラムのマッピングで、読み込みとアンロードの両方に適用されます。指定しない場合、ローダーは、ソース・フィールドとデータベース・テーブル間の厳密な一対一のマッピングを適用します。このマッピングが不要な場合は、明示的なマッピングを指定する必要があります。マッピングは、以下の形式のマップとして指定する必要があります。
  • インデックス付きデータ・ソース:0 = col1, 1 = col2, 2 = col3。ここで、012はソース・データ内のフィールドのゼロベースのインデックスで、col1col2col3はINSERT文内のバインドされた変数名です。
    • 最初のnフィールドをマップするためのショートカットは、デスティネーション・カラムcol1, col2, col3のみを指定します。
  • マップ済みデータ・ソース:fieldA = col1, fieldB = col2, fieldC = col3。ここで、fieldAfieldBfieldCはソース・データ内のフィールド名で、col1col2col3はINSERT文内のバインドされた変数名です。
クエリー・タイムスタンプまたはTTLにフィールドが使用されるように指定するには、専用に命名された偽のカラム__ttlおよび__timestampを使用します。fieldA = __timestamp, fieldB = __ttlです。タイムスタンプ・フィールドは、CQLタイムスタンプ・カラムとして解析され、codec.timestampまたはcodec.unit + codec.epochで指定された形式を使用する必要があります。後者は、指定されたエポック以来のcodec.unitで指定された単位数を表す整数です。TTLフィールドは、秒単位で時間を表す整数として解析され、codec.numberで指定された形式を使用する必要があります。

カラムに関数呼び出しの結果が追加されるように指定するには、関数呼び出しを入力フィールドとして指定します(例:now() = c4)。これは、読み込み操作にのみ有効です。

また、マップ済みデータ・ソースについては、マッピングが部分的には自動生成され、部分的には明示的に指定されるように指定することもできます。たとえば、ソース行にフィールドc1c2c3、およびc5があり、テーブルにカラムc1c2c3c4が含まれている場合は、すべてのlike-namedカラムをマップし、ソース・マップのc5がテーブルのc4にマップされるように(* = *, c5 = c4)指定できます。

c2を除いてすべてのlike-namedフィールドがマップされるようにするには、* = -c2のように指定します。c2およびc3をスキップするには、* = [-c2, -c3]のように指定します。すべての英数字以外の識別子、フィールド、またはカラムを引用符で囲みます。

使用するマッピングの正確な型は、使用されるコネクターによって異なります。インデックス付きレコードのみを生成するコネクター、マップされたレコードのみを生成するコネクター、さらにインデックス付きレコードとマップされたレコードの両方を同時に生成するコネクターがあります。サポートされているマッピングの種類については、コネクターのドキュメントを参照してください。

デフォルト:未指定

--schema.nullToUnset(true | false)
この行について、このフィールドの既存の可能性がある値を変更しない場合など、null入力値をデータベースの"unset"にマップするかどうかを指定します。読み込みシナリオでは有効で、それ以外の場合は無視されます。falseに設定すると、nullを表すトゥームストーンが作成されます。
注意: この設定はcodec.nullStrings設定後に適用され、この設定によって生成されるnullが取得されない場合があります。

デフォルト:true

--schema.allowExtraFields(true | false)

マッピング時に宣言されなかった追加フィールドを含んでいるレコードを受け入れるかどうかを指定します。たとえば、レコードに3つのフィールドA、B、およびCが含まれているにもかかわらず、マッピング時にフィールドAとBのみが宣言され、このオプションがtrueの場合は、Cは自動的に無視され、レコードは有効と見なされます。このオプションがfalseの場合は、レコードは拒否されます。読み込みに対してのみ適用でき、それ以外の場合は無視されます。

デフォルト:true

--schema.allowMissingFields(true | false)

マッピング時に宣言さたフィールドが欠落しているレコードを受け入れるかどうかを指定します。たとえば、マッピング時に3つのフィールドA、B、およびCが宣言されたにもかかわらず、レコードにフィールドAとBしか含まれておらず、このオプションがtrueの場合は、Cは自動的にnullが割り当てられ、レコードは有効と見なされます。このオプションがfalseの場合は、レコードは拒否されます。欠落しているフィールドがプライマリ・キー・カラムにマップされると、データベースがレコードを拒否するため、レコードは常に拒否されます。読み込みに対してのみ適用でき、それ以外の場合は無視されます。

デフォルト:false

-query,--schema.query string

使用するクエリー。このオプションが指定されていない場合、schema.keyspaceおよびschema.tableが指定される必要があり、dsbulkはすべての使用可能なカラムを使用して、テーブルのメタデータに基づいて適切な文を推測します。schema.keyspaceが指定されている場合は、テーブル・リファレンスを修飾するためにクエリーにキースペースを含める必要がなくなります。

読み込みについては、INSERTUPDATE、またはDELETE文を使用できます。INSERT文の場合は、ほとんどの読み込み操作に推奨され、バインドされた変数はマップ済みフィールドに対応する必要があります。たとえば、INSERT INTO table1 (c1, c2, c3) VALUES (:fieldA, :fieldB, :fieldC)のようになります。UPDATE文の場合は、ターゲット・テーブルがカウンター・テーブルの場合に必要で、カラムはインクリメント操作(SET col1 = col1 + :fieldA)で更新されます。ここで、:fieldAは入力データのカラムです。DELETE文の場合は、読み込み操作中に既存のデータが削除されます。

アンロードについては、文はすべての通常のSELECT文が可能で、文にはフォームのトークン範囲制約句を含めることができます。たとえば、token(...)> :start and token(...)<= :endなどです。このような句が存在する場合、エンジンは、クラスター内のトークンの範囲と同じ数の文を生成するため、レプリカでもあるコーディネーターを同時にターゲットにしながらの並行処理が可能になります。

カウントについては、文は、テーブルのパーティション・キーのみを含んでいるSELECT文である必要があります。文には、フォームのトークン範囲制約句を含めることができます。たとえば、token(...)> :start and token(...)<= :endなどです。

文では、位置指定された変数と名前付きのバインドされた変数の両方を使用できます。位置指定された変数は、デスティネーション・テーブルの対応するカラムに基づく名前が付けられます。名前付きのバインドされた変数には、デスティネーション・テーブルのカラムの名前に一致する名前が通常は付けられますが、これは厳密な要件ではありません。ただし、その名前がマッピングで指定されたフィールドの名前と一致する必要があります。

詳細については、schema.mapping設定を参照してください。

デフォルト:未指定

--schema.queryTimestamp string

読み込み中に挿入/更新されたセルのタイムスタンプ。それ以外の場合は、ツールを実行するシステムの現在の時刻が使用されます。アンロードおよびカウントには適用されません。値は、ISO_ZONED_DATE_TIME形式で表します。DSEでは、クエリー・タイムスタンプを最も近いマイクロ秒に設定し、1マイクロ秒未満にTRUNCATEします。指定された1マイクロ秒未満の情報は、失われます。詳細については、「CQLリファレンス」を参照してください。

デフォルト:未指定

--schema.queryTtl number

読み込み中に挿入/更新されたセルのTime To Live(TTL)(秒単位)。値が-1の場合、TTLが存在しないことを意味します。アンロードには適用されません。詳細については、「CQLリファレンス」、「値のTime To Live(TTL)の設定」、および「Time To Liveを使用したデータの期限の設定」を参照してください。

デフォルト:-1