DataWorks

プロダクト紹介

DataWorksとは

DataWorks は、PaaS (Platform as a Service) 製品として、Alibaba Cloud 重要なプラットフォームです。 DataWorks は、完全クラウド型のワークフロー機能と、ワンストップ型のデータ開発および管理インターフェイスを提供し、顧客企業のデータマイニングとデータ探索を支援します。
DataWorks は、MaxCompute をコアコンピューティングおよびストレージエンジンとして使用して、オフライン環境での強力なデータ処理、分析、マイニング能力を実現しています。
DataWorks はデータの転送と変換を容易にします。他のデータストレージサービスからデータをインポートして変換し、最終的に他のデータシステムへ伝送するためにデータを抽出することも可能です。DataWorks におけるデータ分析の全体的な概要については、次の図をご参照ください。

DataWorks

機能

  • 完全クラウド型スケジューリング機能
    DataWorks はパワフルなスケジュール機能を提供します。 DAG (Directed Acyclic Graph) のリレーションシップに基づき、時間や依存関係をベースとしたトリガーを設定し、毎日最大限の正確性をもって膨大なタスクを実行できます。 スケジュールの頻度は分単位、時間単位、日単位、週単位、月単位でサポートされています。
    完全クラウド型であるため、スケジュールに消費するサーバーのリソースを心配する必要がありません。 システムはテナントごとに分かれており、タスクを独立して実行します。
  • 多様なタスクをサポート
    DataWorks はデータ同期、シェル、MaxCompute SQL 、MaxCompute MR など、多様なタスクをサポートします。 タスク間の依存関係により、複雑なデータ分析処理が実行できます。
    • MaxCompute の搭載により、DataWorks はパワフルなデータ変換機能を実現しており、高性能なビッグデータ分析処理を保証します。
    • データ同期について、DataWorks は強力なデータ統合機能を備え、20 種類以上ものデータソースをサポートし、安定した高効率なデータ転送を提供します。
  • ビジュアル開発
    本製品はビジュアルなコード開発とワークフローデザイン画面を提供します。 開発ツールの追加をしなくても、部品をドラッグ&ドロップして複雑なデータ分析タスクを構築できます。 インターネット接続とブラウザーがあれば、どこでも開発作業が可能です。
  • 監視とアラーム
    運用センターで、タスクの監視と管理をビジュアルに行うことができます。運用センターは、タスク実行時に DAG フォーマットで全体状況を表示します。
    タスク障害の迅速な解決に向けたSMS アラーム通知を簡単に設定できます。

制約と制限

  • DataWorks は Chrome 54 以降のバージョンのみサポートしています。
  • 現在、DataWorks は Alibaba Cloud のMaxCompute での SQL 操作のみをサポートしています。

基本概念

業務フロー

本ドキュメントでは、DataWorks の業務フロー、ソリューション、コンポーネント、タスク、インスタンス、送信、スクリプト、開発、リソース、機能、および出力名などの基本概念について説明します。
利点:

  • 業務観点でデータコードの体系化を支援します。タスクの種類、多層的なサブディレクトリ (Alibaba Cloud の推奨は 4 層以下) によってコードを体系化します。
  • 最適化に向けた業務観点でのワークフロー概要の提供。
  • 効率的な開発のための業務フローダッシュボードの提供。
  • 業務フローをもとにしたリリース、メンテナンスの体系化。

ソリューション

DataWorks はカスタマイズ可能な業務フローソリューションを提供します。
利点:

  • 多様な業務フローが利用可能になります。
  • さまざまなソリューションで再利用可能な業務フローを提供できます。
  • 没入型開発向けの包括的なソリューションを提供できです。

コンポーネント

コンポーネントは、複数のインプットおよびアウトプットパラメーターを持つ SQL コードテンプレートです。SQL コードは一般的に、1つまたはそれ以上のソースデータテーブルをフィルタリング、接続、集計、その他操作を行うことで処理されます。新規業務ニーズに応じて対象テーブルを処理します。 SQL の通常ロジックでは、コンポーネントを抽出し、コードの再利用機能を高めることが可能です。

