What is subsetting

{ヒント style="info" %}。 Coming soon

この機能は近々リリースされる予定です。 {endhint %}。

データベースのサブセット化とは、より小さな, より大きなデータベースの代表的なサブセット。これにより、データの参照整合性を維持しながら、移行先データベースのサイズを効率的に縮小することができます。Syntho がどのようにサブセットを生成するかを設定できます。例えば, の場合、全取引の5%またはオランダの患者に関連する全データのみを含めるサブセットを設定することができます。

サブセットはいくつかの理由で関連する可能性があります。:

1.テスト: データベースのサブセットは、新機能のテストに使用できる。, 変更またはアップグレードを、本番データベースに実装する前に確認することができます。これにより、潜在的な問題やバグがデータベース全体に影響を及ぼす前に特定することができます。 2.開発: 開発者は、本番データベースに干渉することなく新機能やアプリケーションに取り組むために、データベースのサブセットを必要とすることがよくあります。これにより、開発プロセスを迅速化し、データ損失や破損のリスクを軽減することができます。 3.トレーニング: データベースの(合成)サブセットをトレーニングに使用することができる。, 利用者が安全かつ管理された環境でデータベースの使い方を学べるようにする。 4.コンプライアンス: 一部の規制要件またはデータプライバシー法は、特定の目的のためにデータのサブセットを使用することを要求する場合があります。, テストや監査など, 機密情報を確実に保護する。

サブセットモード

Syntho のサブセットでは、外部キーを使用してデータ内の関係を識別します。これらの関係は、ソースデータベースに既に存在するか、Syntho の外部キーツールを使って作成することができます。サブセットのプロセスでは、これらのリレーションシップを使用してデータベースをナビゲートし、サブセットを構築します。

ソース データベースの各テーブルは、サブセット化のために以下のカテゴリのいずれかに分類されます。:

  1. Target table: ターゲット・テーブルはサブセット構築の出発点であり、最初の行セットを提供します。Syntho はターゲット・テーブルからデータを取得し、リンクされたテーブルから情報を特定します。 ターゲット・テーブルには通常、データベース内の他のほとんどの情報と関連するエンティティが含まれます。, 患者など, お客様, または取引。 参照整合性を守るために, ターゲット・テーブルは1つしか設定できない。

  2. Linked tables: これらのテーブルは、ターゲット・テーブルに直接または間接的に接続されている。

    • ダウンストリーム・テーブルは、サブセット内の参照整合性を維持するために必要なデータを持ち、関連テーブルの外部キーによって参照される主キーを持つ。

    • アップストリーム・テーブルには、ターゲット・テーブルのプライマリ・キーを参照する外部キーを持つデータが含まれており、有用な情報が含まれている可能性がある。

    関連するテーブルの中には、ダウンストリームとアップストリームの両方が存在するものもあります。, この場合、フィルタリングはアップストリームレコードにのみ適用できる。 Synthoは、出力サブセットの参照整合性を保持するために、リンクされたテーブルからデータを取り出します。 テーブル間のリンクは、直接, 例えば、患者テーブルを外部キー・リレーションを通して参照するアレルギー一覧のターゲット・テーブルのように。, または間接的, 患者テーブルを参照するターゲットテーブルなど, を参照する。 サブセットには、リンクされたテーブルのすべての関連情報が含まれます。

  3. Duplicated tables: 重複テーブルには、サブセット内の他のテーブルで使用される静的値が含まれる。 Synthoはルックアップテーブルのすべてのデータを取得する, その値がどこで使われるかに関係なく。 重複するテーブルを持つリレーションシップは、サブセット処理では考慮されません。

  4. Excluded tables: ターゲット・テーブルとして指定されていないテーブル, リンクされたテーブルまたは重複したテーブル, はサブセットから除外される。

シンセのサブセットの仕組み

Syntho サブセッティング・アルゴリズムは、ソース・データベースを、各テーブルがノードで、リレーションシップが有向エッジである方向非循環グラフとして扱います。この抽象化を念頭に置いて, トポロジカル・オーダーを使って、任意の点(ターゲット・テーブル)から他のすべての連結されたテーブルまで、グラフ全体を横断することができる。

いったんターゲット・テーブルがターゲット・データベースにコピーされると, 上流と下流の処理が開始され、参照整合性チェックが失敗しないように、すべての行が正しく参照されるようにリンクされたテーブルのデータがコピーされる。重複テーブルや除外テーブルが設定にある場合, これらは以下のようにコピーされる。, が、参照整合性は保証できない。

サブセット化の一般的なフローを以下に示す。:

1.データベースから循環する関係を削除する 2.コピー元データベースからコピー先データベースへターゲットテーブルをコピーする 3.複製されたテーブルをコピー先データベースにコピーする 4.上流テーブルをコピー先データベースにコピーする 5.下流テーブルをコピー先データベースにコピーする

制限事項と推奨事項

  • サブセット化処理は非循環有向グラフを入力とするため、ソース・データベースにサイクルが含まれる場合は機能しません。Syntho は、サイクルの原因となる辺の 1 つを削除することで、このようなケースを処理できます。これはまた、最終的な製品で参照整合性が保てないことを意味します。最も代表的なサブセットを得るために、手動でサイクルを削除することをお勧めします。

  • サブセット処理はターゲット・テーブルの構成に大きく依存する。ユーザーはターゲット・テーブルの 5% を選択できますが, だからといって、最終的なデータベースに全データの5%が含まれるわけではありません。ターゲット・テーブルの5%が他のテーブルの全データにリンクしている可能性がある。, つまり、参照整合性を保つために、他のレコードはすべてコピーされる。最終的に自分のリンキングに近いサブセット値を得るには, 適切なターゲット・テーブルを選択する必要がある。

{ヒント style="warning" %}。 Caution: サブセット処理はもともと並列化できない, 大規模なデータベースの場合、処理に数時間かかることもある。, データベースの読み書き速度に依存するので、丸一日かかることもあります。 {エンドヒント}

Last updated