Tablestore では、Tablestore インスタンスを DataWorks に接続できます。これにより、DataWorks でインスタンスのデータを管理および使用できます。インスタンスを DataWorks に接続するには、DataWorks に Tablestore データソースを追加する必要があります。 Tablestore データソースを追加した後、DataWorks でデータ同期タスクを設定して、Tablestore データを同期および移行し、SQL ステートメントを実行して Tablestore データをクエリできます。このトピックでは、Tablestore データソースを追加し、SQL ステートメントを実行して Tablestore データをクエリする方法について説明します。
背景情報
DataWorks は、MaxCompute、Hologres、E-MapReduce(EMR)、AnalyticDB、Cloudera Data Platform(CDP)などのビッグデータ コンピュートエンジンに基づいて、データウェアハウス、データレイク、データレイクハウス ソリューションを提供するエンドツーエンドのビッグデータ開発およびガバナンス プラットフォームです。詳細については、「DataWorks とは」をご参照ください。
シナリオ
Tablestore インスタンスを DataWorks に接続すると、DataWorks でデータを効率的に処理および分析し、さまざまなビッグデータ シナリオでデータを使用できます。よくあるシナリオを以下に示します。
大規模データ ストレージと分析
Tablestore は高スループットを提供し、大量のデータを格納できます。 DataWorks はビッグデータ分析をサポートしています。接続後、DataWorks で SQL ステートメント、MapReduce タスク、またはカスタムコードを使用して、Tablestore データをクエリおよび処理できます。たとえば、ログやユーザーの行動を分析できます。
リアルタイム データ処理
DataWorks は、Flink タスクなどのリアルタイム コンピューティング タスクをサポートしています。接続後、リアルタイム モニタリング、リアルタイム レポート、リアルタイム レコメンデーションなどのシナリオで、Tablestore データをリアルタイムで消費、処理、分析できます。
オフライン データ処理とバッチ処理
DataWorks はタスク スケジュール機能を提供します。接続後、Tablestore データを含むバッチ処理タスクがトリガーされ、スケジュールどおりに実行されます。タスクは、生データを分析に必要な形式に変換する抽出・変換・書き出し(ETL)タスク、またはデータを集計および分析するスケジュールされたタスクです。
データレイクとデータウェアハウスの構築
Tablestore は、生データまたは半構造化データを格納するデータレイクのストレージ レイヤーとして使用できます。接続後、DataWorks を使用してデータ パイプラインを構築し、Tablestore データを処理およびクレンジングしてから、MaxCompute などのデータウェアハウスにインポートして、さらに分析およびマイニングを行うことができます。
BI レポートとデータの可視化
DataWorks は、Quick BI などのビジネス インテリジェンス(BI)レポート ツールと統合できます。接続後、DataWorks は Tablestore から直接データを読み取り、さまざまな BI レポートとダッシュボードを生成して、企業の意思決定のためのデータ サポートを提供できます。
機械学習と AI プロジェクト
トレーニング、モデル、特徴のデータを Tablestore に格納できます。接続後、DataWorks を使用して、Tablestore データに基づいてモデル トレーニングと予測を行うために Platform for AI(PAI)で作成されたタスクを呼び出すことができます。これにより、データの準備からモデルのデプロイまで、エンドツーエンドの開発を行うことができます。
手順
Tablestore インスタンスを DataWorks に接続すると、SQL クエリ機能を使用して Tablestore データをクエリおよび分析できます。
Wide Column モデルまたは TimeSeries モデルを使用する場合にのみ、Tablestore インスタンスを DataWorks に接続できます。
前提条件
AccessKey ペアが作成されたリソース アクセス管理(RAM)ユーザーが作成されます。 AliyunOTSFullAccess ポリシーが RAM ユーザーにアタッチされ、RAM ユーザーに Tablestore を管理する権限が付与されます。また、AliyunDataWorksFullAccess ポリシーが RAM ユーザーにアタッチされ、RAM ユーザーに DataWorks を管理する権限が付与されます。詳細については、「RAM ユーザーの AccessKey ペアを使用して Tablestore にアクセスする」をご参照ください。
使用する Tablestore データ モデルに基づいて、特定のリソースが作成されます。
Wide Column モデルを使用する場合は、データ テーブルが作成され、データがデータ テーブルに書き込まれます。詳細については、「データ テーブルの操作」および「データの書き込み」をご参照ください。
TimeSeries モデルを使用する場合は、時系列テーブルが作成され、データが時系列テーブルに書き込まれます。詳細については、「時系列テーブルの操作」および「時系列データの書き込み」をご参照ください。
DataWorks コンソールで次の操作が実行されます。
DataWorks がアクティブ化され、ワークスペースが作成されます。詳細については、「DataWorks のアクティブ化」および「ワークスペースの作成」をご参照ください。
DataWorks の DataAnalysis サービスで Tablestore データソースをクエリする権限を取得します。詳細については、「データ クエリおよび分析 コントロール機能を使用する」をご参照ください。
使用するアカウントがワークスペースのメンバーとして追加され、データ アナリスト、モデル デベロッパー、開発、O&M、ワークスペース マネージャー、またはプロジェクト オーナー ロールがメンバーに割り当てられます。詳細については、「ワークスペース メンバーを追加し、ロールを割り当てる」をご参照ください。
ステップ 1: DataWorks に Tablestore データソースを追加する
Tablestore データベースをデータソースとして追加するには、次の手順を実行します。
Data Integration ページに移動します。
DataWorks コンソール にログインし、左上隅でリージョンを選択し、 を選択し、ドロップダウン リストからワークスペースを選択して、[データ統合に移動] をクリックします。
左側のナビゲーション ウィンドウで、[データソース] をクリックします。
[データソース] ページで、[データソースの追加] をクリックします。
[データソースの追加] ダイアログ ボックスで、[tablestore] ブロックをクリックします。
[OTS データソースの追加] ダイアログ ボックスで、次の表に示すパラメーターを設定します。
パラメーター
説明
データソース名
データソースの名前。名前には文字、数字、アンダースコア(_)を含めることができ、文字で始める必要があります。
データソースの説明
データソースの説明。説明は 80 文字以内にする必要があります。
エンドポイント
Tablestore インスタンスのエンドポイント。詳細については、「エンドポイント」をご参照ください。
Tablestore インスタンスと宛先データソースのリソースが同じリージョンにある場合は、仮想プライベート クラウド(VPC)エンドポイントを入力します。それ以外の場合は、パブリック エンドポイントを入力します。
Table Store インスタンス名
Tablestore インスタンスの名前。詳細については、「インスタンス」をご参照ください。
AccessKey ID
Alibaba Cloud アカウントまたは RAM ユーザーの AccessKey ID と AccessKey シークレット。 AccessKey ペアの作成方法の詳細については、「AccessKey ペアを作成する」をご参照ください。
AccessKey シークレット
データソースと選択したリソース グループ間のネットワーク接続をテストします。
同期ノードが予期どおりに実行されるようにするには、データソースと、同期ノードが実行されるすべてのリソース グループ タイプ間の接続をテストする必要があります。
重要同期タスクは、1 つのリソース グループ タイプのみを使用できます。デフォルトでは、データ統合の共有リソース グループのみがリソース グループ リストに表示されます。データ同期の安定性とパフォーマンスを確保するために、データ統合専用のリソース グループを使用することをお勧めします。
[購入] をクリックして新しいリソース グループを作成するか、[購入したリソース グループを関連付ける] をクリックして既存のリソース グループを関連付けます。詳細については、「データ統合専用のリソース グループを作成して使用する」をご参照ください。
リソース グループが開始されたら、リソース グループの [接続ステータス(本番環境)] 列の [ネットワーク接続のテスト] をクリックします。
[接続済み] と表示されている場合は、接続テストに合格しています。
データソースがネットワーク接続テストに合格したら、[完了] をクリックします。
新しく作成されたデータソースがデータソース リストに表示されます。
ステップ 2: DataWorks の SQL クエリ機能を使用して Tablestore データをクエリする
Tablestore は、Wide Column モデルや TimeSeries モデルなどのデータ ストレージ モデルをサポートしています。 SQL クエリ操作は、インスタンスのモデルによって異なります。インスタンスのモデルに基づいて SQL クエリ操作を実行する必要があります。
DataWorks の DataAnalysis サービスの SQL クエリ機能は、Tablestore の SQL クエリ機能と同じ機能を提供します。詳細については、「SQL 機能」をご参照ください。
Wide Column モデルのインスタンスで SQL ステートメントを実行してデータをクエリする
データ分析ページに移動します。
DataWorks コンソール にプロジェクト管理者としてログインします。
左側のナビゲーション ウィンドウで、[データ分析] > [SQL クエリ] を選択します。
[SQL クエリ] ページで、リージョンを選択し、管理するワークスペースを選択して、[SQL クエリに移動] をクリックします。
SQL クエリ ファイルを作成します。
SQL クエリ ページの左側のナビゲーション ウィンドウで、[マイファイル] の右側にあるプラス アイコンにポインターを移動し、[ファイルの作成] を選択します。
[ファイルの作成] ダイアログ ボックスで、ファイル名を入力し、[OK] をクリックします。
左側のナビゲーション ウィンドウに、作成されたファイルが表示されます。
作成したファイルの SQL エディターを開き、クエリするデータのデータソースに関する情報を設定します。