タスク

タスクは、さまざまなデータに対して実行される操作です。 多様なタスクアプリケーションに関する説明は以下のとおりです:

  • データ同期ノードタスクを使用して、RDS からMaxCompute にデータをコピーします。
  • データ変換のための MaxCompute SQL の実行にあたり、MaxCompute SQL ノードタスクを使用します。
  • フロータスクを使用して、いくつかの内部SQLノード間で一連のデータ変換を実行します。

各タスクにおいて、0 個以上のデータテーブル (データセット) が入力され、1 つ以上のデータテーブル (データセット) が出力されます。
タスクは、ノードタスク、フロータスク、および内部ノードに分かれます。 これらタスクの関係性については、次の図をご参照ください:

タスクの関係性
  • ノードタスクはデータに対して実行される操作です。 DAG (有向非循環グラフ) を形成するために、他のノードタスクとフロータスクに依存するように設定できます。
  • フロータスクは、ワークフロータスクを処理する内部ノードグループによって形成されるタスクです。 10 個未満のフロータスクの使用を推奨します。フロータスクの内部ノードは、他のフロータスクやノードタスクに依存できません。 フロータスクは、他のフローやノードタスクに依存してDAGを形成するように設定できます。
  • 内部ノードはフロータスク内のノードです。 基本的に内部ノードはノードタスクと同じ機能を提供します。 内部ノードのスケジューリングサイクルは、フロータスクのスケジュール頻度を継承するため、独立した設定はできません。 ドラッグするだけで依存関係の設定が可能です。

データ操作は操作の種類から選択可能です。

インスタンス

タスクがシステムによってスケジュールされるか、または手動で設定されると、インスタンスが生成されます。 インスタンスは、特定の時刻にタスクによって実行されるスナップショットです。 インスタンスには、タスクの実行時間、実行状況、実行ログ、およびその他情報が含まれています。
例:
タスク 1 は、毎日 2:00 に実行されるように構成されているものとします。 この場合、スケジューリングシステムは、定期ノード タスクによって事前定義された時刻 23:30 に、毎日スナップショットを自動生成します。 つまり、タスク 1 のインスタンスは翌日の午前 2 時に実行されます。 アップストリームタスクが完了したことを検出すると、システムは翌日の午前 2 時にタスク 1 のインスタンスを自動的に実行します。

注:O&M Center > Task O&M ページでタスクインスタンス情報を照会できます。

送信

送信とは、ノードタスク開発プロセスであり、スケジューリングシステムに公開される開発環境からのワークフロータスクです。タスクが送信されると、そのコードとスケジューリング設定がスケジューリングシステムに同期され、スケジューリングシステムはその設定に従ってタスクをスケジュールします。

注:送信されていないノードタスクとフロータスクは、スケジューリングシステムに入力しないでください。

スクリプト

スクリプトとは、データ分析のために提供されるコード記憶領域です。 スクリプトコードをスケジューリングシステムにリリースすることはできず、スケジューリングパラメーターを設定することもできません。 スクリプトコードは、データクエリとデータ分析にのみ使用できます。

リソースと関数

リソースと関数はどちらも MaxCompute の概念です。
DataWorks では、リソースと機能の管理にインタフェースを使用しています。 他の MaxCompute メソッドで管理されているリソースや関数を DataWorks で照会することはできません。

出力名

出力名は各タスクにおける出力ポイントの名称です。 Alibaba Cloud アカウントのシングルテナント内で依存性を設定する場合、アップストリームタスクとダウンスリームタスクに接続する仮想エンティティです。
他のタスクに依存するアップストリームとダウンストリームが構成される設定となっている場合、その際の設定は出力名をベースにしなければなりません。 また、その際のタスクの出力名は、ダウンストリームノードのインプット名にする必要があります。

