Skip to content

<- Concepts

転送実行

転送実行記録をプロセスヘッダーとして生成し、転送作業対象へ転送対象判定を適用して判定結果を実行するメインルーチン
id transfer-executionformat schema v2
defined
validation: okcoverage: completeopen questions none
meaning: presentresponsibilities: presentboundaries: presentinvariants: presentrationale: presentevidence: presentlinked concepts: present

Open Questions

  • None

Definition Statements

Meaning

11 statements

StatementText
データ転送処理のメインルーチン
transfer-execution
Transfer Execution とは、データ転送処理のメインルーチンである。
実行引数を Transfer Run として記録
transfer-execution-run-arguments-record
Transfer Execution は、実行引数を `Transfer Run` として記録する。
Transfer Run は、Transfer Execution の実行引数記録兼プロセスヘッダー
transfer-execution-run-arguments-record-2
`Transfer Run` は、Transfer Execution の実行引数記録兼プロセスヘッダーである。
Transfer Run は、Transfer Execution に従属
transfer-execution-run
`Transfer Run` は、Transfer Execution に従属する。
の外部入力は対象 Transfer Setting と実行引数であり、Destination や Destination Link は Transfer Setting から辿る
destination-link-transfer-execution-setting-run-arguments-target
Transfer Execution の外部入力は対象 `Transfer Setting` と実行引数であり、`Destination` や `Destination Link` は `Transfer Setting` から辿る。
対象 Transfer Setting に従って転送
transfer-execution-setting-target
Transfer Execution は、対象 `Transfer Setting` に従って転送する。
Transfer Run に記録された引数を転送条件として利用してよい。
transfer-execution-run-record
Transfer Execution は、`Transfer Run` に記録された引数を転送条件として利用してよい。
転送対象となる行を Transfer Run の引数として直接受け取らない。
transfer-execution-run-target
Transfer Execution は、転送対象となる行を `Transfer Run` の引数として直接受け取らない。
Dirty Key Management に蓄積された変更検知履歴を Work Item として固定化
dirty-key-transfer-execution-change-detection-history-management
Transfer Execution は、`Dirty Key` Management に蓄積された変更検知履歴を `Work Item` として固定化する。
Work Item を作るとき Dirty Key Processing に記録済みの Dirty Key を除外
dirty-key-processing-transfer-execution-record-work-item
Transfer Execution は、`Work Item` を作るとき `Dirty Key Processing` に記録済みの `Dirty Key` を除外する。
Work Item に転送対象判定を適用し、その結果を実行する
transfer-execution-decide-work-item
Transfer Execution は、`Work Item` に `Transfer Target Decision` を適用し、その結果を実行する。

Responsibilities

10 statements

StatementText
実行引数を Transfer Run として作成し、実行開始時の引数と進捗状態を追跡できるように
transfer-execution-run-arguments-state-trace-create
Transfer Execution は、実行引数を `Transfer Run` として作成し、実行開始時の引数と進捗状態を追跡できるようにする。
対象 Transfer Setting を参照
transfer-execution-setting-target-reference
Transfer Execution は、対象 `Transfer Setting` を参照する。
Transfer Setting に紐づく Destination Link 群と、その先の Destination 群を参照
destination-link-transfer-execution-setting-reference-belongs
Transfer Execution は、`Transfer Setting` に紐づく `Destination Link` 群と、その先の `Destination` 群を参照する。
Dirty Key Management に蓄積された行を Work Item として固定化
dirty-key-transfer-execution-management-work-item
Transfer Execution は、`Dirty Key` Management に蓄積された行を `Work Item` として固定化する。
Work Item が持つ転送対象判定の結果をもとに、実際の転送処理へ進める
transfer-execution-decide-work-item-2
Transfer Execution は、`Work Item` が持つ転送対象判定の結果をもとに、実際の転送処理へ進める。
転送元の現在値が存在するかどうかを確認
transfer-execution-source-exists
Transfer Execution は、転送元の現在値が存在するかどうかを確認する。
既存の Active Black が存在するかどうかを確認
transfer-execution-exists-active-black
Transfer Execution は、既存の `Active Black` が存在するかどうかを確認する。
Transfer Target Decision の結果に従って Black Transfer、Red Transfer、Physical Delete Transfer、または no-op を実行する
black-transfer-destination-physical-delete-red-execution-decide
Transfer Execution は、`Transfer Target Decision` の結果に従って `Black Transfer`、`Red Transfer`、`Physical Delete Transfer`、または no-op を実行する。
immutable transfer model では Lineage 作成を伴う Black Transfer または Red Transfer を選択できるように
black-transfer-lineage-red-execution-create-immutable-model
Transfer Execution は、`immutable transfer model` では `Lineage` 作成を伴う `Black Transfer` または `Red Transfer` を選択できるようにする。
転送が終わった Work Item を Dirty Key Processing に記録し、処理済みとして扱える状態に
dirty-key-processing-transfer-execution-processed-state-record
Transfer Execution は、転送が終わった `Work Item` を `Dirty Key Processing` に記録し、処理済みとして扱える状態にする。

