Tencent Distributed SQL

MySQLとの互換性が高く、水平分割(分割テーブル)されたの高性能データベースがサポートします。

概要

Tencent Distributed SQLはTenecentが開発した分散式データベース製品であり、一致性及びユーザビリティが高く、グローバルデプロィ仕組みで、分散式の水平拡張性があり、且つ高性能で、企業レベルセキュリティ等の特性を備えています。また、スマートDBA、自動化運営、監視アラームなどの関連機能を提供することにより、ユーザーのために完備した分散式データベースソリューションを提供します。現在、TDSQLは500以上の政府企業及び金融機構のためにデータベースのパブリッククラウド及びプライベートクラウドサービスを提供しています。顧客としては銀行、保険、証券、インターネット金融、課金、第三者支払い、LoT、インターネット+、政務等の分野をカバーしています。TDSQLは高品質の製品及びサービスにより、多数な国際と国家認証を獲得し、顧客たち及び業界に認められています。

特徴

自動的な水平分割

テーブルを作成する際にのみ、shardkeyを設定すればよいです。即ち、データベースにおけるラージテーブルの自動的な水平分割(分割テーブル)を対応しています。システムはHashプランに基づき、自動的に書き込まれたデータを均一に異なる物理的シャードに分散させ、クエリーも自動的に取り纏め戻されます。テーブルの分割はサービスシステムに透明であり、実際にサービスは論理的に完全なテーブルとして見られ、バックエンドにおける物理的な仕組みを感知する必要がありません。

MySQL文法との互換性が高い

TDSQLは大部分の常用MySQL文法( MySQLの言語構造、文字セット及びタイムゾーン、データタイプ、常用関数、プリ処理プロトコル、並べ替え、ジョイン(JOIN)、インデックス、パーティション、事務、制御コマンド等常用の DDL、DML、DCL 、及びデータベースのアクセスインターフェースを含む)と互換性があります。

先端的な分散式仕組み

分散式仕組みの特殊性により、データベースはなかなか高級機能と性能を両立できていません。そのために、TDSQLは3種類のテーブル作成案を提供し、(分散式)事務特性及びグロバールにおける唯一のデジタルシーケンスを提供し、JSON等を対応することにより、分散式仕組みの不足を補い、開発者のためにより柔軟的な開発案を提供しています。

ノンストップで柔軟性の高い拡張

現在、一つのシャードは最大6TBまでのストレージを対応しています。性能又は容量がサービス発展を支えられない場合は、コンソールでクリックすれば自動的にグレードアップできます。グレードアップ中に、分散式システムにおけるデータマイグレーションやバランシング、ルーティング切替を心配する必要がありません。グレードアップした後にアクセスするIPが変りません、自動的に切り替える時にのみ、数秒の瞬断があるため、再接続の仕組みを保持すればよいです。

強い同期レプリケーション

TDSQL はデフォルトでマスター/スレーブ仕組みを採用し、99.95%以上のユーザビリティを確保することができます。システムは強い同期レプリケーションを対応することにより、データの強い一致性を提供します。サービスシステムがデータを書き込んだ後、データベースのスレーブが同期した後にのみアプリケーションにサービス応答を返すことにより、マスター/スレーブのデータの完全な一致性を確保し、障害によるデータ紛失や混乱がなくなります。現在、強い同期レプリケーションの性能は機能的に非同期レプリケーションと同等になっています。

超高性能

TDSQL は MySQLのカーネルに対し深くカスタム開発が行われ、性能がオーペンソースのMySQLを大幅に超えています。TDSQL は3種類のリード・ライト分離を対応し、有効的に読取の拡張性を提供するほかに、開発の柔軟性をも実現しています。スレッドプールのスケジューリングアルゴリズムを最適化しているため、負荷が重い時によりよいパフォーマンスができます。PCI-E SSDディスクを構成し、SATAの3倍以上のIO配置を提供することにより、サービス性能ニーズを気軽に満たすことに貢献します。

使いやすいホスティングデプロィ

Tencent CloudのTDSQLのコンソールで数回クリックすると、数分間で起動し、直ちに稼働に投入できるTDSQLに接続可能です。コンソールは常用のデータベースメンテナンス操作を提供し、繊細なデータベース管理のために便利さを提供しています。また、常用のシステム監視データ及び性能分析データを提供することにより、実行が異常であるデータベースを速やかに識別することに貢献します。

