Tablestore を Data Management (DMS) に接続すると、DMS で Tablestore を管理および使用できます。具体的には、Tablestore インスタンスを DMS に追加し、DMS で SQL 文を実行して Tablestore データをクエリできます。また、ビジネス要件に基づいて、特定の条件を満たす Tablestore データをオンプレミスコンピュータにエクスポートすることもできます。
背景情報
Database Management (DMS) は、データのライフサイクル全体にわたってデータを管理できるワンストップのデータ管理プラットフォームです。 DMS を使用すると、グローバルデータ資産の管理、データのガバナンス、データベースの設計と開発、データの統合、データの開発、データの消費を行うことができます。これらの機能により、企業は効率的かつ安全な方法でデータから価値を引き出し、デジタルトランスフォーメーションを推進することができます。詳細については、「DMS とは」をご参照ください。
シナリオ
Tablestore を DMS に接続すると、さまざまなビッグデータシナリオで、DMS で Tablestore データを効率的に処理および分析できます。よくあるシナリオを以下に示します。
大規模データストレージと分析
Tablestore は高スループットを提供し、大量のデータを格納できます。 SQL 文を実行することで、DMS で Tablestore データをクエリおよび処理できます。このようにして、ビッグデータ分析を実行できます。たとえば、ログやユーザーの行動を分析できます。
データのインポートとエクスポート
DMS を使用して、外部ソースから Tablestore にデータをロードしたり、Tablestore から他のシステムにデータをエクスポートしたりできます。
データの転送と統合
DMS を使用すると、他のデータソースから Tablestore にデータを簡単に転送したり、Tablestore データをデータウェアハウス、メッセージキュー、またはその他のオンラインまたはオフライン分析システムに転送したりできます。 DMS を使用すると、データレイクやデータ中台などの複雑なデータアーキテクチャを構築できるため、効率的なデータ統合と活用が可能になります。
リアルタイムデータの監視とアラート
DMS の監視および通知機能を使用して、ミッションクリティカルな Tablestore メトリックの監視およびアラートルールを設定できます。このようにして、データの例外やシステムパフォーマンスの問題について通知を受け、できるだけ早く例外や問題に対処できます。これにより、業務の継続性と安定性が確保されます。
使用上の注意
DMS を使用して Tablestore インスタンスにアクセスできるのは、クラシックネットワーク経由のみです。 Tablestore インスタンスのネットワークアクセス制御リスト (ACL) で、クラシックネットワーク経由での Tablestore インスタンスへのアクセスが許可されていることを確認してください。詳細については、「ネットワーク ACL」をご参照ください。
手順
Tablestore を DMS に接続すると、SQL クエリ機能を使用して Tablestore データをクエリおよび分析できます。
Wide Column モデルまたは TimeSeries モデルを使用している場合にのみ、Tablestore を DMS に接続できます。
前提条件
AccessKey ペアが作成された Resource Access Management (RAM) ユーザーが作成されています。 AliyunOTSFullAccess ポリシーが RAM ユーザーにアタッチされて、RAM ユーザーに Tablestore を管理する権限が付与され、AliyunDMSFullAccess ポリシーが RAM ユーザーにアタッチされて、RAM ユーザーに DMS を管理する権限が付与されます。詳細については、「RAM ユーザーの AccessKey ペアを使用して Tablestore にアクセスする」をご参照ください。
使用する Tablestore データモデルに基づいて、特定のリソースが作成されます。
Wide Column モデルを使用する場合は、データテーブルが作成され、データがデータテーブルに書き込まれます。詳細については、「データテーブルの操作」および「データの書き込み」をご参照ください。
TimeSeries モデルを使用する場合は、時系列テーブルが作成され、データが時系列テーブルに書き込まれます。詳細については、「時系列テーブルの操作」および「時系列データの書き込み」をご参照ください。
DMS コンソールで次の操作が実行されます。
DMS を初めて使用する場合は、DMS サービスロール AliyunServiceRoleForDMS が作成されます。
AliyunServiceRoleForDMS サービスロールにより、DMS は Elastic Compute Service (ECS) インスタンス、仮想プライベートクラウド (VPC)、RDS インスタンス、およびさまざまなデータベースとツールに関連するリソースにアクセスできます。詳細については、「DMS のサービスロール」をご参照ください。
SQL 操作を実行する権限を持つシステムロールがユーザーに設定されています。詳細については、「システムロール」をご参照ください。
説明デフォルトでは、DMS テナントに追加された Alibaba Cloud アカウントの RAM ユーザーは、一般ユーザロールを想定します。
一般ユーザロールは、データベース関連の権限を申請し、データとテーブルスキーマをクエリおよび変更できます。一般ユーザロールは、企業の開発者、テストエンジニア、製品エンジニア、運用エンジニア、データアナリストが想定できます。
DMS コンソールのシンプルモードを使用することをお勧めします。
ステップ 1: Tablestore インスタンスを DMS に追加する
Tablestore インスタンスを DMS に追加するには、次の手順を実行します。
DMS コンソール V5.0 にログインします。
DMS コンソールのホームページの左側のナビゲーションウィンドウで、
[データベースインスタンス] の横にある アイコンをクリックします。
説明DMS コンソールのホームページの検索ボックスに「インスタンス管理」と入力することもできます。検索結果で、[インスタンス管理] をクリックして [インスタンス] ページに移動します。 [新規] をクリックして、Tablestore インスタンスを追加します。
[インスタンスの追加] ダイアログボックスで、追加する Tablestore インスタンスを指定します。
[データソース] セクションの [alibaba Cloud] タブで、[nosql データベース] フィールドの [tablestore] をクリックします。
[基本情報] セクションで、パラメータを設定して、Tablestore インスタンスに関する基本情報を指定します。次の表にパラメータを示します。
パラメータ
説明
[データベースの種類]
データベースインスタンスの種類。 [tablestore] を選択します。
[インスタンスリージョン]
データベースインスタンスが存在するリージョン。
[その他のプライマリアカウント]
別の Alibaba Cloud アカウントに属するデータベースインスタンスを追加する場合は、[alibaba Cloud アカウント間のインスタンス] をクリックして、Alibaba Cloud アカウントを選択します。
説明Alibaba Cloud アカウントがドロップダウンリストに含まれていない場合は、[ユーザーを追加] をクリックして、データベースインスタンスの購入に使用される Alibaba Cloud アカウントを追加できます。詳細については、「ユーザーの管理」をご参照ください。
[インスタンス ID]
インスタンスの ID。
[セキュリティホスティング]
インスタンスのセキュリティホスティングを有効にするかどうかを指定します。有効な値:
[有効]: インスタンスのセキュリティホスティングを有効にします。これにより、ユーザーがデータベースアカウントとパスワードに直接アクセスできなくなり、インスタンス、データベース、テーブル、行の粒度での権限管理が可能になります。詳細については、「セキュリティホスティング」をご参照ください。
[無効]: インスタンスのセキュリティホスティングを無効にします。ログインセッションがタイムアウトしたときにデータベースにログインするたびに、データベースアカウントとパスワードが必要になります。これは、データベースインスタンスの使用に影響を与える可能性があります。 [セキュリティホスティング] パラメータを [無効] に設定しないことをお勧めします。
[accesskey ID]
RAM ユーザーの AccessKey ペア。データベースインスタンスを初めて追加する場合、[セキュリティホスティング] パラメータを [有効] に設定している場合は、RAM ユーザーの AccessKey ペアを指定する必要があります。
[accesskey シークレット]
[高度な機能パック]
ビジネス要件に基づいて、[安定的な変更] または [セキュリティコラボレーション] を選択します。 [安定的な変更] または [セキュリティコラボレーション] を選択しない場合、インスタンスは柔軟な管理モードになります。詳細については、「制御モード」をご参照ください。
セキュリティコラボレーションモードは、安定的な変更モードのすべての機能をサポートし、DevOps 機能を提供して、カスタムの研究開発プロセスとレビュープロセスを指定できるようにします。
安定的な変更モードは、ロックフリーの変更や SQL レビューなどのソリューションを提供して、データベースをより安定した方法で実行できるようにします。
[セキュリティルール]
このパラメータは、[高度な機能パック] パラメータを [セキュリティコラボレーション] に設定した場合にのみ使用できます。
デフォルトのセキュリティルールまたはカスタムセキュリティルールを選択して、データベースを詳細に管理できます。詳細については、「セキュリティルールの管理」をご参照ください。
(オプション) [詳細情報] セクションで、パラメータを設定して、ビジネス要件に基づいて、環境タイプ、インスタンス名、クエリタイムアウト期間などの高度な機能を指定します。次の表にパラメータを示します。
パラメータ
説明
[環境タイプ]。
データベースインスタンスをデプロイする環境のタイプ。詳細については、「環境タイプの変更」をご参照ください。
[インスタンス名]
DMS に表示するインスタンスの名前。デフォルトでは、DMS は Tablestore から DMS に Tablestore インスタンスの名前を自動的に同期します。
DMS で Tablestore インスタンスのカスタム名を指定する場合は、[インスタンス名を自動的に同期] をオフにして、カスタム名を指定できます。
[DBA]
データベースインスタンスのデータベース管理者 (DBA)。 DBA はユーザーに権限を付与できます。
[クエリタイムアウト (秒)]
SQL クエリ文の実行のタイムアウト期間。 SQL クエリ文の実行に必要な時間が指定されたタイムアウト期間よりも長い場合、データベースを保護するためにクエリ文の実行が終了します。
[エクスポートタイムアウト (秒)]
SQL エクスポート文の実行のタイムアウト期間。 SQL エクスポート文の実行に必要な時間が指定されたタイムアウト期間よりも長い場合、データベースを保護するためにエクスポート文の実行が終了します。
データベースの接続性をテストします。
[接続テスト] をクリックして、データベースの接続性をテストします。
データベースが接続テストに合格した場合は、[OK] をクリックします。
[送信] をクリックします。
ホスティングを承認します。
インスタンスでセキュリティホスティングが有効になっている場合、システムはホスティング承認を設定するように求めます。ビジネス要件に基づいてホスティング承認を設定できます。他のユーザーがインスタンスを使用する場合、ユーザーはあなたまたはインスタンスの所有者に権限をリクエストする必要があります。
[注記] ダイアログボックスで、[今すぐ承認] をクリックします。
[権限の承認] ダイアログボックスで、[承認者]、[権限]、[有効期間] パラメータを設定します。
[OK] をクリックします。
ステップ 2: DMS で SQL 文を使用して Tablestore データをクエリする
Tablestore は、Wide Column モデルや TimeSeries モデルなどのデータストレージモデルをサポートしています。 SQL クエリ操作は、インスタンスのモデルによって異なります。インスタンスのモデルに基づいて SQL クエリ操作を実行する必要があります。
DMS の [SQL コンソール] ページで Tablestore データをクエリするために使用できる SQL クエリ機能は、Tablestore でサポートされている SQL クエリ機能と同じです。詳細については、「SQL 機能」をご参照ください。
SQL 文を実行して Wide Column モデルのインスタンスのデータをクエリする
[SQL コンソール] ページに移動します。
説明DMS コンソールのホームページの左側のナビゲーションウィンドウで [データベースインスタンス] をクリックし、DMS に追加した Tablestore インスタンスをダブルクリックすると、[SQL コンソール] ページに移動できます。
DMS コンソール V5.0 にログインします。
DMS コンソールのホームページの左側のナビゲーションウィンドウで、ポインタを
アイコンの上に移動し、[SQL コンソール] をクリックします。
[データベースの選択] ダイアログボックスで、DMS に追加した Tablestore インスタンスを選択します。
DMS は、Tablestore で作成した SQL マッピングテーブルを自動的に表示します。
テーブルのマッピングテーブルを作成し、SQL 文を実行します。
テーブルのマッピングテーブルをすでに作成している場合は、この手順をスキップします。
重要テーブルのマッピングテーブルを作成する場合は、マッピングテーブルのフィールドのデータ型がテーブルのフィールドのデータ型と一致していることを確認してください。詳細については、「SQL でのデータ型のマッピング」をご参照ください。
[SQL コンソール] ページで、マッピングテーブルを作成するために実行する SQL 文を記述します。詳細については、「テーブルのマッピングテーブルを作成する」をご参照ください。
テーブルのマッピングテーブルを作成する場合は、マッピングテーブルの名前とプライマリキー列がテーブルと同じであることを確認してください。
説明テーブルの検索インデックスを作成した場合は、検索インデックスのマッピングテーブルを作成できます。このようにして、SQL 文を実行して、検索インデックスを使用してデータをクエリできます。詳細については、「検索インデックスのマッピングテーブルを作成する」をご参照ください。
次のサンプルコードは、test_table という名前のテーブルのマッピングテーブルを作成する方法の例を示しています。
CREATE TABLE `test_table` ( `pk` VARCHAR(1024), `long_value` BIGINT(20), `double_value` DOUBLE, `string_value` MEDIUMTEXT, `bool_value` BOOL, PRIMARY KEY(`pk`) );
完全な SQL 文を選択した後、[実行 (F8)] をクリックするか、SQL 文の最初の行の横にある
アイコンをクリックして、SQL 文を実行します。
実行結果は、SQL エディタの [実行履歴] タブに表示されます。
SQL 文を実行してテーブルのデータをクエリします。
[SQL コンソール] ページで、SELECT 文を記述してデータをクエリします。詳細については、「データのクエリ」をご参照ください。
次のサンプルコードは、test_table テーブルのデータをクエリして、最大 20 行のデータを取得する方法の例を示しています。
SELECT `pk`, `long_value`, `double_value`, `string_value`, `bool_value` FROM test_table LIMIT 20;
SQL 文を選択した後、[実行 (F8)] をクリックするか、SQL 文の最初の行の横にある
アイコンをクリックして、SQL 文を実行します。
実行結果は、SQL エディタの [実行履歴] タブに表示されます。
SQL エディタの [実行履歴] タブで、ポインタを [ファイルのエクスポート] の上に移動し、エクスポートする結果セットを選択します。 DMS は結果セットをコンピュータにダウンロードするか、結果セットの INSERT 文を生成します。
説明[実行履歴] タブでは、実行時間、SQL 文、ステータスなど、SQL 文の実行履歴を表示できます。 SQL 文が実行に失敗した場合、[備考] 列に示されている原因に基づいて問題のトラブルシューティングを行うことができます。
SQL 文を実行して TimeSeries モデルのインスタンスのデータをクエリする
[SQL コンソール] ページに移動します。
説明DMS コンソールのホームページの左側のナビゲーションウィンドウで [データベースインスタンス] をクリックし、DMS に追加した Tablestore インスタンスをダブルクリックすると、[SQL コンソール] ページに移動できます。
DMS コンソール V5.0 にログインします。
DMS コンソールのホームページの左側のナビゲーションウィンドウで、ポインタを
アイコンの上に移動し、[SQL コンソール] をクリックします。
[データベースの選択] ダイアログボックスで、DMS に追加した Tablestore インスタンスを選択します。
DMS は、Tablestore で作成した SQL マッピングテーブルを自動的に表示します。
テーブルのマッピングテーブルを作成し、SQL 文を実行します。
時系列テーブルを作成すると、システムは単一値モデルのマッピングテーブルと、時系列テーブルの時系列メタデータのマッピングテーブルを自動的に作成します。単一値モデルのマッピングテーブルの名前は、時系列テーブルの名前と同じです。時系列メタデータのマッピングテーブルの名前は、時系列テーブルの名前に
::meta
を連結することで取得されます。複数値モデルのマッピングテーブルを使用して時系列テーブルの時系列データをクエリする場合は、複数値モデルのマッピングテーブルを作成する必要があります。複数値モデルのマッピングテーブルを使用して時系列データをクエリしない場合は、複数値モデルのマッピングテーブルを作成する必要はありません。
重要テーブルのマッピングテーブルを作成する場合は、マッピングテーブルのフィールドのデータ型がテーブルのフィールドのデータ型と一致していることを確認してください。詳細については、「SQL でのデータ型のマッピング」をご参照ください。時系列テーブルのマッピングテーブルのフィールドのデータ型の詳細については、「SQL での時系列テーブルのマッピングテーブル」をご参照ください。
[SQL コンソール] ページで、マッピングテーブルを作成するために実行する SQL 文を記述します。詳細については、「SQL での時系列テーブルのマッピングテーブル」をご参照ください。
この例では、メトリック名が cpu、memory、disktop である時系列の時系列データをクエリするために、
timeseries_table::muti_model
という名前の複数値モデルのマッピングテーブルが作成されます。SQL 文の例:CREATE TABLE `timeseries_table::muti_model` ( `_m_name` VARCHAR(1024), `_data_source` VARCHAR(1024), `_tags` VARCHAR(1024), `_time` BIGINT(20), `cpu` DOUBLE(10), `memory` DOUBLE(10), `disktop` DOUBLE(10), PRIMARY KEY(`_m_name`,`_data_source`,`_tags`,`_time`) );
完全な SQL 文を選択した後、[実行 (F8)] をクリックするか、SQL 文の最初の行の横にある
アイコンをクリックして SQL 文を実行します。
実行結果は SQL エディタの [実行履歴] タブに表示されます。
SQL 文を実行してテーブルのデータをクエリします。
[SQL コンソール] ページで、SELECT 文を記述してデータをクエリします。詳細については、「SQL の例」をご参照ください。
単一値モデルのマッピングテーブルを使用してデータをクエリする
次のサンプルコードは、時系列テーブルでメトリック名が basic_metric である時系列のデータをクエリする方法の例を示しています。
SELECT * FROM timeseries_table WHERE _m_name = "basic_metric" LIMIT 10;
時系列メタデータのマッピングテーブルを使用してデータをクエリする
次のサンプルコードは、時系列メタデータのマッピングテーブルを使用して、メトリック名が basic_metric である時系列をクエリする方法の例を示しています。
SELECT * FROM `timeseries_table::meta` WHERE _m_name = "basic_metric" LIMIT 100;
複数値モデルのマッピングテーブルを使用してデータをクエリする
次のサンプルコードは、複数値モデルのマッピングテーブルを使用して、cpu 値が 20.0 より大きい時系列のメトリックに関する情報をクエリする方法の例を示しています。
SELECT cpu,memory,disktop FROM `timeseries_table::muti_model` WHERE cpu > 20.0 LIMIT 10;
SQL 文を選択した後、[実行 (F8)] をクリックするか、SQL 文の最初の行の横にある
アイコンをクリックして、SQL 文を実行します。
実行結果は、SQL エディタの [実行履歴] タブに表示されます。
SQL エディタの [実行履歴] タブで、ポインタを [ファイルのエクスポート] の上に移動し、エクスポートする結果セットを選択します。 DMS は結果セットをコンピュータにダウンロードするか、結果セットの INSERT 文を生成します。
説明[実行履歴] タブでは、実行時間、SQL 文、ステータスなど、SQL 文の実行履歴を表示できます。 SQL 文の実行に失敗した場合、[備考] 列に示されている原因に基づいて問題のトラブルシューティングを行うことができます。
請求ルール
Tablestore 料金
DMS で SQL 文を実行して Tablestore リソースにアクセスする場合、SQL 文に対して料金は発生しません。ただし、SQL 文の実行中にテーブルスキャンやインデックスクエリなどの操作が実行された場合は、操作に対して料金が発生します。詳細については、「SQL クエリの課金対象項目」をご参照ください。
その他のリソース料金
DMS を使用する場合、インスタンスが安定的な変更モードまたはセキュリティコラボレーションモードの場合は課金されます。インスタンスが柔軟な管理モードの場合は、課金されません。詳細については、「料金」をご参照ください。
参考資料
Tablestore コンソール、Tablestore CLI、Tablestore SDK、Java Database Connectivity (JDBC)、または Go 用 Tablestore ドライバを使用して SQL 文を実行してデータをクエリすることもできます。詳細については、「SQL クエリの使用方法」をご参照ください。
Tablestore インスタンスを DataWorks に接続してから、SQL 文を実行して Tablestore データをクエリおよび分析することもできます。詳細については、「Tablestore インスタンスを DataWorks に接続する」をご参照ください。
MaxCompute、Spark、Hive、HadoopMR、Function Compute、Realtime Compute for Apache Flink、PrestoDB などのコンピューティングエンジンを使用して、テーブルのデータを計算および分析できます。詳細については、「概要」をご参照ください。
SQL 文を実行することでデータクエリと計算を高速化する場合、セカンダリインデックスまたは検索インデックスを作成できます。詳細については、「インデックス選択ポリシー」および「コンピューティングプッシュダウン」をご参照ください。