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)で作成されたタスクを呼び出すことができます。これにより、データの準備からモデルのデプロイメントまでのエンドツーエンドの開発を実行できます。
準備
Resource Access Management(RAM)コンソールで次の操作を実行します。
RAMユーザーを作成し、RAMユーザーにTablestore管理権限(AliyunOTSFullAccess)とDataWorks管理権限(AliyunDataWorksFullAccess)を付与します。詳細については、RAMユーザーの作成 および RAMユーザーへの権限の付与 を参照してください。
警告Alibaba CloudアカウントのAccessKeyペアが漏洩した場合、リソースは潜在的なリスクにさらされます。操作を実行するには、RAMユーザーのAccessKeyペアを使用することをお勧めします。これにより、Alibaba CloudアカウントのAccessKeyペアが漏洩するのを防ぎます。
RAMユーザーのAccessKeyペアを作成します。詳細については、AccessKeyペアの作成 を参照してください。
Tablestoreコンソールで次の操作を実行します。
Tablestoreをアクティブ化し、インスタンスを作成します。詳細については、Tablestoreのアクティブ化 および インスタンスの作成 を参照してください。
ワイドカラムモデルのインスタンスを作成する場合は、インスタンスにデータテーブルを作成し、データテーブルにデータを書き込みます。詳細については、データテーブルの操作 および データの書き込み を参照してください。
時系列モデルのインスタンスを作成する場合は、インスタンスに時系列テーブルを作成し、テーブルにデータを書き込みます。詳細については、時系列テーブルの操作 および 時系列データの書き込み を参照してください。
DataWorksコンソールで次の操作を実行します。
DataWorksをアクティブ化し、ワークスペースを作成します。詳細については、DataWorksのアクティブ化 および ワークスペースの作成 を参照してください。
DataWorksのDataAnalysisサービスでTablestoreデータソースをクエリする権限を取得します。詳細については、データクエリおよび分析制御機能の使用 を参照してください。
ワークスペースのメンバーとして使用するアカウントを追加し、データアナリスト、モデル開発者、開発、O&M、ワークスペースマネージャー、またはプロジェクトオーナーのロールをメンバーに割り当てます。詳細については、ワークスペースメンバーの追加とロールの割り当て を参照してください。
使用上の注意
ワイドカラムモデル および 時系列モデル 用に作成されたTablestoreインスタンスをDataWorksに接続できます。
DataWorksのDataAnalysisサービスでSQLクエリ機能を使用する場合、アクセス権限を持つワークスペースのデータソースからのみデータをクエリできます。SQLクエリを実行する前に、管理者に連絡して、ワークスペースのメンバーとして追加し、データアナリスト、モデル開発者、開発、O&M、ワークスペースマネージャー、またはプロジェクトオーナーのロールをメンバーに割り当てる必要があります。
DataWorksのDataAnalysisサービスのSQLクエリ機能は、TablestoreのSQLクエリ機能と同じ機能を提供します。詳細については、SQL機能 を参照してください。
手順
TablestoreインスタンスをDataWorksに接続すると、SQLクエリ機能を使用してTablestoreデータをクエリおよび分析できます。
ステップ1:DataWorksにTablestoreデータソースを追加する
Tablestore データベースをデータソースとして追加するには、次の手順を実行します。
データ統合ページに移動します。
DataWorksコンソール にプロジェクト管理者としてログオンします。
左側のナビゲーションペインで、データ統合をクリックします。
データ統合ページで、リージョンを選択し、管理するワークスペースを選択して、データ統合に移動をクリックします。
データ統合ページの左側のナビゲーションペインで、データソースをクリックします。
データソースページで、データソースの追加をクリックします。
データソースの追加ダイアログボックスで、Tablestoreブロックをクリックします。
OTSデータソースの追加ダイアログボックスで、パラメータを設定します。次の表にパラメータを示します。
パラメータ
説明
データソース名
データソースの名前。名前には、文字、数字、アンダースコア(_)を含めることができ、文字で始める必要があります。
データソースの説明
データソースの説明。説明は最大80文字までです。
エンドポイント
Tablestoreインスタンスのエンドポイント。詳細については、エンドポイント を参照してください。
Tablestoreインスタンスと宛先データソースのリソースが同じリージョンにある場合は、仮想プライベートクラウド(VPC)エンドポイントを指定します。Tablestoreインスタンスと宛先データソースのリソースが異なるリージョンにある場合は、パブリックエンドポイントを指定します。
Tablestoreインスタンス名
Tablestoreインスタンスの名前。詳細については、インスタンス を参照してください。
AccessKey ID
Alibaba CloudアカウントまたはRAMユーザーのAccessKey IDとAccessKeyシークレット。AccessKeyペアの作成方法の詳細については、AccessKeyペアの作成 を参照してください。
AccessKeyシークレット
データソースとリソースグループ間のネットワーク接続をテストします。
同期タスクが予期どおりに実行されるように、データソースと同期タスクに必要なリソースグループ間のネットワーク接続をテストします。
重要同期タスクは、1種類のリソースグループのみを使用できます。デフォルトでは、データ統合の共有リソースグループのみがリソースグループリストに表示されます。データ同期の安定性とパフォーマンスを確保するために、データ統合専用の排他的リソースグループを使用することをお勧めします。
購入をクリックしてリソースグループを作成するか、購入したリソースグループを関連付けるをクリックして既存のリソースグループを関連付けます。詳細については、データ統合専用の排他的リソースグループの作成と使用 を参照してください。
管理するリソースグループを見つけ、接続ステータス列のネットワーク接続のテストをクリックします。
接続可能が[接続ステータス]列に表示されている場合、接続テストは合格です。
データソースが接続テストに合格したら、作成完了をクリックします。
データソースリストに、新しく作成されたデータソースが表示されます。
ステップ2:DataWorksのSQLクエリ機能を使用してTablestoreデータをクエリする
Tablestoreは、ワイドカラムモデルと時系列モデルをサポートしています。データクエリ方法は、インスタンスのモデルによって異なります。インスタンスのモデルに基づいて方法を選択する必要があります。
ワイドカラムモデルのインスタンスのデータをクエリする
データ分析ページに移動します。
DataWorksコンソール にプロジェクト管理者としてログオンします。
左側のナビゲーションペインで、DataAnalysis > SQLクエリを選択します。
SQLクエリページで、リージョンを選択し、管理するワークスペースを選択して、SQLクエリに移動をクリックします。
SQLクエリファイルを作成します。
SQLクエリページの左側のナビゲーションペインで、マイファイルの右側にあるプラスアイコンにポインタを移動し、ファイルの作成を選択します。
ファイルの作成ダイアログボックスで、ファイル名を入力し、OKをクリックします。
左側のナビゲーションペインに、作成されたファイルが表示されます。
作成したファイルのSQLエディターを開き、クエリするデータのデータソースに関する情報を設定します。
SQLクエリページの左側のナビゲーションペインで、[マイファイル]をクリックし、作成したファイルをクリックします。表示されるSQLエディターの右上隅にあるアイコンをクリックします。
表示されるダイアログボックスで、パラメータを設定します。次の表にパラメータを示します。
パラメータ
説明
ワークスペース
クエリするデータのワークスペース。ビジネス要件に基づいてワークスペースを選択します。
データソースタイプ
クエリするデータのデータソースのタイプ。Tablestoreを選択します。
データソース名
クエリするデータのデータソースの名前。追加したデータソースを選択します。クエリするテーブルは、データソースに指定されたインスタンスに属しています。
重要[データソース名]ドロップダウンリストには、使用が許可されているデータソースのみが表示されます。他のデータソースを使用する場合は、管理者に連絡して、[セキュリティセンター]ページで必要な権限を付与してもらってください。詳細については、データクエリおよび分析制御機能の使用 を参照してください。
OKをクリックします。
テーブルのマッピングテーブルを作成し、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ステートメントを記述してデータをクエリします。詳細については、データのクエリ を参照してください。
次のサンプルコードは、test_tableテーブルのデータをクエリし、最大20行のデータを取得する方法の例を示しています。
SELECT `pk`, `long_value`, `double_value`, `string_value`, `bool_value` FROM test_table LIMIT 20;
SQLステートメントをクリックし、ツールバーの実行をクリックします。
実行結果は、SQLエディターの[結果]タブに表示されます。
時系列モデルのインスタンスのデータをクエリする
データ分析ページに移動します。
DataWorksコンソール にプロジェクト管理者としてログオンします。
左側のナビゲーションペインで、DataAnalysis > SQLクエリを選択します。
SQLクエリページで、リージョンを選択し、管理するワークスペースを選択して、SQLクエリに移動をクリックします。
SQLクエリファイルを作成します。
SQLクエリページの左側のナビゲーションペインで、マイファイルの右側にあるプラスアイコンにポインタを移動し、ファイルの作成を選択します。
ファイルの作成ダイアログボックスで、ファイル名を入力し、OKをクリックします。
左側のナビゲーションペインに、作成されたファイルが表示されます。
作成したファイルのSQLエディターを開き、クエリするデータのデータソースに関する情報を設定します。
SQLクエリページの左側のナビゲーションペインで、[マイファイル]をクリックし、作成したファイルをクリックします。表示されるSQLエディターの右上隅にあるアイコンをクリックします。
表示されるダイアログボックスで、パラメータを設定します。次の表にパラメータを示します。
パラメータ
説明
ワークスペース
クエリするデータのワークスペース。ビジネス要件に基づいてワークスペースを選択します。
データソースタイプ
クエリするデータのデータソースのタイプ。Tablestoreを選択します。
データソース名
クエリするデータのデータソースの名前。追加したデータソースを選択します。クエリするテーブルは、データソースに指定されたインスタンスに属しています。
重要[データソース名]ドロップダウンリストには、使用が許可されているデータソースのみが表示されます。他のデータソースを使用する場合は、管理者に連絡して、[セキュリティセンター]ページで必要な権限を付与してもらってください。詳細については、データクエリおよび分析制御機能の使用 を参照してください。
OKをクリックします。
テーブルのマッピングテーブルを作成し、SQLステートメントを実行します。
時系列テーブルを作成すると、システムは単一値モデルのマッピングテーブルと、時系列テーブルの時系列メタデータ用のマッピングテーブルを自動的に作成します。単一値モデルのマッピングテーブルの名前は、時系列テーブルの名前と同じです。時系列メタデータのマッピングテーブルの名前は、時系列テーブルの名前に
::meta
という接尾辞を付けたものです。複数値モデルのマッピングテーブルを使用して時系列テーブルの時系列データをクエリする場合は、複数値モデルにマッピングテーブルを作成する必要があります。複数値モデルのマッピングテーブルを使用して時系列データをクエリしない場合は、複数値モデルにマッピングテーブルを作成する必要はありません。
重要テーブルのマッピングテーブルを作成する際は、マッピングテーブルのフィールドのデータ型がテーブルのフィールドのデータ型と一致していることを確認してください。詳細については、SQL のデータ型マッピングを参照してください。時系列テーブルのマッピングテーブルのフィールドのデータ型について詳しくは、SQL の時系列テーブルのマッピングテーブルを参照してください。
ファイルのSQLエディターで、マッピングテーブルを作成するためのSQLステートメントを記述します。詳細については、SQLにおける時系列テーブルのマッピングテーブルを参照してください。
次のサンプルコードは、時系列テーブルの
timeseries_table::muti_model
という名前の複数値モデルにマッピングテーブルを作成する方法の例を示しています。マッピングテーブルのメトリックは、cpu、memory、およびdisktopです。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の例 を参照してください。
単一値モデルのマッピングテーブルを使用してデータをクエリする
次のサンプルコードは、時系列データテーブルでメトリックタイプが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ステートメントをクリックし、ツールバーの実行をクリックします。
実行結果は、SQLエディターの[結果]タブに表示されます。
請求ルール
Tablestore料金
DataWorksでSQLステートメントを実行してTablestoreリソースにアクセスする場合、SQLステートメントに対して料金は発生しません。ただし、SQLステートメントの実行中にテーブルスキャンやインデックスクエリなどの操作が実行された場合は、操作に対して料金が発生します。詳細については、SQLクエリの請求対象項目 を参照してください。
Tablestoreでは、読み取りおよび書き込みリクエストによって消費される読み取りおよび書き込みスループットに対して課金されます。従量課金制の読み取りおよび書き込みキャパシティユニット(CU)と予約済みの読み取りおよび書き込みCUに対して個別に課金されます。アクセスするインスタンスのタイプによって、従量課金制の読み取りおよび書き込みCUまたは予約済みの読み取りおよび書き込みCUのどちらが消費されるかが決まります。
インスタンスタイプとCUの詳細については、インスタンス および 読み取りおよび書き込みスループット を参照してください。
その他のリソース料金
DataWorksツールを使用すると、特定の機能とリソースに対して課金されます。詳細については、購入ガイド を参照してください。
参考資料
TablestoreコンソールまたはTablestore CLIで、あるいはTablestore SDK、JDBCドライバー、またはGo用Tablestoreドライバーを使用して、SQLクエリ機能を使用できます。詳細については、SQLクエリの使用方法 を参照してください。
MaxCompute、Spark、Hive、HadoopMR、Function Compute、Realtime Compute for Apache Flink、PrestoDBなどのコンピューティングエンジンを使用して、テーブル内のデータを計算および分析できます。詳細については、概要 を参照してください。
SQLステートメントを実行してデータクエリと計算を高速化するには、セカンダリインデックスまたは検索インデックスを作成できます。詳細については、インデックス選択ポリシー および 計算プッシュダウン を参照してください。
DataWorksのデータ統合を使用して、MySQL、Oracle、Kafka、HBase、MaxCompute、PolarDB-X 2.0、TablestoreなどのデータソースからTablestoreにデータを移行することもできます。詳細については、データ統合 を参照してください。