JSON対応

ネイティブなJSONタイプを対応しています。JSON値は文字セットの形でストレージされなく、高速読取可能なドキュメント要素(document elements)の内部バイナリーフォーマットを採用しています。JSONの列が挿入する又は更新する時に、自動的にJSONドキュメントを検証します。即ち、TDSQLをMySQLプロトコルと互換性のあるNoSQLデータベースと見なしてよいです。

RocksDB対応

RocksDBはLSMツリーに基づいたストレージエンジンです。RocksDBのデータ圧縮率はInnoDBエンジンの60%以上です。一般的には、1000万行データは圧縮された後に1GBストレージスペースしかなく、データベースの利用コストを大幅に節約しています。また、RocksDBの書込み性能も大幅に上がり、IoTやログ等の「書込みが多く、読取が少ない」、且つ容量要求に厳しいサービスケースに適しています。現在、RocksDBは公開テストを行っています。 

機能

Tencent CloudのTDSQLは分散式の仕組みに基づいたデータベースであり、MySQLとの互換性が高く、高性能且つユーザビリティが高く、企業レベルセキュリティ及び監視、拡張性、使いやすさを一体化したデータベースのホスティングサービスです。
MySQLとの互換性が高い
  • 大部分の常用MySQL文法との互換性ある
  • MySQLの言語構造、文字セット及びタイムゾーン、データタイプ、常用関数、プリ処理プロトコル、並べ替え、ジョイン(JOIN)、ストレージプロセス、インデックス、パーティション、事務、プリ処理プロトコル、制御コマンド等常用の DDL、DML、DCL 、及びデータベースのアクセスインターフェースが含まれています。

  • (分散式)サービス対応
  • 二段階提出の方式により分散式サービス(振込み、契約締結、支払い等のケース)を対応します。マルチノードのサービス性能はシングルノードの約70%であり、オーペンソース分散式サービスXAの約56%よりも高いです。現在、MySQL 5.7のみが当該能力を対応しています。

  • (分散式)JOIN対応
  • TDSQLは複数の物理的ノード間のJOIN(ジョインクエリー)操作(即ち分散式JOIN)を対応しています。JOINに関連するテーブルはshardkeyと同等な条件がある場合は、分割テーブルの一致性原則により、この部分のデータを自動的に同じ物理的ノードにストレージします。この場合は、シングルマシンのJOINと相当し、性能が最も優れています。物理的なノード間のデータに関わる場合は、proxyはほかのノードからデータを取得しキャッシュしますが、ネットワークでのデータ転送に関わるので性能が低下になっています。

  • JSON対応
  • TDSQLはJSONフォーマットのデータ保存を対応することにより、JSON処理がより有効的になるほか、早めにエラーを検査することができます。JSONタイプを使いたく、データの整合性、事務、JOIN等従来データベースの備えている能力に対し要求がある場合は、TDSQLは良い選択となります。もちろん、TDSQLのJSONはMySQLに基づいたものであり、Mongodbとは少し違いがあります。興味のある場合はTDSQL及び MongoDBのJSON 能力比較をお読みください。

  • 3種類のテーブル作成ポリシー
  • 分割テーブル:即ち水平分割のテーブルです。一般的には2000 万行以上、50GB以上の規模であり、迅速に増加するテーブルに適用しています。
  • ブロードキャストテーブル:即ちすべての操作がすべてのロジックシャード(Shard)にブロードキャストされます。これは、各シャードは当該テーブルのすべてのデータがあることを意味しています。一般的には、コンフィギュレーションテーブル、又は頻繁にJOINするテーブルに適用しています。当該種類のテーブルのデータ更新が少ないです。ブロードキャストテーブルは二つのテーブルのジョインクエリー(JOIN)、シングルノードへの事務収束を実現することにより、性能を向上することが可能です。
  • シングルテーブル:シャーディングする必要のないテーブルであり、一般的にデータ量の少ないデータベーステーブルに適用しています。シングルテーブルは分割されていないため、これはシングルテーブルの利用が完全にMySQLとコンパチすることを意味しています。

  • グロバールにおける唯一の数字シーケンス
  • AUTO_INCREMENTと類似しています。自動的な増加シーケンスはユーザーのためにグロバールにおける唯一の数字IDサービスを提供し、分散式環境におけるユニークキー、プライマリキー等のデータのグロバール唯一性を実現しています。

  • パススルーコマンド
  • 注釈方法(hint)によりSQLを指定されたターゲットシャードにパススルーすることを対応することにより、性能及び操作の柔軟性を上げます。

  • 二級パーティション
  • 分割テーブルに基づいて、パーティションテーブル方案をも対応しています。即ち、水平分割のテーブルでは、さらに1レイヤーのロジックパーティションを対応するので、二级パーティションと言われています。二级パーティションはデータの分散やアクセスを均一化し、クエリー効率を向上することができます。ゲームの歴史成績、IoTセンサーデータなど、定期的に歴史データを削除する必要のあるケースをも対応しています。

