クラウド ストレージ ターゲットの設定
必要に応じて、既定のデータ レイク ランディング設定を変更できます。
基本設定
更新方法
2 種類の異なるモードでデータをランディングできます。データ レイクのランディング タスクの準備が完了すると、モードの変更はできません。
-
変更データキャプチャ (CDC): データ レイクのランディング タスクは、フル ロードから開始されます (その間、選択されたすべてのテーブルがランディングされます)。ランディング データは、CDC (変更データ キャプチャ) テクノロジーを使用して最新の状態に保たれます。
情報メモDDL 操作の CDC (変更データ キャプチャ) はサポートされていません。Data Movement gateway を使用する場合、変更はソースからほぼリアルタイムでキャプチャされます。Data Movement gateway を使用せずに作業する場合、変更はスケジューラーの設定に従ってキャプチャされます。詳細は、Data Movement gateway を使用しない場合のタスクのスケジュール設定をご覧ください。
- リロード: 選択したソーステーブルからターゲットプラットフォームへのデータのフル ロードを実行し、必要に応じてターゲット テーブルを作成します。フル ロードはタスクの開始時に自動的に実行されますが、必要に応じて手動で実行することや、定期的に実行するようにスケジュールすることもできます。
使用するフォルダー
ファイルを書き込むバケット フォルダーに応じて、次のいずれかを選択します。
- 既定のフォルダー: 既定のフォルダー形式は <your-project-name>/<your-task-name> です。
- ルート フォルダー: ファイルはバケットに直接書き込まれます。
-
フォルダー: フォルダー名を入力します。フォルダーが存在しない場合は、データ レイクのランディング タスク中に作成されます。
情報メモ フォルダー名に特殊文字 (@、#、! など) を含めることはできません。
データ パーティションの変更
標準的なランディング タスクでは、変更は順不同でターゲットにランディングされます。データ パーティションの変更により、多くのテーブルからの変更データを一貫した方法で処理できるようになります。パーティションの期間とパーティション化の基準時間を定義できるため、パーティション化されたデータの全体的な一貫性が確保されます (部分的なトランザクションがない、注文行のない注文ヘッダーがない、など)。
パーティションに関する情報は、ターゲット データベースの attrep_cdc_partitions コントロール テーブルに記録されます。この情報は、さらに処理が必要なパーティション化されたデータを識別するために使用できます。
パーティション化のオプションは次のとおりです。
-
パーティション間隔 - 各パーティションの長さ (時間と分) を指定します。
情報メモパーティションの長さは 1 時間を超えるように指定することをお勧めします。パーティションの長さを 1 時間未満に指定すると待機時間が改善される可能性がありますが、ターゲット上に多数のパーティションを作成すると、(ターゲットの) パフォーマンスに影響を与える可能性もあります (特に大量の変更を伴うシステムの場合)。
最後のパーティションが作成された時刻より前からタスクを再開すると、データ レイクのランディング タスクは、すでに閉じられたパーティションに書き込みます。
- パーティション基準時間 - パーティションは 24 時間の期間内に作成されます。これは、ソース データベースで指定された UTC 時間の「パーティション基準時間」に従って計算されます。たとえば、パーティション間隔が 8 時間、「パーティション基準時間」時刻が 02:00 の場合、02:00-10:00、10:00-18:00、18:00-02:00 のパーティションが作成されます。ただし、必ずしもこの順序である必要はありません。たとえば、タスクが 01:00 に開始された場合、最初のパーティションのタイムフレームは 18:00-02:00 になります。さらに、タスクがパーティションの途中 (04:00 など) で開始された場合、04:00 より前に変更がキャプチャされなかったとしても、その変更データは 02:00-10:00 のパーティションに挿入されます。
データのアップロード
ファイル属性
形式
ターゲット ファイルを CSV、JSON、または Parquet 形式で作成することを選択できます。
JSON ファイルでは、各レコードは次の例のように 1 行で表示されます。
{ "book_id": 123, "title": "Alice in Wonderland", "price": 6.99, "is_hardcover": false }
{ "book_id": 456, "title": "Winnie the Pooh", "price": 6.49, "is_hardcover": true }
{ "book_id": 789, "title": "The Cat in the Hat", "price": 7.23, "is_hardcover": true }
- JSON または Parquet 形式を選択した場合、次の項目は CSV 形式にのみ関連するため非表示になります: フィールド区切り文字、レコード区切り文字、Null 値、引用文字、引用エスケープ文字、メタデータ ヘッダーの追加。
- 次の項目は、Parquet 形式にのみ関連します: Parquet バージョン、Parquet 日付と時刻単位、および Parquet 最大 LOB サイズ (KB)。
Parquet 形式を使用する場合のデータ型マッピングと制限については、「Mapping from Qlik Cloud data types to Parquet 」を参照してください
項目区切り記号
ターゲット ファイル内の項目 (列) を区切るために使用される区切り記号。既定はカンマです。
区切り記号としてカンマを使用する例:
"mike","male"
区切り記号には、標準文字または 16 進数値を使用できます。「0x
」というプレフィックスは、16 進数の区切り記号 (例: 0x01 = SOH
) を示すために使用する必要があります。[項目区切り記号]、 [レコード区切り記号]、 [Null 値] 項目では、区切り記号は連結された 16 進数値 (例: 0x0102
= SOHSTX
) で構成できますが、 [引用符] および [エスケープ文字を引用符で囲む] 項目では、単一の 16 進数値のみを使用できます。
16 進数 0x00
はサポートされていません (0x01
-0xFF
のみがサポートされます)。
Null 値
ターゲット ファイル内で Null 値を示すために使用される文字列。
例 (\n はレコード区切り記号、@ は Null 値):
レコード区切り記号
ターゲット ファイル内のレコード (行) を区切るために使用される区切り記号。既定は改行 (\n
) です。
例:
引用符
テキスト列の最初と最後に使用される文字。既定は二重引用符 (") です。列区切り記号を含む列が二重引用符で囲まれている場合、列区切り記号は列区切り記号としてではなく、実際のデータとして解釈されます。
例 (@ は引用符):
エスケープ文字を引用符で囲む
実際のデータで引用符をエスケープするために使用される文字。既定は二重引用符 (") です。
例 (" は引用符、\ はエスケープ文字):
Parquet バージョン
ターゲット プラットフォームがサポートするバージョンに応じて、使用するバージョンを選択します。Parquet バージョン 1.0 は MICRO タイムスタンプ ユニットのみをサポートしますが、Parquet バージョン 2.6 は MICRO タイムスタンプ ユニットと NANO タイムスタンプ ユニットの両方をサポートします。
Parquet タイムスタンプ ユニット
Parquet バージョンが 2.6 に設定されている場合は、MICRO または NANO を選択します。Parquet バージョンが 1.0 に設定されている場合は、MICRO のみがサポートされます。
Parquet 最大 LOB サイズ (KB)
既定の最大 LOB サイズは 64 KB で、この項目に入力できる最大値は 10,000 KB です。LOB 列の処理にはより多くのリソースが必要となり、パフォーマンスに影響を与えます。64 KB を超える LOB データをレプリケートしており、すべての LOB データをターゲットにレプリケートする必要がある場合にのみ、この値を増やします。
最大ファイル サイズ
ファイルが閉じる (および必要に応じて圧縮される) 前に到達できる最大サイズ。
ファイルが閉じる前に到達できる最大サイズ。並列実行オプションと併用すると、小さいファイルの方がアップロードが速くなり (ネットワークに応じて異なる)、パフォーマンスが向上する可能性があります。ただし、小さなファイルでデータベースを乱雑にすることは一般的に悪い習慣であると考えられています。
次を使用してファイルを圧縮:
圧縮オプションの 1 つを選択してターゲット ファイルを圧縮するか、圧縮しない場合は [NONE] (既定) を選択します。使用できる圧縮オプションは、選択したファイル形式に応じて決定されます。
メタデータ ヘッダーを追加
必要に応じて、データ ファイルにヘッダー行を追加できます。ヘッダー行には、ソース列名および/または中間 (例:Qlik Talend Data Integration) データ タイプを含めることができます。
[列名あり] と [データ タイプあり] の両方が選択されている場合の、ヘッダー行のあるターゲット ファイルの例:
Position:DECIMAL(38,0),Color:VARCHAR(10)
1,"BLUE"
2,"BROWN"
3,"RED"
...
変更処理
このセクションでは、変更処理の条件設定について説明します。
変更の適用/保存のタイミング
メタデータ ファイル
[ターゲット フォルダにメタデータ ファイルを作成] オプションが選択されている場合、各データ ファイルに対応する拡張子 .dfm のメタデータ ファイルが、指定したターゲット フォルダの下に作成されます。メタデータ ファイルは、ソース コネクタ タイプ、ソース テーブル名、データ ファイル内のレコード数など、タスク/データに関する追加情報を提供します。
メタデータ ファイルの詳細な説明と使用方法については、「メタデータ ファイルの説明 」を参照してください
メタデータ
LOB 列
-
LOB 列を含めて列サイズを次に制限 (KB):
タスクにLOB 列を含めることを選択でき、さらに最大 LOB サイズを設定できます。最大サイズより大きい LOB は切り捨てられます。
コントロール テーブル
ターゲット プラットフォームに作成するコントロール テーブルを次の中から選択します。
- レプリケーション ステータス: タスクのステータス、タスクによって消費されるメモリ量、データ プラットフォームにまだ適用されていない変更の数、現在データが読み取られているデータ ソース内の位置など、現在のランディング タスクに関する詳細を提供します。
- 一時停止のテーブル: 一時停止されたテーブルのリストと、それらが一時停止された理由を提供します。
- レプリケーション履歴: ランディング タスク中に処理されたレコードの数と量、CDC タスク終了時の待機時間などを含む、タスク履歴に関する情報を提供します。
- データ パーティションを変更:データ パーティションの変更 によりターゲット データベースに作成されたパーティションのレコードを提供します。この情報を使用して、さらに処理が必要なパーティション データを特定できます。
各コントロール テーブルの詳細については、「コントロール テーブル」を参照してください
フル ロード
パフォーマンスのチューニング
- 並行してロードするテーブルの最大数: ターゲットに一度にロードする、テーブルの最大数を入力します。既定値は 5 です。
-
トランザクション整合性タイムアウト (秒): フル ロード操作を開始する前に、開いているトランザクションが閉じるまで待機する秒数を入力します。既定値は 600 (10 分) です。オープンになっているトランザクションがある場合でも、タイムアウト値に達するとフル ロードが開始されます。
情報メモフルロードの開始時にオープンしていたが、タイムアウト値に達した後にのみコミットされたトランザクションをレプリケートするには、ターゲット テーブルをリロードする必要があります。 - フル ロード時のコミット レート:一緒に転送できるイベントの最大数。既定値は 10000 です。
フル ロードの完了後
主キーまたは一意を作成: フル ロードが完了するまで、データ プラットフォームの主キーまたは一意のインデックスの作成を遅らせる場合は、このオプションを選択します。
初期ロード用
SaaS アプリケーション ソースからデータを移動する場合、初期フル ロードを実行する方法を設定できます。
キャッシュされたデータを使用 |
このオプションを使用すると、 [フル データ スキャン] を選択してメタデータを生成するときに読み込まれたキャッシュ データを使用できます。 データはすでにソースから読み込まれているため、API の使用とクォータに関するオーバーヘッドが軽減されます。最初のデータ スキャン以降の変更は、変更データ キャプチャ (CDC) によって取得できます。 |
ソースからデータをロード |
このオプションは、データ ソースから新しいロードを実行します。このオプションは次の場合に有効です。
|
変更の保存を処理
変更テーブルのヘッダー列には、操作のタイプ (例: INSERT) やコミット時間など、変更処理操作に関する情報が表示されます。この情報が必要ない場合は、ヘッダー列の一部またはすべてを含まない変更テーブルを作成するようにデータ タスクを構成して、ターゲット データベースでのフットプリントを削減できます。これを実行するには、除外するヘッダー列のチェック ボックスをオフにします。
タスクの実行中は、追加の列の削除や、列の復元はできないことに注意してください。最初の選択を変更するには、まずタスクを停止し、次に選択を変更し、最後にターゲット テーブルをリロードする必要があります。
データ パーティションの変更 が有効になっている場合、「partition_name」という名前の追加のヘッダー列が変更テーブルに追加され、UI で自動的に選択されます。この列は必須であり、除外することはできません。
ヘッダー列の説明については、「変更テーブルの使用」を参照してください。
エラー処理
データ エラー
データ エラー処理は、更新方法が変更データ キャプチャ (CDC) の場合にのみサポートされます。
データ切り捨てエラー
データ切り捨てエラーの場合: 1 つ以上の特定のレコードで切り捨てが発生した場合に実行する処理を選択します。リストから次のいずれかを選択できます。
- 無視: タスクは続行され、エラーは無視されます。
- テーブルを一時停止: タスクは続行されますが、エラー レコードのあるテーブルのデータはエラー状態に移行し、そのデータはレプリケートされません
- タスクを停止: タスクは停止され、手動による操作が必要となります。
その他のデータ エラー
その他のデータ エラーの場合: 1 つ以上の特定のレコードでエラーが発生した場合に実行する処理を選択します。リストから次のいずれかを選択できます。
- 無視: タスクは続行され、エラーは無視されます。
- テーブルを一時停止: タスクは続行されますが、エラー レコードのあるテーブルのデータはエラー状態に移行し、そのデータはレプリケートされません
- タスクを停止: タスクは停止され、手動による操作が必要となります。
データ エラー処理のエスカレーション
その他のデータ エラーが発生した場合にエラー処理をエスカレートします (テーブルごと): このチェック ボックスをオンにすると、非切り捨てデータ エラーの数 (テーブルごと) が指定された量に達したときにエラー処理がエスカレートされます。有効な値は 1 ~ 10,000 です。
エスカレーション アクション: エラー処理がエスカレートされたときに実行される処理を選択します。使用できるアクションは、上記の [その他のデータ エラーの場合] ドロップダウン リストから選択したアクションに応じて異なります。
-
テーブルを一時停止 (既定): タスクは続行されますが、エラー レコードのあるテーブルのデータはエラー状態に移行し、そのデータは landed されません。
- タスクを停止: タスクは停止され、手動による操作が必要となります。
テーブル エラー
テーブル エラーが発生した場合: ドロップダウン リストから次のいずれかを選択できます。
- テーブルを一時停止 (既定): タスクは続行されますが、エラー レコードのあるテーブルのデータはエラー状態に移行し、そのデータはレプリケートされません
- タスクを停止: タスクは停止され、手動による操作が必要となります。
テーブル エラーが発生した場合にエラー処理をエスカレートします (テーブルごと): このチェック ボックスをオンにすると、テーブル エラーの数 (テーブルごと) が指定された量に達したときにエラー処理がエスカレートされます。有効な値は 1 ~ 10,000 です。
エスカレーション アクション: テーブル エラーのエスカレーション ポリシーは [タスクを停止] に設定されており、変更できません。
環境
-
最大再試行数: このオプションを選択すると、復元可能な環境エラーが発生した場合にタスクを再試行する最大回数を指定できます。タスクが指定された回数再試行されると、タスクは停止され、手動による操作が必要となります。
タスクを再試行しない場合は、チェック ボックスをオフにするか、「0」を指定します。
タスクを無限に再試行するには、「-1」を指定します。
-
再試行の間隔 (秒): カウンターを使用して、システムがタスクを再試行するまでに待機する秒数を選択または入力します。
有効な値は 0 ~ 2,000 です。
-
- 長時間の停止の場合は再試行間隔を長くする: 長時間停止した場合の再試行間隔を長くするには、このチェック ボックスをオンにします。このオプションを有効にすると、最大再試行間隔に達するまで、各再試行と次の再試行の間隔が 2 倍になります (指定された最大間隔に従って再試行を継続します)。
- 最大再試行間隔 (秒): [長時間の停止の場合は再試行間隔を長くする] オプションが有効になっている場合、カウンターを使用して、タスクの再試行間隔を待機する秒数を選択または入力します。有効な値は 0 ~ 2,000 です。
変更処理のチューニング
トランザクション オフロードのチューニング
-
次の場合に進行中のトランザクションをディスクにオフロード:
トランザクション データは通常、ソースまたはターゲットに完全にコミットされるまでメモリ内に保持されます。ただし、割り当てられたメモリより大きいトランザクション、または指定された制限時間内にコミットされないトランザクションは、ディスクにオフロードされます。
- 全トランザクションの総メモリ サイズが超過 (MB): すべてのトランザクションがディスクにオフロードされる前に、メモリで占有できる最大サイズ。規定値は 1024 です。
- トランザクション期間が次を超えています (秒): 各トランザクションがディスクにオフロードされるまでに、メモリに留まることができる最大時間。期間は、Qlik Talend Data Integration がトランザクションのキャプチャを開始した時間から計算されます。規定値は 60 です。
バッチ チューニング
-
トランザクションごとの最小変更数: 各トランザクションに含める変更の最小数。既定値は 1000 です。
情報メモ変更の数がトランザクションごとの最小変更数の値以上の場合、または以下で説明する適用前にトランザクションをバッチ処理する最大時間 (秒) の値に達した場合の、いずれかの先に発生したほうのタイミングでターゲットに変更を適用します。ターゲットに適用される変更の頻度はこれら 2 つのパラメーターによって制御されるため、ソース レコードへの変更がターゲット レコードにすぐに反映されない場合があります。
- 適用前にトランザクションをバッチ処理する最大時間 (秒): タイムアウトを宣言するまでにトランザクションをバッチで収集する最大時間。既定値は 1 です。
時間間隔
このオプションは次の場合にのみ使用できます。
- Data Movement gatewayを使う
- SaaS アプリケーション ソースからのデータのランディング
- タスクは変更データ キャプチャ (CDC)更新方法で定義されます
次の頻度で変更を読み込む (分)
ソースから変更を読み取る間隔を分単位で設定します。有効な範囲は 1 ~ 1,440 です。
その他のチューニング
- ステートメントのキャッシュ サイズ (ステートメントの数): 後で実行するためにサーバーに保存する準備済みステートメントの最大数 (ターゲットに変更を適用する場合)。既定値は 50 です。最大値は 200 です。
-
プライマリ キー列を更新する際の DELETE と INSERT: このオプションを使用するには、ソース データベースで完全なサプリメンタル ロギングをオンにする必要があります。
スキーマの進化
文字置換
ターゲット データベース内のソース文字の置換または削除、および/または選択した文字セットでサポートされていないソース文字の置換または削除ができます。
-
文字はすべて Unicode コード ポイントとして指定する必要があります。
- 文字置換は、 コントロール テーブルでも実行されます。
-
無効な値は、テーブルのセルの右上に赤い三角形で示されます。三角形の上にマウス カーソルを置くと、エラー メッセージが表示されます。
-
タスクに定義されたテーブルレベルまたはグローバル変換は、文字の置換が完了した後に実行されます。
-
[ソース文字の置換または削除] テーブルで定義された置換アクションは、 [選択した文字セットでサポートされていないソース文字の置換または削除] テーブルで定義された置換アクションの前に実行されます。
- 文字置換は LOB データ型をサポートしません。
ソース文字の置換または削除
[ソース文字の置換または削除] テーブルを使用して、特定のソース文字の置換を定義します。これは、文字の Unicode 表現がソース プラットフォームとターゲット プラットフォームで異なる場合などに便利です。たとえば、Linux では、Shift_JIS 文字セットのマイナス文字は U+2212 と表されますが、Windows では U+FF0D と表されます。
内容 | 実行すること |
---|---|
置換アクションを定義する。 |
|
指定されたソースまたはターゲットの文字を編集する |
行の最後にある をクリックして、 [編集] を選択します。 |
テーブルからエントリを削除する |
行の最後にある をクリックして、 [削除] を選択します。 |
選択した文字セットでサポートされていないソース文字の置換または削除
[文字セットでサポートされていないソース文字] テーブルを使用して、選択した文字セットでサポートされていないすべての文字に対して 1 つの置換文字を定義します。
内容 | 実行すること |
---|---|
置換アクションを定義または編集する。 |
|
置換アクションを無効にする。 |
[文字セット] ドロップダウン リストから空のエントリを選択します。 |
詳細オプション
これらのオプションは特定のバージョンまたは環境にのみ関連するため、UI では公開されていません。したがって、Qlik サポートまたは製品ドキュメントにより明示的に指示されない限り、これらのオプションを設定しないでください。
オプションを設定するには、オプションを [機能名の追加] 項目にコピーし、 [追加] をクリックします。次に、受け取った指示に従って値を設定するか、オプションを有効にします。
Data Movement gateway を使用しない場合のタスクのスケジュール設定
Data Movement gateway は Qlik Talend Cloud スターター サブスクリプションではサポートされておらず、他のサブスクリプション ティアではオプションとなっています。Data Movement gateway なしで作業する場合、ほぼリアルタイムの CDC (変更データ キャプチャ) はサポートされません。スケジュール間隔を設定してターゲット データを最新の状態に保ちます。スケジュールにより、ソース データセットの変更に応じてターゲット データセットを更新する頻度が決定されます。更新頻度はスケジュールによって決定されますが、更新方法はデータセットの種類によって決まります。ソース データセットが CDC (変更データ キャプチャ) をサポートしている場合は、ソース データへの変更のみがレプリケーションされ、対応するターゲット テーブルに適用されます。ソース データセットが CDC をサポートしていない場合 (ビューなど)、すべてのソース データを対応するターゲット テーブルに再ロードすることによって変更が適用されます。一部のソース データセットが CDC をサポートし、一部がサポートしない場合は、2 つの個別のサブタスクが作成されます (変更データ キャプチャ (CDC) 更新方法としてが選択されていると想定)。 1 つは CDC をサポートしないデータセットを再ロードするためのもので、もう 1 つは CDC をサポートするデータセットへの変更をキャプチャするためのものです。この場合、データの一貫性を確保するために、両方のサブタスクに同じスケジュールを設定することを強くお勧めします。
スケジュールを変更するには:
-
データ プロジェクトを開き、次のいずれかを実行します。
- タスク ビューで、データ タスクの [] をクリックし、 [スケジュール] を選択します。
- パイプライン ビューで、データ タスクの [] をクリックし、 [スケジュール] を選択します。
- レプリケーション タスクを開き、 [スケジュール] ツールバー ボタンをクリックします。
- 必要に応じてスケジュール設定を変更し、 [OK] をクリックします。