注:タスクIDと類似するアウトプット名は、同一テナント内のタスクとは異なる固有の概念対象となります。 カスタム出力名の追加も可能ですが、同じテナント内では固有の出力ノード名にする必要があります。

シナリオ

インターネット ビッグデータ アプリケーションサービス向けクラウドプラットフォームの構築

特徴
  • 企業による基幹業務へのフォーカスを支援
    すべての業務基盤を短時間で Alibaba Cloud へ移管し、膨大なリソースとともに業務の生産性を最適化します。 Alibaba Cloud の成熟した企業向けスケーリングソリューションによって、シームレスにスケーリングすることや関連事項への集中対応は不要となります。
  • 投資費と運用保守費を削減
    オンプレミスのビッグデータ基盤に必要な物的リソース、労力、研究開発投資を大幅に削減できます。
  • セキュリティと安定性
    クラウドへの完全データ移行は、DataWorks の包括的なサービス機能と安定した安全なパフォーマンスによって保証されています。
推奨する組み合わせ

DataWorks + AnalyticDB + MaxCompute

シナリオ

気象データクエリと広告事業ログ分析

特徴
  • 作業効率を向上
    すべてのログデータは SQL 文で解析され、業務効率は 5 倍以上向上します。
  • ストレージ利用率を改善
    DataWorks によってすべてのストレージとコンピューティング費用は 70% 削減し、パフォーマンスと安定性も向上します。
  • ビッグデータ製品の使いやすさを向上
    MaxCompute は多様なオープンソースソフトウェアに対応するプラグインを提供しているため、クラウドへの容易なデータ移管が可能です。
推奨する組み合わせ

DataWorks + Data Integration + AnalyticDB + Quick BI + MaxCompute

気象データクエリと広告事業ログ分析

細かな管理操作

特徴
  • ビジネスインサイトの向上
    MaxCompute のコンピューティング機能により、数百万ものユーザーが細かな管理を行えるようになります。
  • データ駆動型ビジネス
    DataWorks は、強化されたデータ分析機能と効果的な監視機能を提供することによってビジネスを強化します。
  • 業務要求に対する迅速な対応
    DTplus エコシステムは新たな業務データの分析要求に迅速に対応します。
推奨する組み合わせ

DataWorks + Data integration + Quick BI + MaxCompute

細かな管理操作

データ開発プロセス

データ開発プロセスは、データ生成、データ収集と格納、データ分析と処理、データ抽出、データ表示と共有で構成されています。 プロセスについては、以下の図をご参照ください。

データ開発プロセス

注:上の図では、点線枠内のデータ開発処理が Alibaba Cloud Big Data Platform で完了しています。

データ開発処理は以下のとおりです。

  • データ生成
    業務システムは、毎日大量の構造化データを生成します。 データは、MySQL、Oracle、および RDS などの業務システムデータベースに格納されます。
  • データ収集と格納
    データ分析のために MaxCompute の大容量データストレージと処理機能を用いるには、異なる業務システムのデータを MaxCompute に同期させる必要があります。
    DataWorks は、事前定義されたスケジューリング期間に沿って、業務システムのさまざまなデータを MaxCompute に同期するデータ統合サービスを提供します。
  • データ分析と処理
    MaxCompute 上で処理 (MaxCompute_SQL やOPEN_MR) 、分析、マイニング (データ分析やデータマイニング) することで、有益な情報を見つけ出せます。
  • データ抽出
    分析と処理が完了したデータは、以後の使用のためにビジネスシステムと同期させる必要があります。
  • データ表示と共有 最終的に、ビッグデータの分析と処理の結果がレポートや地理情報システム、その他アクセス可能な形式で表示され、共有されます。

簡易モードと標準モード

新しいバージョンの DataWorks では、簡易モードと標準モードの両方が導入されています。本ページでは、簡易モードと標準モードの違いについて説明します。

簡易モード

