(58)【調査した分野】(Int.Cl.,DB名)
アプリケーションサーバであって、プロセッサ上で動作可能なマルチタスクスケジューリングシステムが記憶されている記憶装置と、プロセッサと、を含み、前記マルチタスクスケジューリングシステムが前記プロセッサによって実行される時、
データプラットフォームと少なくとも1つのデータソースとの第1の接続を確立し、且つ前記データプラットフォームと前記アプリケーションサーバとの第2の接続を確立するステップと、
ユーザーの選択した同期する必要のあるソーステーブルとデータソースのタイプを受信し、予め解析して取得された各データソースのソーステーブル構造に基づき、各データソースの対応するテーブル作成タスクとデータ同期タスクを生成し、且つ前記生成された各データソースの対応するテーブル作成タスクとデータ同期タスクを予め設定されたワークフロースケジューリングエンジンに発行するステップと、
ユーザーの選択した同期開始時刻になると、前記予め設定されたワークフロースケジューリングエンジンによって特定のファイルシステムから予め設定されたタスクスケジューリングインタフェーステンプレートを呼び出し、且つ前記予め設定されたワークフロースケジューリングエンジンによって各データソースの対応するデータ同期タスクの同期パラメータを前記タスクスケジューリングインタフェーステンプレートに伝達するステップと、
各データソースの対応するデータ同期タスクの同期パラメータに基づき、前記タスクスケジューリングインタフェーステンプレートにおける対応するタスク実行スクリプトを呼び出し、各データソースの対応するテーブル作成タスクとデータ同期タスクを実行するステップと、を実現する
ことを特徴とするアプリケーションサーバ。
前記タスクスケジューリングインタフェーステンプレートは、前記ワークフロースケジューリングエンジンから伝達された同期パラメータを受信するためのパラメータ設定スクリプトと、各データソースの対応するデータ同期タスクの同期パラメータに基づき、各データソースの対応するテーブル作成タスクとデータ同期タスクを実行するためのタスク実行スクリプトと、各データソースの対応するデータ同期タスクの実行順序を管理するためのタスクスケジューリングスクリプトと、を含む
ことを特徴とする請求項1に記載のアプリケーションサーバ。
前記タスク実行スクリプトは、第1タイプのディメンションテーブルからデータを抽出するための第1実行スクリプトと、第2タイプのタスクテーブルからデータを抽出するための第2実行スクリプトと、第3タイプのフローテーブルからデータを抽出するための第3実行スクリプトと、を含む
ことを特徴とする請求項2に記載のアプリケーションサーバ。
前記タスクスケジューリングインタフェーステンプレートは、前記ワークフロースケジューリングエンジンから伝達された同期パラメータを受信するためのパラメータ設定スクリプトと、各データソースの対応するデータ同期タスクの同期パラメータに基づき、各データソースの対応するテーブル作成タスクとデータ同期タスクを実行するためのタスク実行スクリプトと、各データソースの対応するデータ同期タスクの実行順序を管理するためのタスクスケジューリングスクリプトと、を含む
ことを特徴とする請求項6に記載のマルチタスクスケジューリング方法。
前記タスク実行スクリプトは、第1タイプのディメンションテーブルからデータを抽出するための第1実行スクリプトと、第2タイプのタスクテーブルからデータを抽出するための第2実行スクリプトと、第3タイプのフローテーブルからデータを抽出するための第3実行スクリプトと、を含む
ことを特徴とする請求項7に記載のマルチタスクスケジューリング方法。
コンピュータの読み取り可能な記憶媒体であって、前記コンピュータの読み取り可能な記憶媒体にマルチタスクスケジューリングシステムが記憶されており、前記マルチタスクスケジューリングシステムが少なくとも1つのプロセッサによって実行されることにより、
データプラットフォームと少なくとも1つのデータソースとの第1の接続を確立し、且つ前記データプラットフォームとアプリケーションサーバとの第2の接続を確立するステップと、
ユーザーの選択した同期する必要のあるソーステーブルとデータソースのタイプを受信し、予め解析して取得された各データソースのソーステーブル構造に基づき、各データソースの対応するテーブル作成タスクとデータ同期タスクを生成し、且つ前記生成された各データソースの対応するテーブル作成タスクとデータ同期タスクを予め設定されたワークフロースケジューリングエンジンに発行するステップと、
ユーザーの選択した同期開始時刻になると、前記予め設定されたワークフロースケジューリングエンジンによって特定のファイルシステムから予め設定されたタスクスケジューリングインタフェーステンプレートを呼び出し、且つ前記予め設定されたワークフロースケジューリングエンジンによって各データソースの対応するデータ同期タスクの同期パラメータを前記タスクスケジューリングインタフェーステンプレートに伝達するステップと、
各データソースの対応するデータ同期タスクの同期パラメータに基づき、前記タスクスケジューリングインタフェーステンプレートにおける対応するタスク実行スクリプトを呼び出し、各データソースの対応するテーブル作成タスクとデータ同期タスクを実行するステップと、を実現する
ことを特徴とするコンピュータの読み取り可能な記憶媒体。
【発明の概要】
【発明が解決しようとする課題】
【0004】
これに鑑みて、本発明は、マルチタスクスケジューリング方法、システム、アプリケーションサーバ及びコンピュータの読み取り可能な記憶媒体を提供し、APIインタフェースの呼び出しをパラメータ化し、データ同期の時に同期パラメータを伝達するだけで同期タスクを完了することができ、配置プロセスが不要となる。
【課題を解決するための手段】
【0005】
まず、上記の目的を達成するために、本発明はアプリケーションサーバを提供し、前記アプリケーションサーバは、プロセッサ上で動作可能なマルチタスクスケジューリングシステムが記憶されている記憶装置と、プロセッサと、を含み、前記マルチタスクスケジューリングシステムが前記プロセッサによって実行される時、
データプラットフォームと少なくとも1つのデータソースとの第1の接続を確立し、且つ前記データプラットフォームと前記アプリケーションサーバとの第2の接続を確立するステップと、
ユーザーの選択した同期する必要のあるソーステーブルとデータソースのタイプを受信し、予め解析して取得された各データソースのソーステーブル構造に基づき、各データソースの対応するテーブル作成タスクとデータ同期タスクを生成し、且つ前記生成された各データソースの対応するテーブル作成タスクとデータ同期タスクを予め設定されたワークフロースケジューリングエンジンに発行するステップと、
ユーザーの選択した同期開始時刻になると、前記予め設定されたワークフロースケジューリングエンジンによって特定のファイルシステムから予め設定されたタスクスケジューリングインタフェーステンプレートを呼び出し、且つ前記予め設定されたワークフロースケジューリングエンジンによって各データソースの対応するデータ同期タスクの同期パラメータを前記タスクスケジューリングインタフェーステンプレートに伝達するステップと、
各データソースの対応するデータ同期タスクの同期パラメータに基づき、前記タスクスケジューリングインタフェーステンプレートにおける対応するタスク実行スクリプトを呼び出し、各データソースの対応するテーブル作成タスクとデータ同期タスクを実行するステップと、を実現する。
【0006】
また、上記の目的を達成するために、本発明は、アプリケーションサーバに適用されるマルチタスクスケジューリング方法を提供し、前記方法において、
データプラットフォームと少なくとも1つのデータソースとの第1の接続を確立し、且つ前記データプラットフォームと前記アプリケーションサーバとの第2の接続を確立し、
ユーザーの選択した同期する必要のあるソーステーブルとデータソースのタイプを受信し、予め解析して取得された各データソースのソーステーブル構造に基づき、各データソースの対応するテーブル作成タスクとデータ同期タスクを生成し、且つ前記生成された各データソースの対応するテーブル作成タスクとデータ同期タスクを予め設定されたワークフロースケジューリングエンジンに発行し、
ユーザーの選択した同期開始時刻になると、前記予め設定されたワークフロースケジューリングエンジンによって特定のファイルシステムから予め設定されたタスクスケジューリングインタフェーステンプレートを呼び出し、且つ前記予め設定されたワークフロースケジューリングエンジンによって各データソースの対応するデータ同期タスクの同期パラメータを前記タスクスケジューリングインタフェーステンプレートに伝達し、及び
各データソースの対応するデータ同期タスクの同期パラメータに基づき、前記タスクスケジューリングインタフェーステンプレートにおける対応するタスク実行スクリプトを呼び出し、各データソースの対応するテーブル作成タスクとデータ同期タスクを実行する。
【0007】
好ましくは、前記タスクスケジューリングインタフェーステンプレートは、前記ワークフロースケジューリングエンジンから伝達された同期パラメータを受信するためのパラメータ設定スクリプトと、各データソースの対応するデータ同期タスクの同期パラメータに基づき、各データソースの対応するテーブル作成タスクとデータ同期タスクを実行するためのタスク実行スクリプトと、各データソースの対応するデータ同期タスクの実行順序を管理するためのタスクスケジューリングスクリプトと、を含む。
【0008】
さらに、上記の目的を達成するために、本発明は、コンピュータの読み取り可能な記憶媒体を提供し、前記コンピュータの読み取り可能な記憶媒体にマルチタスクスケジューリングシステムが記憶されており、前記マルチタスクスケジューリングシステムが少なくとも1つのプロセッサによって実行されることにより、
データプラットフォームと少なくとも1つのデータソースとの第1の接続を確立し、且つ前記データプラットフォームと前記アプリケーションサーバとの第2の接続を確立するステップと、
ユーザーの選択した同期する必要のあるソーステーブルとデータソースのタイプを受信し、予め解析して取得された各データソースのソーステーブル構造に基づき、各データソースの対応するテーブル作成タスクとデータ同期タスクを生成し、且つ前記生成された各データソースの対応するテーブル作成タスクとデータ同期タスクを予め設定されたワークフロースケジューリングエンジンに発行するステップと、
ユーザーの選択した同期開始時刻になると、前記予め設定されたワークフロースケジューリングエンジンによって特定のファイルシステムから予め設定されたタスクスケジューリングインタフェーステンプレートを呼び出し、且つ前記予め設定されたワークフロースケジューリングエンジンによって各データソースの対応するデータ同期タスクの同期パラメータを前記タスクスケジューリングインタフェーステンプレートに伝達するステップと、
各データソースの対応するデータ同期タスクの同期パラメータに基づき、前記タスクスケジューリングインタフェーステンプレートにおける対応するタスク実行スクリプトを呼び出し、各データソースの対応するテーブル作成タスクとデータ同期タスクを実行するステップと、を実現する。
【0009】
さらに、上記の目的を達成するために、本発明は、マルチタスクスケジューリングシステムを提供し、前記マルチタスクスケジューリングシステムは、
データプラットフォームと少なくとも1つのデータソースとの第1の接続を確立し、且つ前記データプラットフォームと前記アプリケーションサーバとの第2の接続を確立するための接続モジュールと、
ユーザーの選択した同期する必要のあるソーステーブルとデータソースのタイプを受信し、予め解析して取得された各データソースのソーステーブル構造に基づき、各データソースの対応するテーブル作成タスクとデータ同期タスクを生成し、且つ前記生成された各データソースの対応するテーブル作成タスクとデータ同期タスクを予め設定されたワークフロースケジューリングエンジンに発行するためのタスク発行モジュールと、
ユーザーの選択した同期開始時刻になると、前記予め設定されたワークフロースケジューリングエンジンによって特定のファイルシステムから予め設定されたタスクスケジューリングインタフェーステンプレートを呼び出し、且つ前記予め設定されたワークフロースケジューリングエンジンによって各データソースの対応するデータ同期タスクの同期パラメータを前記タスクスケジューリングインタフェーステンプレートに伝達するためのスケジューリングモジュールと、
各データソースの対応するデータ同期タスクの同期パラメータに基づき、前記タスクスケジューリングインタフェーステンプレートにおける対応するタスク実行スクリプトを呼び出し、各データソースの対応するテーブル作成タスクとデータ同期タスクを実行するための実行モジュールと、を含む。
【発明の効果】
【0010】
従来技術と比べ、本発明の提供するアプリケーションサーバ、マルチタスクスケジューリング方法、システム及びコンピュータの読み取り可能な記憶媒体は、ユーザーの選択した同期する必要のあるソーステーブルとデータソースのタイプに基づき、各データソースの対応するテーブル作成タスクとデータ同期タスクを自動的に生成し、同時に、異なる特定のファイル(例えば、パラメータ設定スクリプト、タスク実行スクリプト及びタスクスケジューリングスクリプト)をタスクスケジューリングインタフェーステンプレートに一度に配置し、データ同期操作を行う場合、前記タスクスケジューリングインタフェーステンプレートを直接呼び出し、且つ各データソースの対応するデータ同期タスクの同期パラメータを前記タスクスケジューリングインタフェーステンプレートに伝達し、各データソースの対応するテーブル作成タスクとデータ同期タスクを自動的に実行することにより、マルチデータソースのデータ同期の完全自動化を実現し、配置プロセスが不要となり、APIインタフェースの呼び出しをパラメータ化し、データ同期の時に同期パラメータを伝達するだけで同期タスクを完了することができる。
【発明を実施するための形態】
【0012】
実施例と図面を組み合わせて本発明の目的の実現、機能的特徴及び利点についてさらに説明する。
【0013】
本発明の目的、技術的解決手段、及び利点をより明らかにするために、以下では、図面及び実施例を組み合わせて、本発明をさらに詳しく説明する。理解すべきものとして、本明細書に記載された具体的な実施例は、単に本発明を説明するためのものであり、本発明を限定するためのものではない。本発明の実施例に基づき、当業者が創造的な労力を要さずに、想到し得る他の実施例は、いずれも本発明の技術的範囲に属する。
【0014】
なお、本発明では、「第1」、「第2」などに関するものは、目的を説明するためのみであり、その相対的な重要性を指示、又は暗示し、又は指示された技術的特徴の数を暗黙的に指定するものとして解釈されるべきではない。従って、「第1」、「第2」に限定された特徴は、明示的又は暗黙的に少なくとも1つの前記特徴を含むことができる。また、各実施例間の技術的解決手段は、互いに組み合わせることができるが、当業者が実現できることを基礎としなければならず、技術的解決手段の組み合わせは互いに矛盾し、又は実現できない場合、このような技術的解決手段の組み合わせは存在せず、本発明の特許請求の保護範囲に属しないと認めるべきである。
【0015】
さらに、説明すべきものとして、本明細書において、用語「含む」、「備える」又はその他の任意の変形は、非排他的な包含をカバーすることを意図し、それにより一連の要素を含む他のプロセス、方法、物品又は装置は、これらの要素を含むだけでなく、明確に挙げられないその他の要素をも含み、又はこのようなプロセス、方法、物品又は装置の固有の要素をも含む。それ以上の制限がない場合、センテンス「1つの...を含む」によって限定された要素は、前記要素を含むプロセス、方法、物品又は装置において、また別の同じ要素が存在することを排除しない。
【0016】
図1は、本発明に係る各実施例の選択可能な適用環境の概略図を示す。
【0017】
本実施例において、本発明は、アプリケーションサーバ2、ネットワーク3、データプラットフォーム4、及びデータソース5を含むがそれらに限定されない適用環境に適用することができる。ただし、アプリケーションサーバ2は、ラックマウント型のサーバ、ブレードサーバ、タワーサーバ又はキャビネットサーバなどの演算装置であってもよく、アプリケーションサーバ2は、独立したサーバであってもよく、また複数のサーバからなるサーバクラスタであってもよい。ネットワーク3は、イントラネット(Intranet)、インターネット(Internet)、グローバル移動通信システム(Global System of Mobile communication、GSM(登録商標))、広帯域符号分割多元接続(Wideband Code Division Multiple Access、WCDMA(登録商標))、4Gネットワーク、5Gネットワーク、ブルートゥース(登録商標)(Bluetooth(登録商標))、Wi−Fiなどの無線又は有線ネットワークであってもよい。
【0018】
ただし、アプリケーションサーバ2は、ネットワーク3によってデータプラットフォーム4に通信可能に接続され、データプラットフォーム4は、ネットワーク3によって各データソース5にそれぞれ通信可能に接続される。データプラットフォーム4と各データソース5との間に、第1の接続(又はそれを第1タイプの接続と称する)が確立されることにより、データプラットフォーム4が前記第1の接続によって各データソース5とデータ伝送及び交換を行うことができるようになる。データプラットフォーム4とアプリケーションサーバ2との間に、第2の接続(又はそれを第2タイプの接続と称する)が確立されることにより、データプラットフォーム4が前記第2の接続によってアプリケーションサーバ2とデータ伝送及び交換を行うことができるようになる。
【0019】
図2は、
図1におけるアプリケーションサーバの選択可能なハードウェアアーキテクチャの概略図を示す。本実施例において、アプリケーションサーバ2は、システムバスを介して互いに通信可能に接続された記憶装置21、プロセッサ22、ネットワークインタフェース23を含むが、それらに限定されない。なお、
図2は構成要素21−23を有するアプリケーションサーバ2のみを示すが、理解すべきものとして、示した全ての構成要素を実施することを要求せず、代替可能な、より多く又はより少ない構成要素を実施することができる。
【0020】
ただし、記憶装置21は、少なくとも1種の読み取り可能な記憶媒体を含み、前記読み取り可能な記憶媒体は、フラッシュメモリ、ハードディスク、マルチメディアカード、カード型記憶装置(例えば、SD又はDX記憶装置など)、ランダムアクセスメモリ(RAM)、スタティックランダムアクセスメモリ(SRAM)、読み出し専用メモリ(ROM)、電気的消去可能なプログラマブル読み出し専用メモリ(EEPROM)、プログラマブル読み取り専用メモリ(PROM)、磁気メモリ、磁気ディスク、光ディスクなどを含む。いくつかの実施例において、記憶装置21は、アプリケーションサーバ2の内部記憶ユニットであってもよく、例えば、アプリケーションサーバ2のハードディスク又はメモリである。別の実施例において、記憶装置21は、例えば、アプリケーションサーバ2に配置されたプラグインハードディスク、スマートメディアカード(Smart Media(登録商標) Card、SMC)、セキュアデジタル(Secure Digital、SD)カード、フラッシュカード(Flash Card)などのアプリケーションサーバ2の外部記憶機器であってもよい。当然のことながら、記憶装置21は、さらにアプリケーションサーバ2の内部記憶ユニットと、その外部記憶機器の両者とも、含むことができる。本実施例において、記憶装置21は、通常、例えばマルチタスクスケジューリングシステム20のプログラムコードなどのアプリケーションサーバ2にインストールされているオペレーティングシステムや種々のアプリケーションソフトウェアを記憶するために用いられる。また、記憶装置21は、既に出力されたか又は出力される各種データを一時的に記憶するために用いられる。
【0021】
いくつかの実施例において、プロセッサ22は、中央処理装置(Central Processing Unit、CPU)、コントローラ、マイクロコントローラ、マイクロプロセッサ、又は他のデータ処理チップであってもよい。プロセッサ22は、通常、アプリケーションサーバ2の全体動作を制御するために用いられ、例えば、アプリケーションサーバ2とのデータ交換又は通信に関わる制御及び処理などを実行する。本実施例において、プロセッサ22は、記憶装置21に記憶されたプログラムコードの実行やデータ処理に用いられ、例えば、マルチタスクスケジューリングシステム20の実行などである。
【0022】
ネットワークインタフェース23は、無線ネットワークインタフェース又は有線ネットワークインタフェースを含むことができ、ネットワークインタフェース23は、通常、アプリケーションサーバ2と他の電子機器との間に通信接続を確立するために用いられる。本実施例において、ネットワークインタフェース23は、主に、ネットワーク3を介してアプリケーションサーバ2とデータプラットフォーム4を接続し、アプリケーションサーバ2とデータプラットフォーム4との間に、データ伝送チャネルと通信接続を確立するために用いられる。
【0023】
以上、本発明の各実施例の適用環境及び関連機器のハードウェア構造及び機能について詳細に説明した。以下では、上記の適用環境及び関連機器に基づき、本発明の各実施例を提供する。
【0024】
まず、本発明は、マルチタスクスケジューリングシステム20を提供する。
【0025】
図3は、アプリケーションサーバ2におけるマルチタスクスケジューリングシステム20の一実施例の機能モジュールの概略図を示す。本実施例において、マルチタスクスケジューリングシステム20は、1つ又は複数のモジュールに分割することができ、前記1つ又は複数のモジュールは、記憶装置21に記憶されており、且つ1つ又は複数のプロセッサ(本実施例において、プロセッサ22)によって実行されることにより、本発明を完了させる。例えば、
図3において、マルチタスクスケジューリングシステム20は、接続モジュール201、タスク発行モジュール202、スケジューリングモジュール203、及び実行モジュール204に分割することができる。本発明で言う機能モジュールとは、特定の機能を完了できる一連のコンピュータプログラム命令セグメントであり、プログラムよりもマルチタスクスケジューリングシステム20のアプリケーションサーバ2における実行プロセスを説明することに適する。以下では、各機能モジュール201−204の機能について、詳細に説明する。
【0026】
接続モジュール201は、データプラットフォーム4と少なくとも1つのデータソース5との第1の接続(又はそれを第1タイプの接続と称する)を確立し、且つデータプラットフォーム4とアプリケーションサーバ2(例えば、解析サーバ)との第2の接続(又はそれを第2タイプの接続と称する)を確立するために用いられる。
【0027】
好ましくは、本実施例において、データプラットフォーム4はHadoopデータプラットフォームを採用し、且つデータプラットフォーム4におけるデータ伝送ツールによって、データプラットフォーム4と各データソース5との第1の接続を確立する。例えば、前記データ伝送ツールはHadoop内に設けられたSqoopツールである。当業者であれば、その他の実施例において、前記データプラットフォームとデータ伝送ツールは他のタイプを用いることもできる。
【0028】
タスク発行モジュール202は、ユーザーの選択した同期する必要のあるソーステーブル(一部又は全部)とデータソースのタイプを受信し、予め解析して取得された各データソースのソーステーブル構造に基づき、各データソースの対応するテーブル作成タスクとデータ同期タスク(又は、それをデータ抽出タスクと称する)を生成し、且つ前記生成された各データソースの対応するテーブル作成タスクとデータ同期タスクを予め設定されたワークフロースケジューリングエンジン(例えば、oozieスケジューリングエンジン)に発行するために用いられる。
【0029】
好ましくは、本実施例において、前記データソースのタイプは、第1タイプのデータソース(例えば、MS SQL Serverデータソース)、第2タイプのデータソース(例えば、Oracleデータソース)、第3タイプのデータソース(例えば、MySQLデータソース)などを含むが、それらに限定されない。当業者であれば、他の実施例において、前記データソースのタイプの数が、異なるデータプラットフォームの要件に従って増加又は減少することができることが理解される。例えば、ユーザーは、第1タイプのデータソースにおける一部のソーステーブルを同期させることを選択することができる。
【0030】
好ましくは、本実施例において、前記データソースのソーステーブル構造は、各データソースのデータタイプと含まれたフィールド情報などを含むが、それらに限定されない。
【0031】
好ましくは、本実施例において、アプリケーションサーバ2内に、各データソース5の対応する解析スクリプトファイルが設けられており、並列スケジューリングメカニズムによって、データプラットフォーム4におけるデータ伝送ツールが各解析スクリプトファイルにおけるソーステーブル構造の解析タスクを並列実行するように制御し、解析によって、各データソースのソーステーブル構造を取得し、且つ前記第2の接続によって、解析して取得された各データソースのソーステーブル構造をアプリケーションサーバ2に返させる。
【0032】
好ましくは、本実施例において、前記生成された各データソースの対応するテーブル作成タスクは、ユーザーの選択した同期する必要のあるソーステーブル(一部又は全部)と各ソーステーブルのタイプに基づき、前記選択されたソーステーブルのタイプに対応する目標テーブルを生成することを含む。好ましくは、本実施例において、前記ソーステーブルのタイプは、第1タイプのディメンションテーブル(即ち、データ量が少なく、設定に使用されたソーステーブルに関連する)、第2タイプのタスクテーブル(即ち、テーブル内のデータは絶えず更新及び追加され、且つ当日に当日以外の履歴データを更新する)、第3タイプのフローテーブル(即ち、テーブル内のデータは絶えず追加され、且つ当日に当日以外の履歴データを更新しない)を含むが、それらに限定されない。
【0033】
具体的には、ユーザーの選択した同期する必要のあるソーステーブルのタイプが第1タイプのディメンションテーブル(即ち、データ量が少なく、設定に使用されたソーステーブルに関連する)である場合、前記第1タイプのディメンションテーブルのソーステーブル構造に対応する第1タイプの目標テーブルを生成し、ただし、前記第1タイプの目標テーブルの数は前記ユーザーの選択した同期する必要のある第1タイプのソーステーブル数によって確定される。
【0034】
ユーザーの選択した同期する必要のあるソーステーブルのタイプが第2タイプのタスクテーブル(即ち、テーブル内のデータは絶えず更新及び追加され、且つ当日に当日以外の履歴データを更新する)である場合、前記第2タイプのタスクテーブルのソーステーブル構造に対応する第2タイプの目標テーブルを生成し、ただし、前記第2タイプの目標テーブルの数は前記ユーザーの選択した同期する必要のある第2タイプのソーステーブル数によって確定される。
【0035】
ユーザーの選択した同期する必要のあるソーステーブルのタイプが第3タイプのフローテーブル(即ち、テーブル内のデータは絶えず追加され、且つ当日に当日以外の履歴データを更新しない)である場合、前記第3タイプのフローテーブルのソーステーブル構造に対応する第3タイプの目標テーブルを生成し、ただし、前記第3タイプの目標テーブルの数は前記ユーザーの選択した同期する必要のある第3タイプのソーステーブル数によって確定される。
【0036】
好ましくは、本実施例において、前記生成された各データソースの対応するデータ同期タスクは、
ユーザーの選択した同期する必要のある開始時刻と終了時刻に基づき、各ソーステーブルからのデータ抽出の開始時刻とデータ抽出の終了時刻を確定し、
ユーザーの選択した同期する必要のあるソーステーブル数及び同期する目標側のユーザーに基づき、データ同期の各タスクに必要なリソース配置(例えば、CPU、メモリ及び磁気ディスクなど)とリソース管理ノードを確定し、ただし、前記リソース配置はリストの方式によって実現することができ、前記リソース管理ノードはHadoopリソース表現モデルとリソース割当モデルによって実現することができ、
前記同期する必要のあるソーステーブルの該当するフィールドと前記生成された各目標テーブルの該当するフィールドとの対応関係を確立し、且つソーステーブルと目標テーブルの該当するフィールドの対応関係に基づき、各ソーステーブルの対応するデータ抽出タスクを生成することを含む。
【0037】
具体的には、ユーザーの選択した同期する必要のあるソーステーブルのタイプが第1タイプのディメンションテーブルである場合、前記同期する必要のある第1タイプのディメンションテーブルの該当するフィールドと前記生成された各第1タイプの目標テーブルの該当するフィールドとの対応関係を確立し、且つ第1タイプのディメンションテーブルと第1タイプの目標テーブルの該当するフィールドとの対応関係に基づき、各第1タイプのディメンションテーブルの対応するデータ抽出タスクを生成する。
【0038】
ユーザーの選択した同期する必要のあるソーステーブルのタイプが第2タイプのタスクテーブルである場合、前記同期する必要のある第2タイプのタスクテーブルの該当するフィールドと前記生成された各第2タイプの目標テーブルの該当するフィールドとの対応関係を確立し、且つ第2タイプのタスクテーブルと第2タイプの目標テーブルの該当するフィールドとの対応関係に基づき、各第2タイプのタスクテーブルの対応するデータ抽出タスクを生成する。
【0039】
ユーザーの選択した同期する必要のあるソーステーブルのタイプが第3タイプのフローテーブルである場合、前記同期する必要のある第3タイプのフローテーブルの該当するフィールドと前記生成された各第3タイプの目標テーブルの該当するフィールドとの対応関係を確立し、且つ第3タイプのフローテーブルと第3タイプの目標テーブルの該当するフィールドとの対応関係に基づき、各第3タイプのフローテーブルの対応するデータ抽出タスクを生成する。
【0040】
スケジューリングモジュール203は、ユーザーの選択した同期開始時刻になると、前記予め設定されたワークフロースケジューリングエンジンによって特定のファイルシステムから予め設定されたタスクスケジューリングインタフェーステンプレートを呼び出し、且つ前記予め設定されたワークフロースケジューリングエンジンによって各データソースの対応するデータ同期タスクの同期パラメータを前記タスクスケジューリングインタフェーステンプレートに伝達するために用いられる。本実施形態では、前記特定のファイルシステムは分散ファイルシステム、例えば、Hadoop分散ファイルシステム(Hadoop Distributed File System、HDFS)であり、前記タスクスケジューリングインタフェーステンプレートはoozie web service API(Application Programming Interface、アプリケーションプログラミングインタフェース)テンプレートである。ただし、前記タスクスケジューリングインタフェーステンプレートは前記特定のファイルシステムに予め配置される。
【0041】
好ましくは、本実施例において、前記同期パラメータは、各タスクに必要なリソース配置ノードとリソース管理ノード、データ同期の開始時刻と終了時刻、前記同期パラメータを選択するユーザー名などの情報を含むが、それらに限定されない。
【0042】
好ましくは、本実施例において、前記タスクスケジューリングインタフェーステンプレートは、パラメータ設定スクリプト、タスク実行スクリプト及びタスクスケジューリングスクリプトを含むが、それらに限定されない。ただし、前記パラメータ設定スクリプトはshellスクリプトであり、前記ワークフロースケジューリングエンジンから伝達された同期パラメータを受信するために用いられる。前記タスク実行スクリプトは、XML(Extensible Markup Language、拡張可能なマークアップ言語)スクリプトであり、各データソースの対応するデータ同期タスクの同期パラメータに基づき、各データソースの対応するテーブル作成タスクとデータ同期タスクを実行するために用いられる。前記タスクスケジューリングスクリプトはXMLスクリプトであり、各データソースの対応するデータ同期タスクの実行順序を管理するために用いられる。
【0043】
好ましくは、本実施例において、前記タスク実行スクリプトは、第1タイプのディメンションテーブルからデータを抽出するための第1実行スクリプト、第2タイプのタスクテーブルからデータを抽出するための第2実行スクリプト、第3タイプのフローテーブルからデータを抽出するための第3実行スクリプトを含むが、それらに限定されない。
【0044】
実行モジュール204は、各データソースの対応するデータ同期タスクの同期パラメータに基づき、前記タスクスケジューリングインタフェーステンプレートにおける対応するタスク実行スクリプトを呼び出し、各データソースの対応するテーブル作成タスクとデータ同期タスクを実行するために用いられる。
【0045】
好ましくは、本実施例において、前記データ同期タスクの実行は、
前記タスクスケジューリングインタフェーステンプレートにおける各データソースの対応するタスク実行スクリプトを呼び出し、データ同期の各タスクに必要なリソース配置を取得し、各ソーステーブルから該当するフィールドに対応するデータ(メタデータ情報)をそれぞれ抽出し、且つ抽出されたデータを各目標テーブルの該当するフィールドにそれぞれ記憶することを含む。
【0046】
具体的には、ユーザーの選択した同期する必要のあるソーステーブルのタイプが第1タイプのディメンションテーブルである場合、前記タスクスケジューリングインタフェーステンプレートにおける第1実行スクリプトを呼び出し、各第1タイプのディメンションテーブルから該当するフィールドに対応する第1データをそれぞれ抽出し、且つ抽出された第1データを各第1タイプの目標テーブルの該当するフィールドにそれぞれ記憶する。
【0047】
ユーザーの選択した同期する必要のあるソーステーブルのタイプが第2タイプのタスクテーブルである場合、前記タスクスケジューリングインタフェーステンプレートにおける第2実行スクリプトを呼び出し、各第2タイプのタスクテーブルから該当するフィールドに対応する第2データをそれぞれ抽出し、且つ抽出された第2データを各第2タイプの目標テーブルの該当するフィールドにそれぞれ記憶する。
【0048】
ユーザーの選択した同期する必要のあるソーステーブルのタイプが第3タイプのフローテーブルである場合、前記タスクスケジューリングインタフェーステンプレートにおける第3実行スクリプトを呼び出し、各第3タイプのフローテーブルから該当するフィールドに対応する第3データをそれぞれ抽出し、且つ抽出された第3データを各第3タイプの目標テーブルの該当するフィールドにそれぞれ記憶する。
【0049】
好ましくは、他の実施例において、マルチタスクスケジューリングシステム20がプロセッサ22によって実行される時、さらに、
並列スケジューリングメカニズムによって、前記タスクスケジューリングインタフェーステンプレートにおける対応するタスク実行スクリプトを呼び出し、各データソースの対応するテーブル作成タスクとデータ同期タスクを並列実行し、各ソーステーブルから該当するフィールドに対応するデータをそれぞれ抽出し、且つ抽出されたデータを各目標テーブルの該当するフィールドにそれぞれ記憶するステップを実現する。
【0050】
機能モジュール201−204によって、本発明の提供するマルチタスクスケジューリングシステム20は、ユーザーの選択した同期する必要のあるソーステーブルとデータソースのタイプに基づき、各データソースの対応するテーブル作成タスクとデータ同期タスクを自動的に生成し、同時に、異なる特定のファイル(例えば、パラメータ設定スクリプト、タスク実行スクリプト及びタスクスケジューリングスクリプト)をタスクスケジューリングインタフェーステンプレートに一度に配置し、データ同期操作を行う場合、前記タスクスケジューリングインタフェーステンプレートを直接呼び出し、且つ各データソースの対応するデータ同期タスクの同期パラメータを前記タスクスケジューリングインタフェーステンプレートに伝達し、各データソースの対応するテーブル作成タスクとデータ同期タスクを自動的に実行することにより、マルチデータソースのデータ同期の完全自動化を実現し、配置プロセスが不要となり、APIインタフェースの呼び出しをパラメータ化し、データ同期の時に同期パラメータを伝達するだけで同期タスクを完了することができる。
【0051】
また、本発明は、さらにマルチタスクスケジューリング方法を提供する。
【0052】
図4は本発明のマルチタスクスケジューリング方法の一実施例の実施フローチャートを示す。本実施例において、必要に応じて、
図4に示したフローチャートにおけるステップの実行順序は変更されてもよく、一部のステップは省略されてもよい。
【0053】
ステップS41、データプラットフォーム4と少なくとも1つのデータソース5との第1の接続(又はそれを第1タイプの接続と称する)を確立し、且つデータプラットフォーム4とアプリケーションサーバ2(例えば、解析サーバ)との第2の接続(又はそれを第2タイプの接続と称する)を確立する。
【0054】
好ましくは、本実施例において、データプラットフォーム4はHadoopデータプラットフォームを採用し、且つデータプラットフォーム4におけるデータ伝送ツールによって、データプラットフォーム4と各データソース5との第1の接続を確立する。例えば、前記データ伝送ツールはHadoop内に設けられたSqoopツールである。当業者であれば、その他の実施例において、前記データプラットフォームとデータ伝送ツールは他のタイプを用いることもできる。
【0055】
ステップS42、ユーザーの選択した同期する必要のあるソーステーブル(一部又は全部)とデータソースのタイプを受信し、予め解析して取得された各データソースのソーステーブル構造に基づき、各データソースの対応するテーブル作成タスクとデータ同期タスク(又は、それをデータ抽出タスクと称する)を生成し、且つ前記生成された各データソースの対応するテーブル作成タスクとデータ同期タスクを予め設定されたワークフロースケジューリングエンジン(例えば、oozieスケジューリングエンジン)に発行する。
【0056】
好ましくは、本実施例において、前記データソースのタイプは、第1タイプのデータソース(例えば、MS SQL Serverデータソース)、第2タイプのデータソース(例えば、Oracleデータソース)、第3タイプのデータソース(例えば、MySQLデータソース)などを含むが、それらに限定されない。当業者であれば、他の実施例において、前記データソースのタイプの数が、異なるデータプラットフォームの要件に従って増加又は減少することができることが理解される。例えば、ユーザーは、第1タイプのデータソースにおける一部のソーステーブルを同期させることを選択することができる。
【0057】
好ましくは、本実施例において、前記データソースのソーステーブル構造は、各データソースのデータタイプと含まれたフィールド情報などを含むが、それらに限定されない。
【0058】
好ましくは、本実施例において、アプリケーションサーバ2内に、各データソース5の対応する解析スクリプトファイルが設けられており、並列スケジューリングメカニズムによって、データプラットフォーム4におけるデータ伝送ツールが各解析スクリプトファイルにおけるソーステーブル構造の解析タスクを並列実行するように制御し、解析によって、各データソースのソーステーブル構造を取得し、且つ前記第2の接続によって、解析して取得された各データソースのソーステーブル構造をアプリケーションサーバ2に返させる。
【0059】
好ましくは、本実施例において、前記生成された各データソースの対応するテーブル作成タスクは、ユーザーの選択した同期する必要のあるソーステーブル(一部又は全部)と各ソーステーブルのタイプに基づき、前記選択されたソーステーブルのタイプに対応する目標テーブルを生成することを含む。好ましくは、本実施例において、前記ソーステーブルのタイプは、第1タイプのディメンションテーブル(即ち、データ量が少なく、設定に使用されたソーステーブルに関連する)、第2タイプのタスクテーブル(即ち、テーブル内のデータは絶えず更新及び追加され、且つ当日に当日以外の履歴データを更新する)、第3タイプのフローテーブル(即ち、テーブル内のデータは絶えず追加され、且つ当日に当日以外の履歴データを更新しない)を含むが、それらに限定されない。
【0060】
具体的には、ユーザーの選択した同期する必要のあるソーステーブルのタイプが第1タイプのディメンションテーブル(即ち、データ量が少なく、設定に使用されたソーステーブルに関連する)である場合、前記第1タイプのディメンションテーブルのソーステーブル構造に対応する第1タイプの目標テーブルを生成し、ただし、前記第1タイプの目標テーブルの数は前記ユーザーの選択した同期する必要のある第1タイプのソーステーブル数によって確定される。
【0061】
ユーザーの選択した同期する必要のあるソーステーブルのタイプが第2タイプのタスクテーブル(即ち、テーブル内のデータは絶えず更新及び追加され、且つ当日に当日以外の履歴データを更新する)である場合、前記第2タイプのタスクテーブルのソーステーブル構造に対応する第2タイプの目標テーブルを生成し、ただし、前記第2タイプの目標テーブルの数は前記ユーザーの選択した同期する必要のある第2タイプのソーステーブル数によって確定される。
【0062】
ユーザーの選択した同期する必要のあるソーステーブルのタイプが第3タイプのフローテーブル(即ち、テーブル内のデータは絶えず追加され、且つ当日に当日以外の履歴データを更新しない)である場合、前記第3タイプのフローテーブルのソーステーブル構造に対応する第3タイプの目標テーブルを生成し、ただし、前記第3タイプの目標テーブルの数は前記ユーザーの選択した同期する必要のある第3タイプのソーステーブル数によって確定される。
【0063】
好ましくは、本実施例において、前記生成された各データソースの対応するデータ同期タスクは、
ユーザーの選択した同期する必要のある開始時刻と終了時刻に基づき、各ソーステーブルからのデータ抽出の開始時刻とデータ抽出の終了時刻を確定し、
ユーザーの選択した同期する必要のあるソーステーブル数及び同期する目標側のユーザーに基づき、データ同期の各タスクに必要なリソース配置(例えば、CPU、メモリ及び磁気ディスクなど)とリソース管理ノードを確定し、ただし、前記リソース配置はリストの方式によって実現することができ、前記リソース管理ノードはHadoopリソース表現モデルとリソース割当モデルによって実現することができ、
前記同期する必要のあるソーステーブルの該当するフィールドと前記生成された各目標テーブルの該当するフィールドとの対応関係を確立し、且つソーステーブルと目標テーブルの該当するフィールドの対応関係に基づき、各ソーステーブルの対応するデータ抽出タスクを生成することを含む。
【0064】
具体的には、ユーザーの選択した同期する必要のあるソーステーブルのタイプが第1タイプのディメンションテーブルである場合、前記同期する必要のある第1タイプのディメンションテーブルの該当するフィールドと前記生成された各第1タイプの目標テーブルの該当するフィールドとの対応関係を確立し、且つ第1タイプのディメンションテーブルと第1タイプの目標テーブルの該当するフィールドとの対応関係に基づき、各第1タイプのディメンションテーブルの対応するデータ抽出タスクを生成する。
【0065】
ユーザーの選択した同期する必要のあるソーステーブルのタイプが第2タイプのタスクテーブルである場合、前記同期する必要のある第2タイプのタスクテーブルの該当するフィールドと前記生成された各第2タイプの目標テーブルの該当するフィールドとの対応関係を確立し、且つ第2タイプのタスクテーブルと第2タイプの目標テーブルの該当するフィールドとの対応関係に基づき、各第2タイプのタスクテーブルの対応するデータ抽出タスクを生成する。
【0066】
ユーザーの選択した同期する必要のあるソーステーブルのタイプが第3タイプのフローテーブルである場合、前記同期する必要のある第3タイプのフローテーブルの該当するフィールドと前記生成された各第3タイプの目標テーブルの該当するフィールドとの対応関係を確立し、且つ第3タイプのフローテーブルと第3タイプの目標テーブルの該当するフィールドとの対応関係に基づき、各第3タイプのフローテーブルの対応するデータ抽出タスクを生成する。
【0067】
ステップS43、ユーザーの選択した同期開始時刻になると、前記予め設定されたワークフロースケジューリングエンジンによって特定のファイルシステムから予め設定されたタスクスケジューリングインタフェーステンプレートを呼び出し、且つ前記予め設定されたワークフロースケジューリングエンジンによって各データソースの対応するデータ同期タスクの同期パラメータを前記タスクスケジューリングインタフェーステンプレートに伝達する。本実施形態では、前記特定のファイルシステムは分散ファイルシステム、例えば、Hadoop分散ファイルシステム(Hadoop Distributed File System、HDFS)であり、前記タスクスケジューリングインタフェーステンプレートはoozie web service API(Application Programming Interface、アプリケーションプログラミングインタフェース)テンプレートである。ただし、前記タスクスケジューリングインタフェーステンプレートは前記特定のファイルシステムに予め配置される。
【0068】
好ましくは、本実施例において、前記同期パラメータは、各タスクに必要なリソース配置ノードとリソース管理ノード、データ同期の開始時刻と終了時刻、前記同期パラメータを選択するユーザー名などの情報を含むが、それらに限定されない。
【0069】
好ましくは、本実施例において、前記タスクスケジューリングインタフェーステンプレートは、パラメータ設定スクリプト、タスク実行スクリプト及びタスクスケジューリングスクリプトを含むが、それらに限定されない。ただし、前記パラメータ設定スクリプトはshellスクリプトであり、前記ワークフロースケジューリングエンジンから伝達された同期パラメータを受信するために用いられる。前記タスク実行スクリプトは、XML(Extensible Markup Language、拡張可能なマークアップ言語)スクリプトであり、各データソースの対応するデータ同期タスクの同期パラメータに基づき、各データソースの対応するテーブル作成タスクとデータ同期タスクを実行するために用いられる。前記タスクスケジューリングスクリプトはXMLスクリプトであり、各データソースの対応するデータ同期タスクの実行順序を管理するために用いられる。
【0070】
好ましくは、本実施例において、前記タスク実行スクリプトは、第1タイプのディメンションテーブルからデータを抽出するための第1実行スクリプト、第2タイプのタスクテーブルからデータを抽出するための第2実行スクリプト、第3タイプのフローテーブルからデータを抽出するための第3実行スクリプトを含むが、それらに限定されない。
【0071】
ステップS44、各データソースの対応するデータ同期タスクの同期パラメータに基づき、前記タスクスケジューリングインタフェーステンプレートにおける対応するタスク実行スクリプトを呼び出し、各データソースの対応するテーブル作成タスクとデータ同期タスクを実行する。
【0072】
好ましくは、本実施例において、前記データ同期タスクの実行は、
前記タスクスケジューリングインタフェーステンプレートにおける各データソースの対応するタスク実行スクリプトを呼び出し、データ同期の各タスクに必要なリソース配置を取得し、各ソーステーブルから該当するフィールドに対応するデータ(メタデータ情報)をそれぞれ抽出し、且つ抽出されたデータを各目標テーブルの該当するフィールドにそれぞれ記憶することを含む。
【0073】
具体的には、ユーザーの選択した同期する必要のあるソーステーブルのタイプが第1タイプのディメンションテーブルである場合、前記タスクスケジューリングインタフェーステンプレートにおける第1実行スクリプトを呼び出し、各第1タイプのディメンションテーブルから該当するフィールドに対応する第1データをそれぞれ抽出し、且つ抽出された第1データを各第1タイプの目標テーブルの該当するフィールドにそれぞれ記憶する。
【0074】
ユーザーの選択した同期する必要のあるソーステーブルのタイプが第2タイプのタスクテーブルである場合、前記タスクスケジューリングインタフェーステンプレートにおける第2実行スクリプトを呼び出し、各第2タイプのタスクテーブルから該当するフィールドに対応する第2データをそれぞれ抽出し、且つ抽出された第2データを各第2タイプの目標テーブルの該当するフィールドにそれぞれ記憶する。
【0075】
ユーザーの選択した同期する必要のあるソーステーブルのタイプが第3タイプのフローテーブルである場合、前記タスクスケジューリングインタフェーステンプレートにおける第3実行スクリプトを呼び出し、各第3タイプのフローテーブルから該当するフィールドに対応する第3データをそれぞれ抽出し、且つ抽出された第3データを各第3タイプの目標テーブルの該当するフィールドにそれぞれ記憶する。
【0076】
好ましくは、他の実施例において、該方法は、さらに、
並列スケジューリングメカニズムによって、前記タスクスケジューリングインタフェーステンプレートにおける対応するタスク実行スクリプトを呼び出し、各データソースの対応するテーブル作成タスクとデータ同期タスクを並列実行し、各ソーステーブルから該当するフィールドに対応するデータをそれぞれ抽出し、且つ抽出されたデータを各目標テーブルの該当するフィールドにそれぞれ記憶するステップを含む。
【0077】
ステップS41−S44によって、本発明の提供するマルチタスクスケジューリング方法は、ユーザーの選択した同期する必要のあるソーステーブルとデータソースのタイプに基づき、各データソースの対応するテーブル作成タスクとデータ同期タスクを自動的に生成し、同時に、異なる特定のファイル(例えば、パラメータ設定スクリプト、タスク実行スクリプト及びタスクスケジューリングスクリプト)をタスクスケジューリングインタフェーステンプレートに一度に配置し、データ同期操作を行う場合、前記タスクスケジューリングインタフェーステンプレートを直接呼び出し、且つ各データソースの対応するデータ同期タスクの同期パラメータを前記タスクスケジューリングインタフェーステンプレートに伝達し、各データソースの対応するテーブル作成タスクとデータ同期タスクを自動的に実行することにより、マルチデータソースのデータ同期の完全自動化を実現し、配置プロセスが不要となり、APIインタフェースの呼び出しをパラメータ化し、データ同期の時に同期パラメータを伝達するだけで同期タスクを完了することができる。
【0078】
さらに、上記の目的を達成するために、本発明は、コンピュータの読み取り可能な記憶媒体(例えば、ROM/RAM、磁気ディスク、光ディスク)を提供し、前記コンピュータの読み取り可能な記憶媒体にマルチタスクスケジューリングシステム20が記憶されており、マルチタスクスケジューリングシステム20が少なくとも1つのプロセッサ22によって実行されることにより、少なくとも1つのプロセッサ22が上述したマルチタスクスケジューリング方法のステップを実行する。
【0079】
上記実施形態の説明によって、当業者であれば、上記実施例の方法がソフトウェアと必要な汎用ハードウェアプラットフォームの方式によって実現することができ、当然のことながら、ハードウェアによって実現することもできるが、多くの場合では、前者がより好ましい実施形態であることは、明らかに理解されるものである。このような理解に基づき、本発明の技術的解決手段は、本質的に又は、従来技術に寄与する部分がソフトウェア製品の形で具体化することができ、前記コンピュータソフトウェア製品は、記憶媒体(例えば、ROM/RAM、磁気ディスク、光ディスク)に記憶され、複数の命令を含み、それにより1台の端末装置(携帯電話、コンピュータ、サーバ、エアコン、又はネットワーク装置など)で本発明の各実施例に記載の方法を実行する。
【0080】
以上、図面を参照しながら本発明の好ましい実施例について説明したが、これで本発明の特許請求の範囲を限定するものではない。上記本発明による実施例のシーケンス番号は、単に説明するためのものであり、実施例の優劣を表すものではない。また、フローチャートには論理的な順序が示されているが、場合によっては、ここで異なる順序で示し又は説明したステップを実行することができる。
【0081】
本発明の趣旨を逸脱しない限り、当業者であれば、種々の変形変更が可能である。例えば、ある実施例における特徴は他の実施例に適用してさらに別の実施例を得る。本明細書及び図面の記載を利用して行う同等の構造又は同等のプロセスの変換、又は他の関連技術分野における直接的又は間接的な利用の全てが、いずれも本発明に属することを理解されたい。