SQL クエリ ページの左側のナビゲーション ウィンドウで、[マイファイル] をクリックし、作成したファイルをクリックします。表示される SQL エディターの右上隅にある
アイコンをクリックします。表示されるダイアログ ボックスで、パラメーターを設定します。次の表にパラメーターを示します。
パラメーター
説明
ワークスペース
クエリするデータのワークスペース。ビジネス要件に基づいてワークスペースを選択します。
データソース タイプ
クエリするデータのデータソースのタイプ。 [tablestore] を選択します。
データソース名
クエリするデータのデータソースの名前。追加したデータソースを選択します。クエリするテーブルは、データソースに指定されたインスタンスに属しています。
重要[データソース名] ドロップダウン リストには、使用が許可されているデータソースのみが表示されます。他のデータソースを使用する場合は、管理者に連絡して、[セキュリティ センター] ページで必要な権限を付与してもらってください。詳細については、「データ クエリおよび分析 コントロール機能を使用する」をご参照ください。
[OK] をクリックします。
テーブルのマッピング テーブルを作成し、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 ステートメントをクリックし、ツールバーの [実行] をクリックします。
実行結果は、SQL エディターの [結果] タブに表示されます。
SQL ステートメントを実行して、テーブル内のデータをクエリします。
ファイルの SQL エディターで、SELECT ステートメントを記述してデータをクエリします。詳細については、「データのクエリ」をご参照ください。
次の SQL ステートメントの例は、test_table テーブル内のデータをクエリし、最大 20 行のデータを取得する方法の例を示しています。
SELECT `pk`, `long_value`, `double_value`, `string_value`, `bool_value` FROM test_table LIMIT 20;SQL ステートメントをクリックし、ツールバーの [実行] をクリックします。
実行結果は、SQL エディターの [結果] タブに表示されます。
TimeSeries モデルのインスタンスで SQL ステートメントを実行してデータをクエリする
データ分析ページに移動します。
DataWorks コンソール にプロジェクト管理者としてログインします。
左側のナビゲーション ウィンドウで、[データ分析] > [SQL クエリ] を選択します。
[SQL クエリ] ページで、リージョンを選択し、管理するワークスペースを選択して、[SQL クエリに移動] をクリックします。
SQL クエリ ファイルを作成します。
SQL クエリ ページの左側のナビゲーション ウィンドウで、[マイファイル] の右側にあるプラス アイコンにポインターを移動し、[ファイルの作成] を選択します。
[ファイルの作成] ダイアログ ボックスで、ファイル名を入力し、[OK] をクリックします。
左側のナビゲーション ウィンドウに、作成されたファイルが表示されます。
作成したファイルの SQL エディターを開き、クエリするデータのデータソースに関する情報を設定します。