簡易モードとは、MaxCompute プロジェクトに対応し、開発および本番環境を設定できない DataWorks プロジェクトのことです。データ開発プロセスとテーブル権限を厳格に制御しないと簡易データ開発しか実行できません。
簡易モードの利点は、繰り返しが速く、コードが公開されずに送信できることです。これは効果を発揮します。
簡易モードのリスクは、開発ロールの特権が高すぎてこのプロジェクト配下のテーブルを削除できないことです。テーブル権限のリスクがあります。

標準モード

標準モードとは、2 つの MaxCompute プロジェクトに対応する DataWorks プロジェクトのことで、デュアル環境の開発と本番、コード開発仕様の改善、およびテーブル権限の厳密な制御を行うために立ち上げられます。 本番環境でのテーブル操作は禁止されており、本番テーブルのデータセキュリティは保証されています。

  • すべてのタスク編集は開発環境でのみ実行でき、本番環境コードを直接変更することはできません。本番環境コードの安定性を確保するために、できる限り本番環境コードの変更エントリーを減らしてください。
  • 開発環境は、タスクスケジューリングをデフォルトではオンにしません。環境プロジェクトのサイクル運用と資源を占有するための環境プロジェクトの本番の開発を避けることで、本番環境タスクの運用安定性はより保証されます。
  • 本番環境はデフォルトの本番アカウントで実行されます。本番アカウントによって作成されたすべてのテーブルはメインアカウントに属します。開発プロセス中は本番テーブルを使用する必要があります。テーブルのすべては個別に適用される必要があり、テーブル権限の制御が向上します。

プロジェクトを作成するときは、標準モードとして [project mode] を選択し、プロジェクト名とプロジェクトの説明を入力します。残りの設定項目ではデフォルト値を選択します。

注:本番環境の MaxCompute アクセス ID を個人アカウントに変更することはできません。そうでなければ、本番環境のデータセキュリティは保証されません。

標準モード

FAQ

DataWorksのよくある質問

Q: API Gateway は有効にする必要がありますか。

A: API Gateway は API ホスティングサービスを提供しています。 自分の API を他のユーザーに公開する予定の場合は、まず、API Gatewayサービスを有効にする必要があります。

Q: データソースはどこで設定が行えますか。

A: データソースを作成するには、[DataWorks]、 [Data Integration]、[Data Sources] と、順にクリックします。 設定後、Data Service はデータソース情報を自動的に読み取ります。

Q: ウィザードで作成される API と、スクリプトで作成される API の違いは何ですか。

A: スクリプトモードは、より強力な機能を提供します。

Q: Data Service の API グループとはどういったものですか。API Gateway における API グループと同様ですか。

A: 特定のシナリオにおいて、ある API グループには複数の API が含まれています。 API グループ は最小単位です。 一言で言えば、2 つは同等です。 DataService から API Gateway に API グループを公開すると、ゲートウェイは自動的に同じ名前の API グループを作成します。

Q: API グループを適切に設定する方法を教えてください。

A: 通常、ある API グループには、同様の機能を提供する API や、特定の問題を解決する API が含まれています。 たとえば、都市名で天気を照会する APIと、緯度と経度で天気を照会する API は、APIグループ名を "weather query" とした APIグループに入れます。

Q: API グループは何個まで作成することができますか。

A: Alibaba Cloud のアカウントでは、最大 100 個の API グループを作成することができます。

Q: API の応答出力のページネーションは、どのような状況で有効にする必要があるのでしょうか。

A: 既定では、API は最大 500 レコードを出力します。 API の応答出力のページネーションを有効にすると、さらに多くのレコードを出力することができます。API のリクエストパラメーターが設定されていない場合、API は大量のレコードを出力することがあります。その場合、API の応答出力ページネーションは、自動的に有効になります。

Q: データソースで作成される API は、POST リクエストに対応していますか。

A: 現在、作成される API は GET リクエストにのみ、対応しています。

Q: Data Service は HTTP に対応していますか。

A: 現在、Data Service は HTTP に対応していません。 HTTP は以降のバージョンで、対応となる可能性があります。