Tablestore を Data Management (DMS) に接続すると、DMS で Tablestore を管理および使用できます。具体的には、Tablestore インスタンスを DMS に追加し、DMS で SQL ステートメントを実行して Tablestore データをクエリできます。また、ビジネス要件に基づいて、特定の条件を満たす Tablestore データをオンプレミスコンピューターにエクスポートすることもできます。
背景情報
Data Management (DMS) は、ライフサイクル全体にわたってデータを管理できる、ワンストップのデータ管理プラットフォームです。DMS を使用して、グローバルなデータ資産の管理、データガバナンス、データベースの設計と開発、データ統合、データ開発、データ利用が可能です。これらの機能により、企業は効率的かつ安全な方法でデータから価値を引き出し、デジタルトランスフォーメーションを推進できます。詳細については、「Data Management (DMS) とは」をご参照ください。
利用シーン
Tablestore を DMS に接続すると、さまざまなビッグデータシナリオで DMS 内の Tablestore データを効率的に処理および分析できます。以下に一般的な利用シーンを説明します。
-
大規模なデータストレージと分析
Tablestore は高いスループットを提供し、大量のデータを保存できます。DMS で SQL ステートメントを実行することで 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) ユーザーが作成されていること。RAM ユーザーには、Tablestore を管理する権限を付与する AliyunOTSFullAccess ポリシーと、DMS を管理する権限を付与する AliyunDMSFullAccess ポリシーがアタッチされています。詳細については、「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 に追加します。
-
Data Management (DMS) 5.0 コンソールにログインします。
-
ホームページの左側にある [データベースインスタンス] ペインで、[インスタンスの追加]
アイコンをクリックします。説明または、ホームページの検索ボックスに「インスタンス管理」と入力します。検索結果の「インスタンス管理」をクリックしてページを開き、[新規] をクリックしてインスタンスを追加することもできます。
-
新しいインスタンス ダイアログボックスで、Tablestore インスタンスを追加します。
-
[データソース] セクションの Alibaba cloud タブで、Nosqlデータベース エリアの [Tablestore] をクリックします。
-
[基本情報] セクションで、Tablestore インスタンスの基本パラメーターを設定します。
パラメーター
説明
データベースタイプ
データベースインスタンスのタイプ。[Tablestore] を選択します。
インスタンスリージョン
データベースインスタンスが存在するリージョン。
その他のプライマリアカウント
別のプライマリアカウントのインスタンスを管理するには、クロスalibaba cloudアカウントインスタンス をクリックし、インスタンスを所有するプライマリアカウントを選択します。
説明プライマリアカウントがリストにない場合は、[ユーザーの追加] をクリックしてインスタンスを所有するプライマリアカウントを追加します。詳細については、「ユーザー管理」をご参照ください。
インスタンス ID
インスタンスの ID。
セキュリティホスティング
インスタンスのセキュリティホスティングを有効にするかどうかを指定します。有効な値:
-
オープン:セキュリティホスティングを有効にすると、ユーザーがデータベースアカウントとパスワードに直接アクセスするのを防ぎ、インスタンス、データベース、テーブル、行に対して詳細な権限コントロールを実装できます。詳細については、「セキュリティホスティング」をご参照ください。
-
開いていない (非推奨):セキュリティホスティングが無効になっている場合、データベースアカウントとパスワードで頻繁にログインする必要があり、通常の機能が中断される可能性があります。
AccessKey ID
RAM ユーザーの AccessKey ペア。[セキュリティホスティング] パラメーターを [有効] に設定した場合、データベースインスタンスを初めて追加するときに RAM ユーザーの AccessKey ペアを指定する必要があります。
AccessKey Secret
付加価値機能パック
必要に応じて、セキュリティコラボレーション または 安定した変更 機能パックを選択します。どちらのパックも選択しない場合、インスタンスはデフォルトで柔軟な管理コントロールモードになります。詳細については、「コントロールモード」をご参照ください。
-
セキュリティコラボレーションモードは、安定的な変更モードのすべての機能をサポートし、カスタムの R&D プロセスとレビュープロセスを指定するのに役立つ DevOps 機能を提供します。
-
安定的な変更モードは、ロックフリー変更や SQL レビューなどのソリューションを提供し、データベースをより安定して実行できるようにします。
セキュリティルール
このパラメーターは、付加価値機能パック を セキュリティコラボレーション に設定した場合にのみ表示されます。
デフォルトのセキュリティルールまたはカスタムセキュリティルールを選択して、データベースをきめ細かく管理できます。詳細については、「セキュリティルールの管理」をご参照ください。
-
-
(オプション) 詳細情報 セクションで、環境タイプ、インスタンス名、クエリタイムアウトなどの高度な機能を必要に応じて設定します。
パラメーター
説明
環境タイプ
データベースインスタンスをデプロイする環境のタイプ。詳細については、「環境タイプの変更」をご参照ください。
インスタンス名
DMS に表示するインスタンスの名前。デフォルトでは、DMS は Tablestore から DMS に Tablestore インスタンスの名前を自動的に同期します。
DMS でのインスタンスの表示名をカスタマイズするには、インスタンス名の自動同期 チェックボックスをオフにして、新しい名前を設定します。
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 サポート」をご参照ください。
Wide Column モデルのインスタンスにおける SQL ステートメントでのデータクエリ
-
[SQL コンソール] ページに移動します。
説明または、ホームページの左側にある [データベースインスタンス] ペインで、追加した Tablestore インスタンスをダブルクリックして [SQL コンソール] ページを開くこともできます。
-
Data Management (DMS) 5.0 コンソールにログインします。
-
ホームページの左側で、
アイコンにカーソルを合わせ、Sqlウィンドウ を選択します。 -
最初にデータベースを選択してください ダイアログボックスで、DMS に追加した Tablestore インスタンスを選択します。
DMS は、Tablestore で作成した SQL マッピングテーブルを自動的に表示します。
-
-
テーブルのマッピングテーブルを作成し、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 コンソール] ページで、データをクエリするための
SELECTステートメントを記述します。詳細については、「データのクエリ」をご参照ください。次のサンプルコードは、test_table テーブルのデータをクエリし、最大 20 行のデータを取得する方法の例です。
SELECT `pk`, `long_value`, `double_value`, `string_value`, `bool_value` FROM test_table LIMIT 20; -
SQL ステートメントを選択し、[実行 (F8)] をクリックするか、ステートメント行の先頭にある
アイコンをクリックします。実行結果は、SQL エディターの [実行履歴] タブに表示されます。
実行結果タブで、ファイルのエクスポート にカーソルを合わせ、エクスポートしたい結果セットを選択します。DMS は結果セットをローカルにダウンロードするか、結果セットの
INSERTSQL ステートメントを生成します。説明実行履歴 タブでは、実行時間、SQL ステートメント、ステータスなど、SQL ステートメントの実行履歴を表示できます。クエリが失敗した場合、備考 列のエラーメッセージを参照して問題をトラブルシューティングできます。
-
TimeSeries モデルのインスタンスにおける SQL ステートメントでのデータクエリ
-
[SQL コンソール] ページに移動します。
説明または、ホームページの左側にある [データベースインスタンス] ペインで、追加した Tablestore インスタンスをダブルクリックして [SQL コンソール] ページを開くこともできます。
-
Data Management (DMS) 5.0 コンソールにログインします。
-
ホームページの左側で、
アイコンにカーソルを合わせ、Sqlウィンドウ を選択します。 -
最初にデータベースを選択してください ダイアログボックスで、DMS に追加した Tablestore インスタンスを選択します。
DMS は、Tablestore で作成した SQL マッピングテーブルを自動的に表示します。
-
-
テーブルのマッピングテーブルを作成し、SQL ステートメントを実行します。
時系列テーブルを作成すると、システムは自動的に単一値モデルマッピングとタイムラインメタデータマッピングを作成します。手動で作成する必要はありません。SQL では、単一値モデルマッピングの名前は時系列テーブル名と同じです。タイムラインメタデータマッピングの名前は、時系列テーブル名の後に
::metaが続きます。複数値モデルのマッピングテーブルを使用して時系列テーブルの時系列データをクエリしたい場合は、複数値モデルのマッピングテーブルを作成する必要があります。複数値モデルのマッピングテーブルを使用して時系列データをクエリしない場合は、複数値モデルのマッピングテーブルを作成する必要はありません。
重要テーブルのマッピングテーブルを作成する際は、マッピングテーブルのフィールドのデータ型がテーブルのフィールドのデータ型と一致していることを確認してください。詳細については、「SQL におけるデータ型のマッピング」をご参照ください。時系列テーブルのマッピングテーブルのフィールドのデータ型に関する詳細については、「SQL における時系列テーブルのマッピングテーブル」をご参照ください。
-
[SQL コンソール] ページで、SQL マッピングテーブルを作成するための SQL ステートメントを記述します。詳細については、「時系列テーブルのマッピング」をご参照ください。
測定プロパティに
cpu、memory、disktopの 3 つのメトリックが含まれていると仮定します。次の例は、timeseries_table::muti_modelという名前の複数値モデルのマッピングテーブルを作成する方法を示しています。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 コンソール] ページで、データをクエリするための
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 エディターの [実行履歴] タブに表示されます。
実行結果タブで、ファイルのエクスポート にカーソルを合わせ、エクスポートしたい結果セットを選択します。DMS は結果セットをローカルにダウンロードするか、結果セットの
INSERTSQL ステートメントを生成します。説明実行履歴 タブでは、実行時間、SQL ステートメント、ステータスなど、SQL ステートメントの実行履歴を表示できます。クエリが失敗した場合、備考 列のエラーメッセージを参照して問題をトラブルシューティングできます。
-
課金ルール
Tablestore 料金
DMS を使用して SQL で Tablestore にアクセスする場合、SQL 機能自体に追加料金はかかりません。ただし、Tablestore は、テーブルスキャンやインデックスルックアップなど、クエリ中に実行される操作に対して課金します。詳細については、「SQL クエリの課金項目」をご参照ください。
その他のリソース料金
DMS を使用する場合、インスタンスが安定的な変更モードまたはセキュリティコラボレーションモードである場合に課金されます。インスタンスが柔軟な管理モードである場合は課金されません。詳細については、「課金項目 (DMS)」をご参照ください。
参考
-
Tablestore コンソールや Tablestore CLI、または Tablestore SDK、Java Database Connectivity (JDBC)、Tablestore driver for Go を使用して SQL ステートメントを実行し、データをクエリすることもできます。詳細については、「SQL クエリの使用方法」をご参照ください。
-
Tablestore インスタンスを DataWorks に接続し、SQL ステートメントを実行して Tablestore データをクエリおよび分析することもできます。詳細については、「Tablestore インスタンスと DataWorks の接続」をご参照ください。
-
MaxCompute、Spark、Hive、HadoopMR、Function Compute、Realtime Compute for Apache Flink、PrestoDB などの計算エンジンを使用して、テーブル内のデータを計算および分析できます。詳細については、「計算と分析の概要」をご参照ください。
-
SQL ステートメントを実行してデータクエリと計算を高速化したい場合は、セカンダリインデックスまたは多次元インデックスを作成できます。詳細については、「インデックス選択ポリシー」および「計算プッシュダウン」をご参照ください。