技術共有

マルチテナント ハイブ データ ウェアハウス

2024-07-11

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1.コンセプト

マルチテナントはシングル テナントに対応します。この記事では、マルチ テナントについて説明します。

1.1 マルチテナンシー

マルチテナント技術、またはマルチテナント技術、SaaS とは、マルチユーザー環境 (ここでのマルチユーザーは一般に企業ユーザーを指します) で同じシステムまたはプログラム コンポーネントを共有する方法を実現するソフトウェア アーキテクチャ技術です。ユーザー間のデータの分離を確実に行うことができます。簡単に言うと、単一のアプリケーション インスタンスがサーバー上で実行され、複数のテナント (顧客) にサービスを提供します。定義から次のことが理解できます。マルチテナンシーは、複数のユーザーが同じプログラムのセットを使用できるようにし、ユーザー間のデータ分離を確保することを目的としたアーキテクチャです。

1.2 シングルテナント

シングルテナント アーキテクチャとマルチテナント アーキテクチャの違いは、シングルテナントではユーザーごとに個別のソフトウェア アプリケーションとサポート環境が作成されることです。シングルテナント SaaS は、地理的理由または高度なセキュリティ制御が必要なため、顧客がカスタマイズをサポートする必要があるアプリケーションで広く引用されています。シングルテナント モデルを通じて、各顧客はデータベースとオペレーティング システムのコピーを独立したサーバー、または強力なセキュリティ対策で隔離された仮想ネットワーク環境に配置します。

1.3 シングルテナントとマルチテナントの違い

  1. セキュリティ管理にはさまざまなレベルがあります。マルチテナント データベースには、複数の独立したテナントからのデータが保存されます。セキュリティ分離が設定されていますが、セキュリティ制御のレベルは単一テナントの場合よりも高くなります。シングル テナントには独立したソフトウェアおよびハードウェア環境があり、データベースには 1 つのテナントのデータのみが保存されるため、データ漏洩の可能性は技術的に排除されるため、セキュリティ管理が必要な特定の業界にはシングル テナント アーキテクチャの方が適している場合があります。法的遵守要件。
  2. データのバックアップの複雑さはさまざまです。単一テナントに独立したデータベースがあり、顧客データベースのバックアップとリカバリが非常に簡単です。マルチテナントはデータベースを共有し、テナント データは分離および共有されますが、システムは企業の独立したバックアップを毎日自動的に実行することはできません。
  3. コントロールのアップグレード時間はさまざまです。マルチテナント システムの保守コストは低く、マルチテナント システムをアップグレードする場合も、更新は 1 回だけで済みます。保守担当者が各ユーザーを更新する必要がないため、運用コストと保守コストが大幅に節約されます。これは、すべてのクライアントが同じことを行うシステムに役立ちます。しかし、企業が特に忙しいときにシステムのアップグレード時期が発生すると、企業ユーザーへの影響は避けられません。

適用シーン:マルチテナンシーは、同一グループ(会社)内の複数の異なる会社(部門)に適しており、万が一データが漏洩しても外部に漏洩しません。

2. マルチテナントのデータ分離ソリューション

  • 独立したデータベース
  • 共有データベース、独立したスキーマ
  • 共有データベース、共有スキーマ、共有データテーブル

2.1 独立したデータベース

これは最初のソリューションで、1 つのテナントと 1 つのデータベースです。このソリューションは最高レベルのユーザー データ分離と最高のセキュリティを備えていますが、コストは高くなります。

  • 利点: 異なるテナントに独立したデータベースを提供すると、データ モデルの拡張設計が簡素化され、障害が発生した場合のデータの復元が比較的簡単になります。
  • 短所: データベースのインストール数が増加し、保守コストと取得コストが増加します。

このソリューションは、従来の 1 人の顧客、1 セットのデータ、1 セットの展開に似ていますが、唯一の違いは、ソフトウェアがオペレーターに均一に展開されることです。非常に高いデータ分離レベルを必要とする銀行や病院などのテナントに直面している場合は、このモデルを選択してレンタル価格を引き上げることができます。価格設定が低く、製品が低価格路線をとっている場合、このソリューションは通常、通信事業者にとって手の届かないものになります。

2.2 共有データベース、独立したスキーマ

これは 2 番目のソリューションです。つまり、複数またはすべてのテナントがデータベースを共有しますが、各テナントにはスキーマ (ユーザーとも呼ばれます) があります。基礎となるライブラリには、DB2、ORACLE などがあります。1 つのデータベースの下に複数の SCHEMA が存在する場合があります。

  • 利点: より高いセキュリティ要件を持つテナントに対して、ある程度の論理的なデータ分離が提供されますが、各データベースは多数のテナントをサポートできません。
  • 欠点: データベースの復元には他のテナントのデータが含まれるため、障害が発生した場合、データの回復が困難になります。テナント間の統計が必要な場合は、一定の困難が生じます。

2.3 共有データベース、共有スキーマ、共有データテーブル

これは 3 番目のオプションです。つまり、テナントは同じデータベースとスキーマを共有しますが、TenantID マルチテナント データ フィールドをテーブルに追加します。これは、共有度が最も高く、分離レベルが最も低いモードです。
つまり、データを挿入するたびに顧客 ID が必要になります。このようにして、同じテーブル内で異なる顧客のデータを区別できます。

  • 利点: 3 つのオプションの比較、3 番目のオプションは、メンテナンスと取得のコストが最も低く、データベースごとに最大数のテナントを許可します。
  • 短所: 分離レベルとセキュリティが最も低いため、設計および開発中にさらなるセキュリティ開発が必要になります。データのバックアップとリカバリが最も難しく、テーブルごとのバックアップと復元が必要になります。このソリューションは、最小限のサーバーでほとんどのテナントにサービスを提供する必要があり、テナントが低コストと引き換えに分離レベルの犠牲を受け入れる場合に最適です。

2.4 概要

SaaS の実装プロセス中には、マルチテナントをサポートするアプリケーション データをどのように設計するかという明らかな考慮事項があります。この設計の考え方は、データ共有、セキュリティ分離、パフォーマンスのバランスをとることです。3つのモードの特徴を1枚の図にまとめます

マルチテナント ハイブ データ ウェアハウス マルチテナント saas_multi-tenant