ApsaraDB for Lindorm(Lindorm)は、大量の半構造化データと構造化データのためにLindormTableというワイドテーブルエンジンを提供します。 LindormTableは分散ストレージシステムであり、Apache HBase、Apache Phoenix、Apache Cassandraなど、複数のオープンソースソフトウェアおよびサービスの標準APIと互換性があります。 このトピックでは、Lindorm、Apache HBase、およびApache Cassandraの類似点と相違点について説明します。
機能 | Lindorm | Apache HBase | Apache Cassandra | |
コア機能 | データモデル | Lindormは、ワイドテーブル、時系列、検索、ファイルなど、複数のデータモデルをサポートしています。 複数の種類のクライアントと複数のAPIを使用して、ワイドテーブルにアクセスできます。 | ワイドテーブルのみがサポートされています。 | ワイドテーブルのみがサポートされています。 |
アクセス API | Lindormは、HBase API、Cassandra Query Language(CQL)、およびPhoenix SQLをサポートし、データの相互運用性を提供します。 たとえば、HBase APIを使用してLindormに書き込まれたデータは、CQLを使用してクエリできます。 | Apache HBaseは、HBase APIとPhoenix SQLをサポートしています。 | Cassandra CQL | |
SQL | Lindormは、標準のJava Database Connectivity(JDBC)プロトコルをサポートし、Apache Phoenixと互換性があります。 Lindormは、より高い安定性とパフォーマンスを提供します。 | Apache HBaseは、Phoenixをサポートするために外部コンポーネントが必要です。 | Apache Cassandraは、単純なSQLダイアレクトをサポートしています。 | |
データ型 | Lindormはさまざまなデータ型をサポートしています。 | Apache HBaseは、BYTE [] 型のみをサポートしています。 | Apache Cassandraはさまざまなデータ型をサポートしています。 | |
TTL | Lindormは、エンタープライズグレードのTime To Live(TTL)機能をサポートしています。 テーブル、列、セルなど、さまざまな粒度に基づいてTTL値を指定できます。 | テーブルレベルのTTLとセルレベルのTTLがサポートされています。 | テーブルレベルのTTLのみがサポートされています。 | |
厳密な整合性 | Lindormは、厳密な整合性や結果整合性など、複数の整合性レベルをサポートしています。 | サポートされています | サポートされていません | |
グローバルセカンダリインデックス | Lindormは、組み込みのグローバルセカンダリインデックスを提供します。 これにより、クエリを透過的にし、パフォーマンスを向上させ、ビジネス要件に基づいて非インデックスキー列の冗長性を構成できます。 | Apache HBaseは、グローバルセカンダリインデックスをサポートするために外部コンポーネントが必要です。 この場合、構成プロセスは複雑です。 | Apache Cassandraは、グローバルセカンダリインデックスをサポートしています。 データの厳密な整合性は保証されません。 | |
多次元検索 | LindormTableはLindormSearchと統合されており、統合アクセス機能をサポートしています。 たとえば、Lindormは大量のデータを格納でき、多次元クエリと全文検索をサポートしています。 詳細については、概要をご参照ください。 | サポートされていません | サポートされていません | |
パフォーマンス | スループット | Lindormインスタンスのスループットは、オープンソースのApache HBaseインスタンスの7倍です。 詳細については、ベンチマーク結果の分析をご参照ください。 | 該当なし | 該当なし |
レスポンスタイム | LindormインスタンスのP99レイテンシは、オープンソースのApache HBaseインスタンスの1/10です。 詳細については、ベンチマーク結果の分析をご参照ください。 | 該当なし | 該当なし | |
コスト | ストレージコスト | Lindormは、パフォーマンス、スタンダード、キャパシティなど、さまざまなストレージ仕様をサポートしています。 Lindormのストレージコストは、セルフマネージドクラウドディスクのコストよりも 80% 低くなります。 | Apache HBaseは、クラウドディスクまたはローカルディスクに基づいて開発されたセルフマネージドディスクをサポートしています。 このタイプのディスクはコストが高く、スケーリングをサポートしていません。 | Apache Cassandraは、クラウドディスクまたはローカルディスクに基づいて開発されたセルフマネージドディスクをサポートしています。 このタイプのディスクはコストが高く、スケーリングをサポートしていません。 |
コンピューティングストレージ分離 | サポートされています。 ストレージリソースとコンピューティングリソースは個別にスケーリングできます。 | サポートされていません | サポートされていません | |
データ圧縮 | Lindormは、組み込みの最適化された圧縮アルゴリズムを提供します。 データ圧縮率は 10:1 を超えることができ、これはSnappyによって提供される圧縮率よりも 50% 以上高くなります。 | Apache HBaseは、Snappy、LZ4、およびLZOをサポートしています。 圧縮率は高くありません。 | Apache Cassandraは、SnappyとLZ4をサポートしています。 圧縮率は高くありません。 | |
エンコーディング | Lindormは、データ型の適応エンコーディングを提供します。 これにより、高い圧縮率が保証され、デコードせずに高速クエリを実行できます。 | Apache HBaseはDIFFをサポートしています。 圧縮効果は中程度であり、エンコードされたデータを取得することはできません。 | サポートされていません | |
ホットデータとコールドデータの分離 | ホットデータとコールドデータは、階層型ストレージに自動的に保存されます。 Lindormは、高圧縮で低コストのメディアを使用してコールドデータを保存します。 これにより、ストレージコストを 80% 削減し、ホットデータのクエリパフォーマンスを 15% 向上させることができます。 詳細については、概要をご参照ください。 | サポートされていません | サポートされていません | |
スケーラビリティと弾力性 | 最小ノード数 | 該当なし | 少なくとも 3 ノード | 少なくとも 3 ノード |
スケーラビリティ | 高いスケーラビリティ。 インスタンスは、数千のノードを含むようにスケールアウトできます。 | 高いスケーラビリティ。 インスタンスは、数千のノードを含むようにスケールアウトできます。 | 中程度のスケーラビリティ。 インスタンスは、約 100 ノードを含むようにスケールアウトできます。 この制限を超えると、インスタンスのパフォーマンスボトルネックに達する可能性があります。 | |
弾力性 | 該当なし | 中程度の弾力性。 リソースは数分以内に手動でスケールアウトできます。 | 低い弾力性。 スケールアウト操作を実行する前に、データを移行する必要があります。 スケールアウト操作は完了するまでに数時間かかります。 | |
信頼性 | アクティブ-アクティブ冗長性 | サポートされています。 Lindormは、同時リクエスト処理のための自動フェイルオーバーやデュアルクラスタデプロイなどの高度な機能をサポートしています。 LindormインスタンスとセルフマネージドApache HBaseまたはApache Cassandraインスタンスをプライマリ/セカンダリモードでデプロイできます。 | フェイルオーバーはサポートされていません。 | Apache Cassandraはアクティブ-アクティブ冗長性をサポートしていますが、3つのレプリカが必要です。 |
データセンター間の厳密な整合性 | インスタンスは、データセンター全体にデプロイできます。 これにより、データセンターレベルのディザスタリカバリを実行でき、厳密なデータ整合性が保証されます。 | サポートされていません | サポートされていません | |
バックアップと復元 | Lindormでは、100 TBを超えるデータをObject Storage Service(OSS)にバックアップでき、リカバリ時間目標(RTO)が30分未満、オンデマンドバックアップ、ポイントインタイムリストアなどの高度な機能を提供します。 RTOは、データ量に関係なく保証されます。 詳細については、バックアップと復元の有効化をご参照ください。 | Apache HBaseは、データのバックアップと復元を限定的にサポートしています。 | Apache Cassandraは、データのバックアップと復元を限定的にサポートしています。 | |
アクティブな地理冗長性 | サポートされています。 Lindormを使用して、リージョンとユニットにデータベースをデプロイし、ビジネス要件に基づいてデータを同期できます。 | サポートされていません | Apache Cassandraは、アクティブな地理冗長機能を中程度にサポートしています。 | |
マルチテナンシーとセキュリティ | 認証とACL | Lindormは、ユーザー名とパスワード認証とACLをサポートして、ユーザーIDを認証します。 詳細については、ユーザーの管理をご参照ください。 | サポートされていません | サポートされています |
リソースの分離 | Lindormは、リソースグループ機能を提供して、テナント間でリソースを物理的に分離できるようにします。 | サポートされていません | サポートされていません | |
クォータ | Lindormは、リクエストクォータとストレージクォータを含む、テナントのグローバルクォータをサポートしています。 | Apache HBaseは、サーバーベースのクォータのみをサポートしています。 | サポートされていません | |
保存データの暗号化 | サポートされています。 Lindormは、Key Management Service(KMS)を使用してキーを管理し、すべてのデータとログを暗号化します。 | Apache HBaseは、保存データの暗号化を限定的にサポートしています。 | サポートされていません | |
リモートプロシージャコール(RPC)ブラックリスト | サポートされています。 RPC呼び出しの数を制限できます。 | サポートされていません | サポートされていません | |
監査 | この機能はリリース予定であり、将来のバージョンで利用可能になります。 | サポートされていません | サポートされていません | |
高度な機能 | FeedStream API | Lindormは、ソーシャルネットワーキングインスタントメッセージング(IM)シナリオでシステムの開発効率と全体的なパフォーマンスを向上させるのに役立つFeedStream機能を提供します。 | サポートされていません | サポートされていません |
テーブルのごみ箱 | データテーブルが削除されると、ごみ箱に移動されます。 予期しないデータ損失を防ぐために、データテーブルを復元できます。 | サポートされていません | サポートされていません | |
カスケード分割 | コンパクションプロセスが完了するのを待たずに、リージョンを継続的に分割できます。 これにより、スケーリングとロードバランシング機能が向上します。 | サポートされていません | サポートされていません | |
個別TTL | Lindormでは、複数の時間範囲のデータを保持できます。 | サポートされていません | サポートされていません | |
運用と保守および診断 | 運用ツール | Lindormは、GUIベースのクラスタ管理ツールを提供し、テーブル、名前空間、グループ、およびACLを管理できます。 詳細については、クラスタ管理システムへのログオンをご参照ください。 | HBase Shell | GUIを提供しないCLIベースのツール |
データクエリ | Lindormは、グラフィカルインターフェースでSQLクエリを実行できるクラスタ管理システムを提供します。 詳細については、データクエリをご参照ください。 Lindormは、HBase ShellとCQLshもサポートしています。 | HBase Shell | CQLsh | |
エコシステム | データ移行 | Lindormは、Apache HBaseまたはApache Cassandraの各バージョンからのオンライン、クロスバージョン、自動、および効率的なデータ移行をサポートしています。 移行プロセス中、アプリケーションは影響を受けず、アプリケーションのコードを変更する必要はありません。 詳細については、LTS(旧称BDS)の概要をご参照ください。 | オフライン移行のみがサポートされています。 | オフライン移行のみがサポートされています。 |
MySQLデータベースからのデータ同期 | Lindormは、Lindorm Tunnel Service(LTS)を提供します。 LTSを使用して、MySQLデータベースのフルデータをインポートし、増分データをLindormに同期できます。 LTSの詳細については、LTS(旧称BDS)の概要をご参照ください。 | Apache HBaseは専用のツールを提供しておらず、オンラインの増分同期をサポートしていません。 サードパーティツールを使用して、MySQLデータベースからデータを移行する必要があります。 | Apache Cassandraは専用のツールを提供しておらず、オンラインの増分同期をサポートしていません。 サードパーティツールを使用して、MySQLデータベースからデータを移行する必要があります。 | |
Spark分析 | Lindormは、Apache Sparkと緊密に統合されています。 たとえば、Spark SQLを使用してLindormのデータを分析し、LindormからApache Sparkに増分データを同期してから、オフラインで生成された分析結果データをLindormに戻すことができます。 | 改善は行われていません。 データ統合には、多数の開発リソースが必要です。 | 改善は行われていません。 データ統合には、多数の開発リソースが必要です。 | |
MaxCompute | LindormはMaxComputeと統合されています。 Lindormの増分データをMaxComputeにアーカイブできます。 | データ統合には、多数の開発リソースが必要です。 | データ統合には、多数の開発リソースが必要です。 | |
Log Service | Lindormでは、Log Serviceからのリアルタイムデータをサブスクライブし、データをLindormにインポートできます。 LTSの詳細については、LTS(旧称BDS)の概要をご参照ください。 | データ統合には、多数の開発リソースが必要です。 | データ統合には、多数の開発リソースが必要です。 | |
サービス機能 | サービスレベル契約(SLA) | LindormはSLA保証を提供します。 Lindormは、単一クラスタデプロイで最大 99.9% のサービス可用性、デュアルクラスタデプロイで 99.99% のサービス可用性を保証します。 | 該当なし | 該当なし |
運用コスト | Lindormは、フルマネージドサービスを提供します。 これにより、複雑なデータベースの運用操作に集中する必要がなくなります。 | 該当なし | 該当なし | |
技術チーム | 複数のアパッチプロジェクトマネジメント委員会(PMC)メンバーとコミッターで構成される専門家チームが技術サポートを提供します。 | 該当なし | 該当なし | |
実践経験 | Lindormは、Tmall Double 11ショッピングフェスティバル中の過去9年間のサービス提供で知られています。 Alibabaグループのビジネスをサポートするために、数万のLindormインスタンスがデプロイされています。 | 該当なし | 該当なし | |