転送先リンク
転送設定のデータソースを特定の転送先仕様へ接続する設定
defined
validation: okcoverage: completeopen questions none
meaning: presentresponsibilities: presentboundaries: presentinvariants: presentrationale: presentevidence: presentlinked concepts: present
Open Questions
- None
Definition Statements
Meaning
7 statements
| Statement | Text |
|---|---|
転送設定のデータソースを特定の転送先仕様へ接続する設定destination-link-transfer-setting | 転送先リンクとは、`転送設定` のデータソースを特定の `転送先仕様` へ接続する設定である。 |
Transfer Setting は、複数の Destination Link を持ってよい。destination-link-transfer-setting-2 | `Transfer Setting` は、複数の Destination Link を持ってよい。 |
同じ転送元データソースのスナップショットを複数 Destination へ一貫して流すための接続定義destination-link-source | Destination Link は、同じ転送元データソースのスナップショットを複数 `Destination` へ一貫して流すための接続定義である。 |
どの Destination へ送るか、どの順序で送るか、転送元列を Destination 列へどう対応させるかを定義destination-link-source-2 | Destination Link は、どの `Destination` へ送るか、どの順序で送るか、転送元列を `Destination` 列へどう対応させるかを定義する。 |
同じ Transfer Setting source key から生成される宛先別の行役割を識別destination-link-transfer-setting-produce-source-key | Destination Link は、同じ `Transfer Setting` `source key` から生成される宛先別の行役割を識別する。 |
同じ Destination が、同一 Transfer Setting から複数の Destination Link として参照されてもよいdestination-link-transfer-setting-reference | 同じ `Destination` が、同一 `Transfer Setting` から複数の Destination Link として参照されてもよい。 |
同じ Destination を複数回参照する場合、各 Destination Link は異なる役割、実行順、または mapping を持つ別の転送単位として扱うdestination-link-reference-mapping | 同じ `Destination` を複数回参照する場合、各 Destination Link は異なる役割、実行順、または mapping を持つ別の転送単位として扱う。 |
Responsibilities
6 statements
| Statement | Text |
|---|---|
接続先の Destination を示すdestination-link | Destination Link は、接続先の `Destination` を示す。 |
Transfer Setting 内での宛先別の実行順を持ってよい。destination-link-transfer-setting-3 | Destination Link は、`Transfer Setting` 内での宛先別の実行順を持ってよい。 |
宛先別の source-to-destination mapping を持つdestination-link-source-mapping | Destination Link は、宛先別の source-to-destination mapping を持つ。 |
Transfer Setting の source key から生成される宛先別の destination row key の対応を示せる必要があるdestination-link-transfer-setting-produce-source-key-row | Destination Link は、`Transfer Setting` の `source key` から生成される宛先別の `destination row key` の対応を示せる必要がある。 |
宛先別の差分比較除外列を持つdestination-link-2 | Destination Link は、宛先別の差分比較除外列を持つ。 |
source-to-destination mapping に依存する AOT 生成済み転送 SQL を保持してよい。destination-link-produce-hold-source-mapping-aot-sql | Destination Link は、source-to-destination mapping に依存する AOT 生成済み転送 SQL を保持してよい。 |
Boundaries
7 statements
| Statement | Text | Similarity negated |
|---|---|---|
転送元データソースそのものを定義しないnot-destination-link-source-define | Destination Link は、転送元データソースそのものを定義しない。 | destination |
Destination の転送先テーブル仕様を定義しないnot-destination-link-define | Destination Link は、`Destination` の転送先テーブル仕様を定義しない。 | destination |
Transfer Run の作成、スケジューリング、実行タイミングを管理しないnot-destination-link-transfer-run-create-manage | Destination Link は、`Transfer Run` の作成、スケジューリング、実行タイミングを管理しない。 | destination, transfer-run |
転送実行状態や転送結果を管理しないnot-destination-link-state-manage | Destination Link は、転送実行状態や転送結果を管理しない。 | destination |
Dirty Key の意味や登録方法を定義しないnot-destination-link-dirty-key-define | Destination Link は、`Dirty Key` の意味や登録方法を定義しない。 | destination, dirty-key |
Active Black や Lineage の記録そのものではない。not-destination-link-lineage-record-active-black | Destination Link は、`Active Black` や `Lineage` の記録そのものではない。 | destination, lineage |
Transfer Setting の source key を再定義しないnot-destination-link-transfer-setting-define-source-key | Destination Link は、`Transfer Setting` の `source key` を再定義しない。 | destination, transfer-setting |
Invariants
9 statements
| Statement | Text |
|---|---|
必ず1つの Transfer Setting に属destination-link-transfer-setting-requires-one | Destination Link は、必ず1つの `Transfer Setting` に属する。 |
必ず1つの Destination を参照destination-link-reference-requires-one | Destination Link は、必ず1つの `Destination` を参照する。 |
Transfer Setting と Destination の組み合わせだけでなく、宛先別の役割や mapping を表す。destination-link-transfer-setting-mapping | Destination Link は、`Transfer Setting` と `Destination` の組み合わせだけでなく、宛先別の役割や mapping を表す。 |
同じ Transfer Setting から同じ Destination へ複数の Destination Link を定義してもよい。destination-link-transfer-setting-4 | 同じ `Transfer Setting` から同じ `Destination` へ複数の Destination Link を定義してもよい。 |
同じ Destination を複数回参照する Destination Link は、それぞれ独立した転送単位として扱うdestination-link-reference | 同じ `Destination` を複数回参照する Destination Link は、それぞれ独立した転送単位として扱う。 |
の mapping は、Transfer Setting の基礎 SQL の結果を Destination の列へ対応させるためのものであり、Destination の物理仕様を再定義しないdestination-link-transfer-setting-base-sql-not-define | Destination Link の mapping は、`Transfer Setting` の基礎 SQL の結果を `Destination` の列へ対応させるためのものであり、`Destination` の物理仕様を再定義しない。 |
Transfer Setting の source key を再定義しないdestination-link-transfer-setting-not-define-source-key | Destination Link は、`Transfer Setting` の `source key` を再定義しない。 |
Lineage と Active Black は、Destination 単体ではなく Destination Link の文脈で destination row を区別destination-link-lineage-context-distinguish-active-black-row | `Lineage` と `Active Black` は、`Destination` 単体ではなく Destination Link の文脈で destination row を区別する。 |
source-to-destination mapping に依存する生成済み転送 SQL を保持する場合、その所属先は Transfer Setting 単体でも Destination 単体でもなく、Destination Linkdestination-link-transfer-setting-produce-hold-source-mapping | source-to-destination mapping に依存する生成済み転送 SQL を保持する場合、その所属先は `Transfer Setting` 単体でも `Destination` 単体でもなく、Destination Link である。 |
Rationale
4 statements
| Statement | Text |
|---|---|
Connects One Data Source to One Destination Roledestination-link-transfer-setting-source-reference-produce-distinguish | Destination Link Connects One Data Source to One Destination Role: `Transfer Setting` は、転送元データソースを定義する。 `Destination` は、転送先テーブルへ書き込むために必要な転送先側の仕様を定義する。 Destination Link は、その間に立ち、同じデータソースをどの `Destination` のどの役割へ流すかを定義する。 これにより、1つのデータソースの同じスナップショットから、複数の `Destination` 行を一貫して生成できる。 `Transfer Setting` の `source key` は、データソースの再評価単位を識別する正本である。 Destination Link は、その `source key` から生成される宛先別の行役割と `destination row key` の対応を示す。 たとえば、1つの売上 `source key` から、仕訳、借方科目、貸方科目の3つの destination row を生成する場合、それぞれを別の Destination Link として区別する。借方科目と貸方科目が同じ `Destination` を参照する場合でも、Destination Link が異なれば別の転送単位として扱う。 |
Same Destination May Be Referenced More Than Oncedestination-link-lineage-transfer-setting-active-black-trace | Same Destination May Be Referenced More Than Once: 1つのデータソースから、同じ `Destination` に対して複数の行を生成したい場合がある。 この場合、`Destination` は同じでも、Destination Link ごとに役割、実行順、mapping が異なる。 そのため、同一 `Transfer Setting` 内で同じ `Destination` を複数 Destination Link として参照できる必要がある。 この区別は、`Lineage` と `Active Black` の文脈でも必要である。`Destination` が同じでも、Destination Link が異なれば、由来追跡や現在有効な黒伝の判断は別の文脈として扱う。 |
Mapping-Dependent Generated SQL Belongs to the Destination Linkblack-insert-transfer-update-destination-link-physical-delete | Mapping-Dependent Generated SQL Belongs to the Destination Link: AOT 生成された転送 SQL のうち、source-to-destination mapping に依存する SQL は、`Transfer Setting` 単体にも `Destination` 単体にも属さない。 転送 SQL は、`Transfer Setting` の基礎 SQL、`Destination` の列や transfer model、Destination Link の mapping や宛先別設定の組み合わせで決まる。 そのため、mapping に依存する生成済み転送 SQL を保持する場合、その自然な所属先は Destination Link である。 `Red Transfer` は転送先側の元黒行から赤伝を作るため、Destination Link の source-to-destination mapping には依存しない。 そのため、生成済み `Red Transfer` SQL は Destination 側に属する。 保持する SQL の具体的な種類は実装 Issue で決める。たとえば Black Insert Transfer、Black Update Transfer、`Physical Delete Transfer` など、mapping に依存する転送表現ごとの SQL を保持することがある。 |
差分比較除外列はDestination Linkに一本化するdestination-link-owns-diff-compare-excluded-columns | 差分比較除外列は、転送対象判定で比較を無視する転送先列である。Destination に置き、さらに Destination Link で上書きできるようにすると、正本と例外の関係が複雑になる。Destination Link は宛先別の役割や mapping を表すため、特定の転送だけ比較を無視したい列も Destination Link の設定で表現できる。したがって、差分比較除外列の管理場所は Destination Link に一本化し、Destination は差分比較除外列を持たない。 |
Internal Links
- None
External Relationships
| Concept | Kind | Reason | Supported by | Evidence |
|---|---|---|---|---|
転送設定transfer-setting | depends-on | Destination Link は必ず1つの Transfer Setting に属する。 | destination-link-transfer-setting-3, destination-link-transfer-setting-produce-source-key-row, destination-link-transfer-setting-requires-one | spec:destination-link |
転送先仕様destination | uses | Destination Link は Transfer Setting のデータソースを1つの Destination へ接続する。 | destination-link, destination-link-transfer-setting-3, destination-link-source-mapping | spec:destination-link |
転送先仕様destination | must-not-redefine | Destination Link のマッピングは Destination の物理的な意味を再定義しない。 | destination-link, destination-link-transfer-setting-3, destination-link-source-mapping | spec:destination-link |
Coverage
| Area | Coverage | Reason | Resolution criteria |
|---|---|---|---|
definition | complete | concept.json の意味、責務、境界、不変条件、理由を curated statement として移植済み。 | - |
relationships | complete | concept-relationship.json と移行元 concept.json の外部関係を反映済み。 | - |
Evidence
| Evidence ID | Type | Path | Exists |
|---|---|---|---|
spec:destination-link | spec | concept.json | yes |
Validation
- No validation issues.
Technical Metadata
- Source JSON:
packages/transfer/docs/concepts/destination-link/concept.json