Boundaries

7 statements

StatementTextSimilarity negated
Transfer Run を事前に積まれた実行待ち項目として扱わない。
not-transfer-execution-run
Transfer Execution は、`Transfer Run` を事前に積まれた実行待ち項目として扱わない。transfer-run
Dirty Key 自体に処理済み状態を書き込まない。
not-dirty-key-transfer-execution-processed-state
Transfer Execution は、`Dirty Key` 自体に処理済み状態を書き込まない。dirty-key
Transfer Setting の内容や Destination の転送先仕様を変更しない
not-destination-transfer-execution-setting
Transfer Execution は、`Transfer Setting` の内容や `Destination` の転送先仕様を変更しない。destination, transfer-setting
Dirty Key の登録方法を定義しない
not-dirty-key-transfer-execution-define
Transfer Execution は、`Dirty Key` の登録方法を定義しない。dirty-key
Black Transfer、Red Transfer、Active Black、Lineage の保存形式を定義しない
not-black-transfer-lineage-red-execution-define-active
Transfer Execution は、`Black Transfer`、`Red Transfer`、`Active Black`、`Lineage` の保存形式を定義しない。black-transfer, lineage, red-transfer
スケジューリングそのものを管理しない
not-transfer-execution-manage
Transfer Execution は、スケジューリングそのものを管理しない。-
SQL 生成手順や SQL 実行手順の具体形を定義しない
not-transfer-execution-produce-define-sql
Transfer Execution は、SQL 生成手順や SQL 実行手順の具体形を定義しない。-

Invariants

15 statements

StatementText
必ず Transfer Run をプロセスヘッダーとして持つ
transfer-execution-run-2
Transfer Execution は、必ず `Transfer Run` をプロセスヘッダーとして持つ。
Transfer Run を生成
transfer-execution-run-produce
Transfer Execution は、`Transfer Run` を生成する。
必ず1つの Transfer Setting を対象に
transfer-execution-setting-target-requires-one
Transfer Execution は、必ず1つの `Transfer Setting` を対象にする。
Destination や Destination Link を外部入力として要求しない
destination-link-transfer-execution
Transfer Execution は、`Destination` や `Destination Link` を外部入力として要求しない。
転送対象行を Transfer Run の引数として受け付けない。
transfer-execution-run-target-row
Transfer Execution は、転送対象行を `Transfer Run` の引数として受け付けない。
Dirty Key を変更通知として扱い、Dirty Key だけで転送操作を決定しない
dirty-key-transfer-execution-not-decide
Transfer Execution は、`Dirty Key` を変更通知として扱い、`Dirty Key` だけで転送操作を決定しない。
Dirty Key を Work Item として固定化してから転送処理に使う。
dirty-key-transfer-execution-work-item
Transfer Execution は、`Dirty Key` を `Work Item` として固定化してから転送処理に使う。
Work Item を作る前に Dirty Key Processing を参照して処理済み Dirty Key を除外
dirty-key-processing-transfer-execution-processed-reference-work
Transfer Execution は、`Work Item` を作る前に `Dirty Key Processing` を参照して処理済み `Dirty Key` を除外する。
Dirty Key 自体に処理済み状態を書き込まない。
dirty-key-transfer-execution-processed-state
Transfer Execution は、`Dirty Key` 自体に処理済み状態を書き込まない。
転送が終わった Work Item を Dirty Key Processing に記録
dirty-key-processing-transfer-execution-record-work-item-2
Transfer Execution は、転送が終わった `Work Item` を `Dirty Key Processing` に記録する。
転送対象判定の結果を転送処理の判断材料として扱う
transfer-execution-source-decide-active-black
Transfer Execution は、転送対象判定の結果を転送処理の判断材料として扱う。
Transfer Target Decision の結果に従って転送表現を実行する。
destination-transfer-execution-model
Transfer Execution は、`Transfer Target Decision` の結果に従って転送表現を実行する。
immutable transfer model では、Lineage は Black Transfer または Red Transfer の成功結果として扱う
black-transfer-lineage-red-immutable-model
`immutable transfer model` では、`Lineage` は `Black Transfer` または `Red Transfer` の成功結果として扱う。
immutable transfer model では、既存の Active Black を取り消す場合に Red Transfer を使う
red-transfer-immutable-model-active-black
`immutable transfer model` では、既存の `Active Black` を取り消す場合に `Red Transfer` を使う。
mutable transfer model では、既存行の現在値反映は Black Update Transfer として扱い、取消は Physical Delete Transfer として扱う
black-update-transfer-physical-delete-mutable-model
`mutable transfer model` では、既存行の現在値反映は Black Update Transfer として扱い、取消は `Physical Delete Transfer` として扱う。