応用シナリオ

Eコマース類応用

サービスタイプ

Eコマース類サービスに適する

クラウド利用に関する提案

ほとんどの大型Eコマースプラットホームは分散式データベースに基づいています。その中には、性能が最も重要な考慮要素です。大容量トラフィックのキャンペンを行う時に、分散式仕組みのデータベースだけは物理的ハードウエアの性能に制限されることがなく、リニア的に性能を拡張することができます。2017年、鵝漫U品が登場してから1年もない時期に、毎月は高速的な増長を見せているが、中期になって1日当りのオーダー数が1万件を超えた時、通常のデータベースの性能及び拡張性の問題が顕在化していました。1ヶ月足らずの改善を経て、TDSQLへ成功にマイグレーションしたことにより、「ダブル11」、「ダブル12」等色々な大型キャンペンをうまくやり抜けていました。

金融類応用

サービスタイプ

金融類サービスに適する

クラウド利用に関する提案

モバイルバンキング、オンラインファイナンス、ブロックチェーンなどインターネット特徴のある金融サービスが盛んになるとともに、1回当りの取引金額が小さくなり、取引回数が多くなるなどの状況に対し、従来の仕組みはだんだんサービスの発展を支えられなくなり、ネットワークセキュリティリスクが高くなります。TDSQLは性能を拡張しやすいだけでなく、強い同期能力によりデータの正確さと無紛失を確保しており、中国で分散式サービスを金融システムに応用する最初の製品です。

IoT類応用

サービスタイプ

IoT類サービスに適する

クラウド利用に関する提案

工業監視やリモートコントロール、スマートシティの延長、スマートホーム、テレマティクス等のIoTユースケースにおいては、センシング監視デバイスが多く、サンプリングレートが高く、データストレージの要求が高く、データストレージ規模の問題が顕在化しています。TDSQLの容量のリニア的拡張は容量の問題を有効的に解決できるだけでなく、MySQLプロトコルとJSONを対応することにより、開発者が自分の慣れたプロトコルでシステムを開発できるようにします。また、拡張可能なRocksDBはデータ圧縮率を20%以下に下げ、二級パーティションはコールドデータとホットデータの迅速な分離処理を可能にし、データストレージコストを大いに抑え、コールドデータの処理効率を大幅に上げています。

ゲーム応用

サービスタイプ

ゲームサービスに適する

クラウド利用に関する提案

オールリージョン・オールサーバーのSNSゲームや、新品のIO等のゲーム種類としては、PCUは10万ないし1000万になる可能性があるため、最初に設計する時にすべての機能モジュールの柔軟な拡張性を考慮する必要があります。GameSvr、MatchSvr 等の状態無しサーバーは拡張しやすいが、ゲームにおけるすべてのフレンドリレーションチェーン、過去ゲーム履歴、ゲーム取引記録のDBSvr拡張が問題となっています。それに対し、TDSQLはオールリージョン・オールサーバーのような拡張性の問題を容易します。

料金

TencentDB for TDSQLはサブスクリプションと従量課金の2つの課金方法がサポートされています。サブスクリプションは前払い課金方法で、ユーザーがTencentDB for TDSQLを購入するときに、ビジネスニーズに応じて、1か月以上の料金を前払いする必要があります。従量課金は後払い課金方法で、実際に使用したリソース量に応じて料金が請求され、前払いが必要ありません。取引量が瞬時に急激に変動するシナリオに適しています。

課金の詳細については、課金をご参照ください。