OceanBaseではデータを保存する際に二段階の圧縮が施されます。一段階目は独自開発の行列混合エンコーディング圧縮であり、二段階目は汎用圧縮です。そのため、データストレージ容量はMySQL/Oracleデータベースの1/4~1/3に抑えられ、ストレージコストを効果的に70%~90%削減できます。
このチュートリアルでは、1GiBのTPC-HサンプルデータをOceanBaseにインポートし、インポート前後のデータストレージサイズを比較することで、OceanBaseデータベースの高い圧縮性能を体験していただきます。
説明
このチュートリアルは、OB Cloudコンソールでもインタラクティブチュートリアルとして公開されています。実際のOB Cloud環境で操作しながら学べます。OB Cloudコンソールにログインし、左側のナビゲーションバーにあるPractice Tutorialをクリックすると、公開されているすべてのインタラクティブチュートリアルをご覧いただけます。
OceanBase圧縮原理の紹介
OceanBaseデータベースは、非対称読み書きアーキテクチャとデータエンコーディングに基づくストレージ圧縮技術により、データの高い圧縮率を実現し、ストレージコストを削減します。
非対称読み書きアーキテクチャに基づくストレージ圧縮技術
読み書きブロックの非対称設計とアプリケーション効率の高い圧縮アルゴリズムを組み合わせています。LSM-Treeの構造的特性により、読み書き分離設計と行レベルの細かい更新記録を採用し、変更データはメモリに保存され、バッチ処理でディスクに書き込まれます。これにより、インメモリデータベース並みの書き込み性能とディスクデータベース並みのストレージコストを実現し、従来のB+Treeのディスクランダム書き込みのボトルネックやストレージ空間の断片化問題を解消しています。その結果、従来のリアルタイム更新データブロック方式よりもデータ書き込み性能が高くなり、同時により大きなデータ圧縮の機会が生まれます。
データエンコーディングに基づくストレージ圧縮技術
行列混合ストレージ形式を採用しており、ディスクデータブロックは列単位で整理されます。独自開発の行列混合エンコーディング圧縮手法(encoding)を用い、行列の辞書、差分、プレフィックスなどのエンコーディングアルゴリズムを使用して、汎用圧縮アルゴリズムの前にデータをエンコード・圧縮します。これにより、より高い圧縮率を実現します。
前提条件
現在のインスタンスに対するインスタンス管理者、データ読取り、データサービス管理者権限を保有していること。権限がない場合は、組織管理者に連絡し追加してもらってください。
利用可能なトランザクション型クラスタインスタンスを保有していること。クラスタインスタンスについては、テナントの作成を参照してから、以下の手順を実行してください。
環境に使用可能なMySQL互換モードのテナントとMySQLデータベース、およびテナントアカウントが既に存在すること。作成が必要な場合は、詳細についてはアカウントの作成およびデータベースの作成(MySQL専用)に関するドキュメントをご参照ください。
操作手順
インスタンス一覧ページで、対象のインスタンスとテナントを選択し、**概要**ページに移動します。
現在の**テナントディスク使用量**を確認します。
左側のナビゲーションバーにある**データインポート**をクリックします。
**サンプルデータを読み込むをクリックし、ベンチマーク**の下で、TPC-Hサンプルデータセットと空のデータベースを選択します。
インポートが成功すると、テナントコンソールに移動し、**テナントのディスク使用量**を確認します。
高圧縮機能の特性分析
サンプルデータのサイズは約1GiB(1GBは約1GiB)で、データインポート前のテナントのディスク使用量は0.1GiBでした。データをインポートした後、OceanBaseデータベースの圧縮処理により、テナントのディスク使用量は0.2GiBとなり、約0.1GiB増加しました。OceanBaseデータベースの高圧縮機能により、ストレージコストを70%〜90%削減できます。