Rationale

5 statements

StatementText
Owns the Main Routine
destination-dirty-key-transfer-execution-run-setting-lifecycle
Transfer Execution Owns the Main Routine: Transfer Execution は、転送処理のメインルーチンである。 `Transfer Run` は Transfer Execution の引数記録兼プロセスヘッダーであり、実行全体のライフサイクル状態を保持するが、転送対象判定そのものではない。 `Dirty Key` は変更通知であり、どのように転送するかを決定しない。 そのため、Transfer Execution は `Work Item` に `Transfer Target Decision` を適用し、その判定結果に従って転送表現を実行する。
Transfer Run Provides the Execution Context
transfer-execution-run-setting-source-arguments-context-target
Transfer Run Provides the Execution Context: Transfer Execution は、転送元、転送条件、実行開始時引数を `Transfer Run` として記録する。 `Transfer Run` は、Transfer Execution が生成する実行引数記録兼プロセスヘッダーである。 `Transfer Run` は、進捗管理、監査、デバッグの実行文脈として有用である。 Transfer Execution は対象 `Transfer Setting` を実行し、その実行文脈を `Transfer Run` として残す。
Dirty Key Provides Candidates, Not Operations
black-transfer-dirty-key-processing-physical-delete-red
Dirty Key Provides Candidates, Not Operations: `Dirty Key` は、転送元行に何らかの変更が起きた可能性を示す。 `Dirty Key` は変更通知であり、`Black Transfer`、`Red Transfer`、`Physical Delete Transfer`、または no-op を直接表さない。 Transfer Execution は、`Dirty Key` が示す候補を `Work Item` として固定化し、`Transfer Target Decision` を適用する。 Transfer Execution は、処理後に `Dirty Key Processing` へ記録し、`Work Item` を処理済みとして扱える状態にする。
Transfer Decision Is Applied Through Transfer Target Decision
black-transfer-update-physical-delete-red-execution-source
Transfer Decision Is Applied Through Transfer Target Decision: Transfer Execution は、`Work Item` に `Transfer Target Decision` を適用し、転送要否と転送表現候補の結果を得る。具体的な判定表は `Transfer Target Decision` と Transfer Execution Process Map が扱う。Transfer Execution はその結果に従って、転送をスキップするか、`Black Transfer`、`Red Transfer`、`Physical Delete Transfer` の処理へ進める。
Immutable Transfer Produces Traceable Destination Rows
black-transfer-destination-lineage-red-execution-row-record
Immutable Transfer Produces Traceable Destination Rows: `immutable transfer model` では、転送先行を履歴として積み増す。 そのため、`Black Transfer` または `Red Transfer` が成功した場合、生成された転送先行の由来を `Lineage` として追跡できる必要がある。 Transfer Execution は `Lineage` を直接記録する概念ではなく、`Lineage` 作成を伴う転送表現を選択する。
  • None