SQL クエリ ページの左側のナビゲーション ウィンドウで、[マイファイル] をクリックし、作成したファイルをクリックします。表示される SQL エディターの右上隅にある
アイコンをクリックします。表示されるダイアログ ボックスで、パラメーターを設定します。次の表にパラメーターを示します。
パラメーター
説明
ワークスペース
クエリするデータのワークスペース。ビジネス要件に基づいてワークスペースを選択します。
データソース タイプ
クエリするデータのデータソースのタイプ。 [tablestore] を選択します。
データソース名
クエリするデータのデータソースの名前。追加したデータソースを選択します。クエリするテーブルは、データソースに指定されたインスタンスに属しています。
重要[データソース名] ドロップダウン リストには、使用が許可されているデータソースのみが表示されます。他のデータソースを使用する場合は、管理者に連絡して、[セキュリティ センター] ページで必要な権限を付与してもらってください。詳細については、「データ クエリおよび分析 コントロール機能を使用する」をご参照ください。
[OK] をクリックします。
テーブルのマッピング テーブルを作成し、SQL ステートメントを実行します。
時系列テーブルを作成すると、システムは自動的に単一値モデルのマッピング テーブルと、時系列テーブルの時系列メタデータのマッピング テーブルを作成します。単一値モデルのマッピング テーブルの名前は、時系列テーブルの名前と同じです。時系列メタデータのマッピング テーブルの名前は、時系列テーブルの名前に
::metaを付けたものです。複数値モデルのマッピング テーブルを使用して時系列テーブルの時系列データをクエリする場合は、複数値モデルのマッピング テーブルを作成する必要があります。複数値モデルのマッピング テーブルを使用して時系列データをクエリしない場合は、複数値モデルのマッピング テーブルを作成する必要はありません。
重要テーブルのマッピング テーブルを作成する場合は、マッピング テーブルのフィールドのデータ タイプがテーブルのフィールドのデータ タイプと一致していることを確認してください。詳細については、「SQL でのデータ タイプ マッピング」をご参照ください。時系列テーブルのマッピング テーブルのフィールドのデータ タイプの詳細については、「SQL での時系列テーブルのマッピング テーブル」をご参照ください。
ファイルの SQL エディターで、マッピング テーブルを作成するための SQL ステートメントを記述します。詳細については、「SQL での時系列テーブルのマッピング テーブル」をご参照ください。
次の SQL ステートメントの例は、
timeseries_table::muti_modelという名前の複数値モデルのマッピング テーブルを時系列テーブルに作成する方法の例を示しています。マッピング テーブルのメトリックは、cpu、memory、disktop です。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 ステートメントをクリックし、ツールバーの [実行] をクリックします。
実行結果は、SQL エディターの [結果] タブに表示されます。
SQL ステートメントを実行して、テーブル内のデータをクエリします。
ファイルの SQL エディターで、SELECT ステートメントを記述してデータをクエリします。詳細については、「SQL の例」をご参照ください。
単一値モデルのマッピング テーブルを使用してデータをクエリする
次の SQL ステートメントの例は、時系列データ テーブルでメトリック タイプが basic_metric であるデータをクエリする方法の例を示しています。
SELECT * FROM timeseries_table WHERE _m_name = "basic_metric" LIMIT 10;時系列メタデータのマッピング テーブルを使用してデータをクエリする
次の SQL ステートメントの例は、時系列メタデータのマッピング テーブルでメトリック名が basic_metric である時系列をクエリする方法の例を示しています。
SELECT * FROM `timeseries_table::meta` WHERE _m_name = "basic_metric" LIMIT 100;複数値モデルのマッピング テーブルを使用してデータをクエリする
次の SQL ステートメントの例は、複数値モデルのマッピング テーブルを使用して、cpu 値が 20.0 より大きい時系列のメトリックに関する情報をクエリする方法の例を示しています。
SELECT cpu,memory,disktop FROM `timeseries_table::muti_model` WHERE cpu > 20.0 LIMIT 10;
SQL ステートメントをクリックし、ツールバーの [実行] をクリックします。
実行結果は、SQL エディターの [結果] タブに表示されます。
料金ルール
Tablestore 料金
DataWorks で SQL ステートメントを実行して Tablestore リソースにアクセスする場合、SQL ステートメントに対して料金は発生しません。ただし、SQL ステートメントの実行中にテーブル スキャンやインデックス クエリなどの操作が実行された場合は、操作に対して料金が発生します。詳細については、「SQL クエリの課金対象項目」をご参照ください。
その他のリソース料金
DataWorks ツールを使用すると、特定の機能とリソースに対して課金されます。詳細については、「購入ガイド」をご参照ください。
関連情報
Tablestore コンソール、Tablestore CLI、Tablestore SDK、Java Database Connectivity(JDBC)、または Go 用 Tablestore ドライバーを使用して、SQL ステートメントを実行してデータをクエリすることもできます。詳細については、「SQL クエリの使用方法」をご参照ください。
Tablestore インスタンスを Data Management(DMS)に接続してから、SQL ステートメントを実行して Tablestore データをクエリおよび分析することもできます。詳細については、「Tablestore を DMS に接続する」をご参照ください。
MaxCompute、Spark、Hive、HadoopMR、Function Compute、Realtime Compute for Apache Flink、PrestoDB などのコンピューティング エンジンを使用して、テーブル内のデータを計算および分析できます。詳細については、「概要」をご参照ください。
SQL ステートメントを実行してデータ クエリとコンピューティングを高速化する場合は、セカンダリ インデックスまたは検索インデックスを作成できます。詳細については、「インデックス選択ポリシー」および「コンピューティング プッシュダウン」をご参照ください。
DataWorks の Data Integration を使用して、MySQL、Oracle、Kafka、HBase、MaxCompute、PolarDB-X 2.0、Tablestore などのデータソースから Tablestore にデータを移行することもできます。詳細については、「データ統合」をご参照ください。