Tablestore をデータ管理(DMS)に接続すると、DMS で Tablestore を管理および使用できます。具体的には、Tablestore インスタンスを DMS に追加し、DMS で SQL ステートメントを実行して Tablestore データをクエリできます。また、ビジネス要件に基づいて、特定の条件を満たす Tablestore データをオンプレミスコンピュータにエクスポートすることもできます。
背景情報
DMS は、データのライフサイクル全体にわたってデータを管理できるワンストップのデータ管理プラットフォームです。DMS を使用すると、グローバルデータ資産の管理、データのガバナンス、データベースの設計と開発、データの統合、データの開発、データの消費を行うことができます。上記の機能により、企業は効率的かつ安全な方法でデータから価値を引き出し、デジタルトランスフォーメーションを実現できます。詳細については、DMS とは を参照してください。
シナリオ
Tablestore を DMS に接続すると、さまざまなビッグデータシナリオで、DMS で Tablestore データを効率的に処理および分析できます。一般的なシナリオを以下に示します。
大規模データストレージと分析
Tablestore は高スループットを提供し、大量のデータを格納できます。SQL ステートメントを実行することで、DMS で Tablestore データをクエリおよび処理できます。このようにして、ビッグデータ分析を実行できます。たとえば、ログとユーザーの行動を分析できます。
データのインポートとエクスポート
DMS を使用して、外部ソースから Tablestore にデータをロードしたり、Tablestore から他のシステムにデータをエクスポートしたりできます。
データの転送と統合
DMS を使用すると、他のデータソースから Tablestore にデータを簡単に転送したり、Tablestore データをデータウェアハウス、メッセージキュー、またはその他のオンラインまたはオフライン分析システムに転送したりできます。DMS を使用すると、データレイクやデータミッドエンドなどの複雑なデータアーキテクチャを構築できるため、効率的なデータ統合と活用を実現できます。
リアルタイムデータ監視とアラート
DMS の監視および通知機能を使用して、ミッションクリティカルな Tablestore メトリックの監視およびアラートルールを設定できます。このようにして、データの例外やシステムパフォーマンスの問題について通知を受け、できるだけ早く例外や問題を処理できます。これにより、ビジネスの継続性と安定性が確保されます。
前提条件
以下の操作は、Resource Access Management(RAM)コンソールで実行されます。
RAM ユーザーが作成され、AliyunOTSFullAccess ポリシーが RAM ユーザーにアタッチされて、RAM ユーザーに Tablestore を管理する権限が付与されます。詳細については、RAM ユーザーの作成 および RAM ユーザーへの権限の付与 を参照してください。
警告Alibaba Cloud アカウントの AccessKey ペアが漏洩した場合、リソースは潜在的なリスクにさらされます。Alibaba Cloud アカウントの AccessKey ペアの漏洩を防ぐために、RAM ユーザーの AccessKey ペアを使用して操作を実行することをお勧めします。
RAM ユーザーの AccessKey ペアが作成されます。詳細については、AccessKey ペアの作成 を参照してください。
以下の操作は、Tablestore コンソールで実行されます。
Tablestore がアクティブ化され、インスタンスが作成されます。詳細については、Tablestore のアクティブ化 および インスタンスの作成 を参照してください。
ワイドカラムモデルを使用する場合、データテーブルが作成され、データがデータテーブルに書き込まれます。詳細については、データテーブルの操作 および データの書き込み を参照してください。
時系列モデルを使用する場合、時系列テーブルが作成され、データが時系列テーブルに書き込まれます。詳細については、時系列テーブルの操作 および 時系列データの書き込み を参照してください。
以下の操作は、DMS コンソールで実行されます。
DMS を初めて使用する場合は、DMS サービスリンクロール AliyunServiceRoleForDMS が作成されます。
AliyunServiceRoleForDMS サービスリンクロールにより、DMS は Elastic Compute Service(ECS)インスタンス、仮想プライベートクラウド(VPC)、RDS インスタンス、およびさまざまなデータベースとツールに関連するリソースにアクセスできます。詳細については、DMS のサービスリンクロール を参照してください。
SQL 操作を実行する権限を持つシステムロールがユーザーに設定されます。詳細については、システムロール を参照してください。
説明デフォルトでは、DMS テナントに追加された Alibaba Cloud アカウントの RAM ユーザーは、通常のユーザーロールを担います。
通常のユーザーロールは、データベース関連の権限を申請し、データとテーブルスキーマをクエリおよび変更できます。通常のユーザーロールは、企業の開発者、テストエンジニア、製品エンジニア、運用エンジニア、データアナリストが担うことができます。
操作を実行するには、DMS コンソールのシンプルモードを使用することをお勧めします。詳細については、シンプルモード を参照してください。
使用上の注意
DMS の SQL コンソールページで Tablestore データをクエリするために使用できる SQL クエリ機能は、Tablestore でサポートされている SQL クエリ機能と同じです。詳細については、SQL 機能 を参照してください。
DMS を使用してクラシックネットワーク経由でのみ Tablestore インスタンスにアクセスできます。Tablestore インスタンスのネットワーク ACL で、クラシックネットワーク経由での Tablestore インスタンスへのアクセスが許可されていることを確認してください。詳細については、ネットワーク ACL を参照してください。
手順
Tablestore を DMS に接続すると、SQL クエリ機能を使用して Tablestore データをクエリおよび分析できます。
ステップ 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 機能を提供して、カスタムの R&D プロセスとレビュープロセスを指定できるようにします。
安定した変更モードは、ロックフリーの変更や SQL レビューなどのソリューションを提供して、データベースをより安定した方法で実行できるようにします。
セキュリティルール
このパラメータは、高度な機能パック パラメータを セキュリティコラボレーション に設定した場合にのみ使用できます。
デフォルトのセキュリティルールまたはカスタムセキュリティルールを選択して、データベースをきめ細かく管理できます。詳細については、セキュリティルールの管理 を参照してください。
(オプション) 詳細情報 セクションで、ビジネス要件に基づいて、環境タイプ、インスタンス名、クエリタイムアウト期間などの高度な機能を指定するパラメータを設定します。次の表にパラメータを示します。
パラメータ
説明
環境タイプ
データベースインスタンスをデプロイする環境のタイプ。詳細については、インスタンスの環境タイプの変更 を参照してください。
インスタンス名
DMS に表示するインスタンスの名前。デフォルトでは、DMS は Tablestore から DMS に Tablestore インスタンスの名前を自動的に同期します。
DMS で Tablestore インスタンスのカスタム名を指定する場合は、インスタンス名を自動的に同期 をクリアして、カスタム名を指定できます。
DBA
データベースインスタンスのデータベース管理者(DBA)。DBA はユーザーに権限を付与できます。
クエリタイムアウト(秒)
SQL クエリスクテートメントの実行のタイムアウト期間。SQL クエリスクテートメントの実行に必要な時間が指定されたタイムアウト期間よりも長い場合、データベースを保護するためにクエリスクテートメントの実行が終了します。
エクスポートタイムアウト(秒)
SQL エクスポートステートメントの実行のタイムアウト期間。SQL エクスポートステートメントの実行に必要な時間が指定されたタイムアウト期間よりも長い場合、データベースを保護するためにエクスポートステートメントの実行が終了します。
データベース接続をテストします。
接続テスト をクリックして、データベースの接続をテストします。
データベースが接続テストに合格した場合は、OK をクリックします。
送信 をクリックします。
ホスティングを承認します。
インスタンスのセキュリティホスティングが有効になっている場合、システムはホスティング承認を設定するように求めます。ビジネス要件に基づいてホスティング承認を設定できます。他のユーザーがインスタンスを使用する場合、ユーザーはあなたまたはインスタンスの所有者から権限をリクエストする必要があります。
注記 ダイアログボックスで、今すぐ承認 をクリックします。
権限の承認 ダイアログボックスで、[承認された人物]、[権限]、[有効期間] パラメータを設定します。
OK をクリックします。
ステップ 2: DMS で SQL ステートメントを使用して Tablestore データをクエリする
Tablestore は、ワイドカラムや時系列などのデータストレージモデルをサポートしています。SQL クエリ操作は、インスタンスのモデルによって異なります。インスタンスのモデルに基づいて SQL クエリ操作を実行する必要があります。
ワイドカラムモデルのインスタンスで SQL ステートメントを実行してデータをクエリする
SQL コンソール ページに移動します。
説明以下の操作を実行することで、SQL コンソール ページに移動できます。DMS コンソールのホームページの左側のナビゲーションペインで データベースインスタンス をクリックし、DMS に追加した Tablestore インスタンスをダブルクリックします。
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 ステートメントを実行してデータをクエリする
SQL コンソール ページに移動します。
説明以下の操作を実行することで、SQL コンソール ページに移動できます。DMS コンソールのホームページの左側のナビゲーションペインで データベースインスタンス をクリックし、DMS に追加した Tablestore インスタンスをダブルクリックします。
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クエリの課金対象項目 を参照してください。
Tablestore での読み取りおよび書き込みリクエストによって消費される読み取りおよび書き込みスループットに対して課金されます。従量課金制の読み取りおよび書き込みキャパシティユニット(CU)と予約型の読み取りおよび書き込み CU に対して個別に課金されます。アクセスするインスタンスタイプによって、従量課金制の読み取りおよび書き込み CU または予約型の読み取りおよび書き込み CU のどちらが消費されるかが決まります。
インスタンスタイプと CU については、インスタンス および 読み取り/書き込みスループット を参照してください。
その他のリソース料金
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ステートメントを実行することでデータクエリと計算を高速化したい場合は、セカンダリインデックスまたは検索インデックスを作成できます。詳細については、インデックス選択ポリシーとコンピューティングプッシュダウンを参照してください。