External Relationships

ConceptKindReasonSupported byEvidence
転送実行記録
transfer-run
producesTransfer Execution は実行引数記録兼プロセスヘッダーとして Transfer Run を生成する。transfer-execution-run-arguments-state-trace-create, transfer-execution-run-2, transfer-execution-run-producespec:transfer-execution
転送設定
transfer-setting
usesTransfer Execution は Transfer Run が対象にする Transfer Setting に従う。transfer-execution-setting-target-reference, destination-link-transfer-execution-setting-reference-belongs, transfer-execution-setting-target-requires-onespec:transfer-execution
転送先仕様
destination
usesTransfer Execution は Destination の transfer model と転送先側ルールを参照する。destination-link-transfer-execution-setting-reference-belongs, black-transfer-destination-physical-delete-red-execution-decide, destination-link-transfer-executionspec:transfer-execution
変更キー
dirty-key
consumesTransfer Execution は Dirty Key Management の記録を転送候補として消費する。dirty-key-transfer-execution-management-work-item, dirty-key-processing-transfer-execution-processed-state-record, dirty-key-transfer-execution-not-decidespec:transfer-execution
変更キー処理結果
dirty-key-processing
usesTransfer Execution は Work Item 作成前に Dirty Key Processing を参照して処理済み Dirty Key を除外し、処理後に Dirty Key Processing を記録する。dirty-key-processing-transfer-execution-processed-state-record, dirty-key-processing-transfer-execution-processed-reference-work, dirty-key-processing-transfer-execution-record-work-item-2spec:transfer-execution
転送作業対象
work-item
producesTransfer Execution は Dirty Key を Work Item として固定化する。dirty-key-transfer-execution-management-work-item, transfer-execution-decide-work-item-2, dirty-key-transfer-execution-work-itemspec:transfer-execution
転送作業対象
work-item
usesTransfer Execution は Work Item に Transfer Target Decision を適用し、転送要否と転送表現候補を得る。dirty-key-transfer-execution-management-work-item, transfer-execution-decide-work-item-2, dirty-key-transfer-execution-work-itemspec:transfer-execution
有効黒伝
active-black
usesTransfer Execution は Transfer Target Decision の結果に従って黒転送、赤転送、更新、削除、または no-op を実行する。transfer-execution-exists-active-black, transfer-execution-source-decide-active-black, red-transfer-immutable-model-active-blackspec:transfer-execution
黒伝転送
black-transfer
usesTransfer Execution は現在の転送元値を転送先へコピーすべき場合に Black Transfer を実行する。black-transfer-destination-physical-delete-red-execution-decide, black-transfer-lineage-red-execution-create-immutable-model, black-transfer-lineage-red-immutable-modelspec:transfer-execution
赤伝転送
red-transfer
usesTransfer Execution は immutable transfer model で active black row を反転すべき場合に Red Transfer を実行する。red-transfer-immutable-model-active-black, black-transfer-destination-physical-delete-red-execution-decide, black-transfer-lineage-red-execution-create-immutable-modelspec:transfer-execution
物理削除転送
physical-delete-transfer
usesTransfer Execution は mutable transfer model の削除ケースで Physical Delete Transfer を使う。black-transfer-destination-physical-delete-red-execution-decide, black-update-transfer-physical-delete-mutable-model, black-transfer-dirty-key-processing-physical-delete-redspec:transfer-execution
転送対象判定
transfer-target-decision
usesTransfer Execution は Work Item に Transfer Target Decision を適用し、転送要否と転送表現候補を得る。transfer-execution-decide-work-item, transfer-execution-decide-work-item-2spec:transfer-execution

Coverage

AreaCoverageReasonResolution criteria
definitioncompleteconcept.json の意味、責務、境界、不変条件、理由を curated statement として移植済み。-
relationshipscompleteconcept-relationship.json と移行元 concept.json の外部関係を反映済み。-

Evidence

Evidence IDTypePathExists
spec:transfer-executionspecconcept.jsonyes

Validation

  • No validation issues.

Technical Metadata

  • Source JSON: packages/transfer/docs/concepts/transfer-execution/concept.json

Released under the MIT License.