転送先仕様
転送先テーブルへ書き込むために必要な転送先側の仕様
defined
validation: okcoverage: completeopen questions none
meaning: presentresponsibilities: presentboundaries: presentinvariants: presentrationale: presentevidence: presentlinked concepts: present
Open Questions
- None
Definition Statements
Meaning
10 statements
| Statement | Text |
|---|---|
転送先テーブルへ書き込むために必要なテーブル、列、キー、採番、転送モデル、赤伝生成に関する転送先側の仕様destination-red-transfer-produce | Destination とは、転送先テーブルへ書き込むために必要なテーブル、列、キー、採番、転送モデル、赤伝生成に関する転送先側の仕様である。 |
Definition とは、Destination を名前で再利用できるように永続化した定義destination-definition | Destination Definition とは、Destination を名前で再利用できるように永続化した定義である。 |
table とは、転送によって実際に行が書き込まれる物理的な転送先テーブルdestination-table | `destination table` とは、転送によって実際に行が書き込まれる物理的な転送先テーブルである。 |
table そのものではなく、転送アプリケーションがそのテーブルへ書き込むために参照する仕様destination-reference-table | Destination は `destination table` そのものではなく、転送アプリケーションがそのテーブルへ書き込むために参照する仕様である。 |
スキーマ名などを含む完全修飾された転送先テーブル名で一意に特定できるdestination | Destination は、スキーマ名などを含む完全修飾された転送先テーブル名で一意に特定できる。 |
Transfer Setting から独立した転送先仕様destination-transfer-setting | Destination は、`Transfer Setting` から独立した転送先仕様である。 |
Transfer Setting ごとに再定義しないdestination-transfer-setting-not-define | Destination は、`Transfer Setting` ごとに再定義しない。 |
複数の Transfer Setting から参照されてよい。destination-transfer-setting-reference | Destination は、複数の `Transfer Setting` から参照されてよい。 |
転送先テーブルの物理 DDL そのものではない。転送アプリケーションが必要とする転送先仕様destination-ddl | Destination は、転送先テーブルの物理 DDL そのものではない。転送アプリケーションが必要とする転送先仕様である。 |
table を transfer 専用のシステムテーブルとして所有しないdestination-table-transfer | Destination は、`destination table` を transfer 専用のシステムテーブルとして所有しない。 |
Responsibilities
9 statements
| Statement | Text |
|---|---|
スキーマ名などを含む完全修飾された転送先テーブル名を持つdestination-2 | Destination は、スキーマ名などを含む完全修飾された転送先テーブル名を持つ。 |
転送先テーブルへ書き込む列を識別できる情報を持つdestination-3 | Destination は、転送先テーブルへ書き込む列を識別できる情報を持つ。 |
転送先行を後から識別できるキー定義を持つdestination-row | Destination は、転送先行を後から識別できるキー定義を持つ。 |
転送先行を新規作成する際に、転送先側で採番値を得るための式または規則を持ってよい。destination-row-create | Destination は、転送先行を新規作成する際に、転送先側で採番値を得るための式または規則を持ってよい。 |
転送先の保存モデルとして transfer model を示すdestination-transfer-model | Destination は、転送先の保存モデルとして transfer model を示す。 |
赤伝生成に必要な転送先側の列情報を持ってよい。destination-red-transfer-produce-2 | Destination は、赤伝生成に必要な転送先側の列情報を持ってよい。 |
が immutable transfer model で Red Transfer を扱う場合、数量や金額など、少なくとも1つの符号反転列を識別できる必要があるdestination-red-transfer-immutable-model | Destination が `immutable transfer model` で `Red Transfer` を扱う場合、数量や金額など、少なくとも1つの符号反転列を識別できる必要がある。 |
AOT 生成された Red Transfer SQL を保持してよい。destination-red-transfer-produce-hold-aot-sql | Destination は、AOT 生成された `Red Transfer` SQL を保持してよい。 |
必要に応じて日付下限制御の補正関数hookを持ってよい。destination-posting-date-lower-bound-hook | Destination は、必要に応じて日付下限制御の補正関数hookを持ってよい。 |
Boundaries
9 statements
| Statement | Text | Similarity negated |
|---|---|---|
転送元 SQL の列名、構造、抽出条件を定義しないnot-destination-source-define-sql | Destination は、転送元 SQL の列名、構造、抽出条件を定義しない。 | - |
source-to-destination mapping を定義しないnot-destination-define-source-mapping | Destination は、source-to-destination mapping を定義しない。 | - |
source-to-destination mapping は、Destination Link の文脈で扱うnot-destination-link-context-source-mapping | source-to-destination mapping は、`Destination Link` の文脈で扱う。 | destination-link |
Transfer Setting ごとの実行順序や有効無効を定義しないnot-destination-transfer-setting-define | Destination は、`Transfer Setting` ごとの実行順序や有効無効を定義しない。 | transfer-setting |
転送実行状態、転送結果、実行履歴を管理しないnot-destination-state-manage | Destination は、転送実行状態、転送結果、実行履歴を管理しない。 | - |
転送先行の由来追跡や、赤伝時に参照すべき現在有効な黒を管理しないnot-destination-lineage-active-black-row-trace-red | Destination は、転送先行の由来追跡や、赤伝時に参照すべき現在有効な黒を管理しない。 | lineage |
SQL 生成手順や SQL 実行手順を定義しないnot-destination-produce-define-sql | Destination は、SQL 生成手順や SQL 実行手順を定義しない。 | - |
差分比較除外列を定義しないnot-destination-transfer-setting-define-2 | Destination は、差分比較除外列、つまり転送対象判定で比較を無視する列を定義しない。 | transfer-setting |
Transfer Setting の都合で転送先テーブル、キー、採番、transfer model の意味を変えない。not-destination-transfer-setting-model | Destination は、`Transfer Setting` の都合で転送先テーブル、キー、採番、transfer model の意味を変えない。 | transfer-setting |
Invariants
13 statements
| Statement | Text |
|---|---|
転送先の保存モデルを表す。destination-4 | Destination は、転送先の保存モデルを表す。 |
転送元ごとに作らない。destination-source | Destination は、転送元ごとに作らない。 |
の転送先テーブル名は、同じ package 内で一意であり、同じ物理転送先テーブルを複数の Destination Definition として再定義しないdestination-not-define-package-definition | Destination の転送先テーブル名は、同じ package 内で一意であり、同じ物理転送先テーブルを複数の Destination Definition として再定義しない。 |
Transfer Setting から再利用されてよい。destination-transfer-setting-2 | Destination は、`Transfer Setting` から再利用されてよい。 |
Transfer Setting に依存してはならない。destination-transfer-setting-3 | Destination は、`Transfer Setting` に依存してはならない。 |
Transfer Setting は、Destination を参照してよいが、Destination の意味を上書きしてはならない。destination-transfer-setting-reference-2 | `Transfer Setting` は、Destination を参照してよいが、Destination の意味を上書きしてはならない。 |
の transfer model は、後続の転送 SQL 生成と転送実行の前提になる。destination-produce-transfer-model-sql | Destination の transfer model は、後続の転送 SQL 生成と転送実行の前提になる。 |
immutable transfer model の Destination は、Red Transfer のために少なくとも1つの符号反転列を識別できる必要があるdestination-red-transfer-immutable-model-2 | `immutable transfer model` の Destination は、`Red Transfer` のために少なくとも1つの符号反転列を識別できる必要がある。 |
のキー定義は、転送先行を後から参照できる必要がある。destination-row-reference | Destination のキー定義は、転送先行を後から参照できる必要がある。 |
の採番式は、転送先定義側で管理destination-5 | Destination の採番式は、転送先定義側で管理する。 |
Transfer Setting の基礎 SQL は、Destination の採番式を使って destination row key を投影してよいdestination-transfer-setting-base-sql-row-key | `Transfer Setting` の基礎 SQL は、Destination の採番式を使って `destination row key` を投影してよい。 |
transfer engine は、Transfer Setting の基礎 SQL に採番式や destination row key を暗黙に追加しないdestination-transfer-setting-base-sql-engine-row-key | transfer engine は、`Transfer Setting` の基礎 SQL に採番式や `destination row key` を暗黙に追加しない。 |
転送先テーブルの物理 DDL そのものではない。destination-ddl-2 | Destination は、転送先テーブルの物理 DDL そのものではない。 |
Rationale
10 statements
| Statement | Text |
|---|---|
Has Transfer Modeldestination-has-transfer-model-yaml-immutable-mutable | Destination は、転送先行の保存方法を決める `transfer_model` を持つ。値は `immutable` または `mutable` である。 |
immutabledestination-row-red-transfer-produce-not-define-immutable | `immutable` は、転送先行を直接更新・削除せず、履歴として積み増す転送モデルである。更新時は元黒を赤伝化して新黒を追加し、削除時は元黒を赤伝化する。 |
mutabledestination-row-physical-delete-produce-not-define-mutable | `mutable` は、転送先行を直接更新・削除する転送モデルである。更新時は転送先行を直接更新し、削除時は転送先行を物理削除する。 |
Transfer Model Changes Are Migration-Level Decisionsdestination-lineage-physical-delete-transfer-row-red-black | Destination の `transfer_model` は、転送先行をどう保存し、どう取り消し、どう更新するかを決める保存モデルである。既に転送が行われた後の変更は通常編集ではなく migration-level decision として扱い、履歴解釈、`Lineage` の不完全性、`Active Black` の扱いが変わることを人間に警告する。 |
Owns Red Transfer Column Informationdestination-red-transfer-black-produce-owns-column-information | Destination は、赤伝生成に必要な転送先側の符号反転列情報を持ってよい。符号反転列は、既に転送されている元黒を転送先側でどう反転するかを示す仕様であり、具体的な SQL 生成手順ではない。 |
Generated Red Transfer SQL Belongs to Destinationdestination-link-posting-date-lower-bound-red-transfer | `Red Transfer` は、既に転送されている元黒行を転送先側で反転して生成する。AOT 生成された赤伝SQLを保持する場合、その所属先は `Destination Link` ではなく Destination である。 |
Has Destination Columnsdestination-red-transfer-reference-hold-has-columns-public | Destination は、転送先テーブルへ書き込む列を識別できる必要がある。同じ物理転送先テーブルを複数の Destination Definition として再定義すると、transfer model、キー定義、採番式、赤伝列情報の正本が分裂する。 |
Has Key Definitiondestination-row-reference-has-key-definition | Destination は、転送先行を後から参照できる必要がある。キーはサロゲートキー、自然キー、複合キーを取り得る。 |
Has Sequence Expressiondestination-transfer-setting-row-base-sql-create-has | Destination は、転送先行を新規作成する際に採番値を得るための式または規則を持ってよい。採番式は転送先仕様であり、`Transfer Setting` の基礎 SQL へ暗黙には追加されない。 |
Is Independent From Transfer Settingdestination-transfer-setting-reference-independent-from-journal-account | Destination は複数の `Transfer Setting` から参照されてよい。そのため、Destination は `Transfer Setting` の子概念ではなく、独立した転送先側の仕様として扱う。 |
Internal Links
- None
External Relationships
| Concept | Kind | Reason | Supported by | Evidence |
|---|---|---|---|---|
転送設定transfer-setting | is-distinct-from | Destination は Transfer Setting の子ではなく、独立した転送先側の仕様である。 | destination-transfer-setting-2, destination-transfer-setting-3, destination-transfer-setting-reference-2 | spec:destination |
転送設定transfer-setting | must-not-redefine | Destination は Transfer Setting 固有の都合で転送先側の意味を変えない。 | destination-transfer-setting-2, destination-transfer-setting-3, destination-transfer-setting-reference-2 | spec:destination |
日付下限制御posting-date-lower-bound | uses | Destination は締め済み期間に対する計上日補正が必要な場合に日付下限制御を持つことがある。 | destination-posting-date-lower-bound-hook | spec:destination |
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 | spec | concept.json | yes |
Validation
- No validation issues.
Technical Metadata
- Source JSON:
packages/transfer/docs/concepts/destination/concept.json