(57)【要約】      （修正有）【課題】クラウドコンピューティング分野において、クエリ処理方法を提供する。【解決手段】方法は、サーバーノードがクエリリクエストを解析して対応する論理実行プランを生成するステップと、サーバーノードが論理実行プランがクエリサービスに属するかを判断するステップと、論理実行プランがＯＬＡＰスケールクエリサービスに属すると判定された場合に、サーバーノードが論理実行プランを複数の論理実行サブプランに分割するステップと、コーディネーターノードが各論理実行サブプランに対応するワーカーノードのノード情報が記録されている第１物理実行プランを生成してサーバーノードにフィードバックするステップと、サーバーノードが、各論理実行サブプランを対応するワーカーノードに割り当てるステップと、ワーカーノードが対応する論理実行サブプランを処理するステップと、を有する。【選択図】図１
2020191067.tif 000002
【特許請求の範囲】
【請求項１】
サーバーノードによって、クエリリクエストを解析して対応する論理実行プランを生成するステップと、
前記サーバーノードによって、前記論理実行プランがＯＬＡＰスケールクエリサービスに属するか又はＯＬＴＰスケールクエリサービスに属するかを判断するステップと、
前記論理実行プランがＯＬＡＰスケールクエリサービスに属すると判定された場合に、前記サーバーノードによって前記論理実行プランを複数の論理実行サブプランに分割して、分割された前記論理実行プランをコーディネーターノードに送信するステップと、
前記コーディネーターノードによって、前記論理実行プランに対応する第１物理実行プランを生成して前記サーバーノードにフィードバックするステップであって、前記第１物理実行プランには各前記論理実行サブプランに対応するワーカーノードのノード情報が記録されているステップと、
前記サーバーノードによって、前記第１物理実行プランに基づいて各前記論理実行サブプランを対応するワーカーノードに割り当てるステップと、
前記ワーカーノードによって、対応する論理実行サブプランを処理してクエリサブ結果を得、前記処理サブ結果をレイヤーごとに報告するステップと、
前記サーバーノードによって、受信された処理サブ結果を集計して、最終的なクエリ結果を生成して、前記最終的なクエリ結果をユーザにフィードバックするステップと、を含むことを特徴とするクエリ処理方法。
【請求項２】
前記論理実行プランがＯＬＴＰスケールクエリサービスに属すると判定された場合に、前記サーバーノードによって前記論理実行プランをコーディネーターノードに送信し、
前記コーディネーターノードによって、前記論理実行プランに対応する第２物理実行プランを生成して前記サーバーノードにフィードバックし、前記第２物理実行プランには前記論理実行プランに対応するワーカーノードのノード情報が記録されており、
前記サーバーノードによって、前記第２物理実行プランに基づいて前記論理実行プランを対応するワーカーノードに割り当て、
前記ワーカーノードによって、対応する前記論理実行プランを処理して最終的なクエリ結果を得、前記最終的なクエリ結果を前記サーバーノードにアップロードし、
前記サーバーノードによって、受信された前記最終的なクエリ結果をユーザにフィードバックすることを特徴とする請求項１に記載のクエリ処理方法。
【請求項３】
サーバーノードによって、前記論理実行プランがＯＬＡＰスケールクエリサービスに属するか又はＯＬＴＰスケールクエリサービスに属するかを判断するステップは、
前記サーバーノードによって、前記論理実行プランに関連付けられた各データソースのデータ量をストレージノードに照会することと、
前記サーバーノードによって、前記ストレージノードからフィードバックされた、前記論理実行プランに関連付けられた各データソースのデータ量に基づいて、前記論理実行プランに対応するデータクエリ合計量を推定することと、
前記サーバーノードによって、前記データクエリ合計量と予め設定されたクエリ合計量とを比較することと、
比較の結果、前記データクエリ合計量が前記予め設定されたクエリ合計量よりも大きい場合に、前記サーバーノードによって、前記論理実行プランがＯＬＡＰスケールクエリサービスに属すると判定し、前記データクエリ合計量が前記予め設定されたクエリ合計量以下である場合に、前記サーバーノードによって、前記論理実行プランがＯＬＴＰスケールクエリサービスに属すると判定することと、を含むことを特徴とする請求項１又は２のいずれか１項に記載のクエリ処理方法。
【請求項４】
前記ワーカーノードによって対応する論理実行サブプランを処理するステップは具体的に、
ワーカーノード自体によって受信された論理実行サブプランがクエリプランに属するか又は集合プランに属するかを前記ワーカーノードによって検出することと、
ワーカーノード自体によって受信された論理実行サブプランがクエリプランに属すると検出された場合に、前記ストレージノードによって前記論理実行サブプランについてのデータベースを作成するために、前記ワーカーノードによって前記論理実行サブプランをストレージノードに転送することと、
前記ストレージノードによって作成された前記論理実行サブプランについてのデータベースにおいて、対応するクエリ動作を前記ワーカーノードによって実行して、対応するクエリサブ結果を得ることとを含み、
前記ストレージノードがワーカーノードによって送信された論理実行サブプランを受信した場合に、前記論理実行サブプランについてのデータベースを前記ストレージノードによって作成することをさらに含むことを特徴とする請求項１又は２のいずれか１項に記載のクエリ処理方法。
【請求項５】
ワーカーノード自体によって受信された論理実行サブプランが集合プランに属すると検出された場合に、前記ワーカーノードによって下位ワーカーノードから報告されるクエリサブ結果を受信して集合処理を行うことを特徴とする請求項４に記載のクエリ処理方法。
【請求項６】
前記ストレージノードによって前記論理実行サブプランについてのデータベースを作成するステップは具体的に、
前記ストレージノードによって、受信された前記論理実行サブプランに基づいて、前記論理実行サブプランに関連付けられたデータソースから提供されたデータテーブルを取得することと、
前記論理実行サブプランに関連付けられたデータソースの数が１よりも大きいか否かを前記ストレージノードによって判断することと、
前記論理実行サブプランに関連付けられたデータソースの数が１よりも大きいと判定された場合に、前記論理実行サブプランに関連付けられた各データソースから提供されたデータテーブルを、前記ストレージノードによってリレーショナルデータベースにマッピングすることと、
前記論理実行サブプランに関連付けられたデータソースの数が１であると判定された場合に、前記論理実行サブプランに関連付けられた１つのデータソースから提供されたデータテーブルをデータベースとすることと、を含むことを特徴とする請求項４に記載のクエリ処理方法。
【請求項７】
前記ストレージノードによって、受信された前記論理実行サブプランに基づいて、前記論理実行サブプランに関連付けられたデータソースから提供されたデータテーブルを取得するステップは、
前記論理実行サブプランに関連付けられたデータソースを前記ストレージノードによって特定することと、
予め記憶されている対応関係テーブルから、前記論理実行サブプランに関連付けられた各データソースに対応する推奨処理フィールドを、前記ストレージノードによって特定することであって、前記対応関係テーブルには異なるデータソース及びそれらに対応する推奨処理フィールドが記録されていることと、
前記論理実行サブプランに関連付けられたデータソースのそれぞれについて、該データソースに対応する推奨処理フィールドが前記論理実行サブプランに含まれるクエリ条件のクエリフィールドであるか否かを前記ストレージノードによって判断することと、
該データソースに対応する推奨処理フィールドが前記論理実行サブプランに含まれるクエリ条件のクエリフィールドであると判定された場合に、該データソースが受信されたクエリ条件に応じて該データソース自体に記憶されているデータテーブルを選別して選別済みデータテーブルを前記ストレージノードにフィードバックするために、前記論理実行サブプランにおける該データソースに対応する推奨処理フィールドのクエリ条件を、前記ストレージノードによって該データソースに送信することと、
該データソースに対応するのが前記論理実行サブプランに含まれるクエリ条件のクエリフィールドではないと判定された場合に、該データソースがデータソース自体のデータテーブルをフィードバックするために、前記ストレージノードによって該データソースにデータ取得要求を送信することと、を含むことを特徴とする請求項６に記載のクエリ処理方法。
【請求項８】
前記サーバーノードによって、クエリリクエストを解析して対応する論理実行プランを生成するステップを実行する前に、
メタ情報管理ノードによってユーザ識別情報の有効性を検証するステップと、
ユーザ識別情報が有効性検証に成功した場合に、前記サーバーノードによってクエリリクエストを解析して対応する論理実行プランを生成するステップを実行するステップと、
ユーザ識別情報が有効性検証に失敗した場合に、前記メタ情報管理ノードによって識別情報の検証失敗情報をユーザにフィードバックするステップと、をさらに含むことを特徴とする請求項１又は２のいずれか１項に記載のクエリ処理方法。
【請求項９】
サーバーノードと、コーディネーターノードと、複数のワーカーノードと、を備え、
前記サーバーノードは、解析モジュール、第１判断モジュール、分割モジュール、第１割り当てモジュール、集計モジュール及び第１フィードバックモジュールを含み、
前記コーディネーターノードは、第１生成モジュールを含み、
前記ワーカーノードは、第１処理モジュールを含み、
前記解析モジュールは、クエリリクエストを解析して対応する論理実行プランを生成するように構成され、
前記第１判断モジュールは、前記論理実行プランがＯＬＡＰスケールクエリサービスに属するか又はＯＬＴＰスケールクエリサービスに属するかを判断するように構成され、
前記分割モジュールは、前記第１判断モジュールによって前記論理実行プランがＯＬＡＰスケールクエリサービスに属すると判定された場合に、前記論理実行プランを複数の論理実行サブプランに分割し、分割済みの前記論理実行プランをコーディネーターノードに送信するように構成され、
前記第１生成モジュールは、前記分割モジュールから受信された前記論理実行プランに対応する第１物理実行プランを生成して、前記サーバーノードにフィードバックするように構成され、前記第１物理実行プランには各前記論理実行サブプランに対応するワーカーノードのノード情報が記録されており、
前記第１割り当てモジュールは、前記第１物理実行プランに基づいて、各前記論理実行サブプランを対応するワーカーノードに割り当てるように構成され、
前記第１処理モジュールは、対応する論理実行サブプランを処理して、クエリサブ結果を得、前記処理サブ結果をレイヤーごとに報告するように構成され、
前記集計モジュールは、受信された処理サブ結果を集計して、最終的なクエリ結果を生成するように構成され、
前記第１フィードバックモジュールは、前記最終的なクエリ結果をユーザにフィードバックするように構成されることを特徴とするクエリ処理システム。
【請求項１０】
前記サーバーノードは、送信モジュール、第２割り当てモジュール及び第２フィードバックモジュールをさらに含み、
前記コーディネーターノードは、第２生成モジュールをさらに含み、
前記ワーカーノードは、第２処理モジュールをさらに含み、
前記送信モジュールは、前記第１判断モジュールによって前記論理実行プランがＯＬＴＰスケールクエリサービスに属すると判定された場合に、前記論理実行プランをコーディネーターノードに送信するように構成され、
前記第２生成モジュールは、前記送信モジュールから受信された前記論理実行プランに対応する第２物理実行プランを生成して、前記サーバーノードにフィードバックするように構成され、前記第２物理実行プランには前記論理実行プランに対応するワーカーノードのノード情報が記録されており、
前記第２割り当てモジュールは、前記第２物理実行プランに基づいて、前記論理実行プランを対応するワーカーノードに割り当てるように構成され、
前記第２処理モジュールは、対応する前記論理実行プランを処理して、最終的なクエリ結果を得、前記最終的なクエリ結果を前記サーバーノードにアップロードするように構成され、
前記第２フィードバックモジュールは、受信された前記最終的なクエリ結果をユーザにフィードバックするように構成されることを特徴とする請求項９に記載のクエリ処理システム。
【請求項１１】
前記クエリ処理システムは、各データソースのデータ量情報が予め記憶されているストレージモジュールを含むストレージノードをさらに備え、
前記第１判断モジュールは、照会ユニット、推定ユニット及び比較ユニットを含み、
前記照会ユニットは、前記論理実行プランに関連付けられた各データソースのデータ量をストレージノードに照会するように構成され、
前記推定ユニットは、前記ストレージノードからフィードバックされた、前記論理実行プランに関連付けられた各データソースのデータ量に基づいて、前記論理実行プランに対応するデータクエリ合計量を推定するように構成され、
前記比較ユニットは、前記データクエリ合計量と予め設定されたクエリ合計量とを比較するように構成され、
前記比較ユニットによる結果、前記データクエリ合計量が前記予め設定されたクエリ合計量よりも大きい場合に、前記第１判断モジュールによって前記論理実行プランがＯＬＡＰスケールクエリサービスに属すると判定され、前記データクエリ合計量が前記予め設定されたクエリ合計量以下である場合に、前記第１判断モジュールによって前記論理実行プランがＯＬＴＰスケールクエリサービスに属すると判定されることを特徴とする請求項９又は１０のいずれか１項に記載のクエリ処理システム。
【請求項１２】
前記第１処理モジュールは、第１検出ユニット、転送ユニット及びクエリユニットを含み、
前記クエリ処理システムは、作成モジュールを含むストレージノードをさらに備え、
前記第１検出ユニットは、前記ワーカーノード自体が受信した論理実行サブプランがクエリプランに属するか又は集合プランに属するかを検出するように構成され、
前記転送ユニットは、前記第１検出ユニットによって前記ワーカーノード自体が受信した論理実行サブプランがクエリプランに属すると検出された場合に、前記ストレージノードが前記論理実行サブプランについてのデータベースを作成するために、前記論理実行サブプランを前記ストレージノードに転送するように構成され、
前記クエリユニットは、前記ストレージノードによって作成された前記論理実行サブプランについてのデータベースにおいて対応するクエリ動作を実行して、対応するクエリサブ結果を得るように構成され、
前記作成モジュールは、前記ストレージノードがワーカーノードから送信された論理実行サブプランを受信した場合に、前記論理実行サブプランについてのデータベースを作成するように構成されることを特徴とする請求項９又は１０のいずれか１項に記載のクエリ処理システム。
【請求項１３】
前記第１処理モジュールは集合ユニットをさらに含み、
前記集合ユニットは、前記第１検出ユニットによって前記ワーカーノード自体が受信した論理実行サブプランが集合プランに属すると検出された場合に、下位ワーカーノードから報告されるクエリサブ結果を受信して、集合処理を行うように構成されることを特徴とする請求項１２に記載のクエリ処理システム。
【請求項１４】
前記作成モジュールは、取得ユニット、判断ユニット及び処理ユニットを含み、
前記取得ユニットは、受信された前記論理実行サブプランに基づいて、前記論理実行サブプランに関連付けられたデータソースから提供されたデータテーブルを取得するように構成され、
前記判断ユニットは、前記論理実行サブプランに関連付けられたデータソースの数が１よりも大きいか否かを判断するように構成され、
前記処理ユニットは、前記判断ユニットによって前記論理実行サブプランに関連付けられたデータソースの数が１よりも大きいと判定された場合に、前記論理実行サブプランに関連付けられた各データソースから提供されるデータテーブルをリレーショナルデータベースにマッピングするように構成されるとともに、前記判断ユニットによって前記論理実行サブプランに関連付けられたデータソースの数が１であると判定された場合に、前記論理実行サブプランに関連付けられた１つのデータソースから提供されたデータテーブルをデータベースとするように構成されることを特徴とする請求項１２に記載のクエリ処理システム。
【請求項１５】
前記取得ユニットは、第１特定サブユニット、第２特定サブユニット、判断サブユニット、第１送信サブユニット及び第２送信サブユニットを含み、
前記第１特定サブユニットは、前記論理実行サブプランに関連付けられたデータソースを特定するように構成され、
前記第２特定サブユニットは、予め記憶されている対応関係テーブルから前記論理実行サブプランに関連付けられた各データソースに対応する推奨処理フィールドを特定するように構成され、前記対応関係テーブルには異なるデータソース及びそれらに対応する推奨処理フィールドが記録されており、
前記判断サブユニットは、前記論理実行サブプランに関連付けられたデータソースのそれぞれについて、該データソースに対応する推奨処理フィールドが前記論理実行サブプランに含まれるクエリ条件のクエリフィールドであるか否かを判断するように構成され、
前記第１送信サブユニットは、前記判断サブユニットによって該データソースに対応する推奨処理フィールドが前記論理実行サブプランに含まれるクエリ条件のクエリフィールドであると判定された場合に、該データソースが受信されたクエリ条件に基づいて該データソース自体に記憶されているデータテーブルを選別して選別済みデータテーブルを前記ストレージノードにフィードバックするために、前記論理実行サブプランにおける該データソースに対応する推奨処理フィールドのクエリ条件を該データソースに送信するように構成され、
前記第２送信サブユニットは、前記判断サブユニットによって該データソースに対応するのが前記論理実行サブプランに含まれるクエリ条件のクエリフィールドではないと判定された場合に、該データソースが該データソース自体のデータテーブルをフィードバックするために、該データソースにデータ取得要求を送信するように構成されることを特徴とする請求項１４に記載のクエリ処理システム。
【請求項１６】
前記クエリ処理システムは、検証モジュール及び第３フィードバックモジュールを含むメタ情報管理ノードをさらに備え、
前記検証モジュールは、ユーザ識別情報の有効性を検証するように構成され、
前記第３フィードバックモジュールは、ユーザ識別情報が有効性検証に失敗した場合に、前記メタ情報管理ノードによって識別情報の検証失敗情報をユーザにフィードバックするように構成され、
前記解析モジュールは、具体的にユーザ識別情報が有効性検証に成功した場合に、クエリリクエストを解析して対応する論理実行プランを生成するように構成されることを特徴とする請求項９又は１０のいずれか１項に記載のクエリ処理システム。
【請求項１７】
１つ又は複数のプロセッサと、
１つ又は複数のプログラムが格納されている記憶装置と、を含むサーバであって、
前記１つ又は複数のプログラムが前記１つ又は複数のプロセッサによって実行される場合に、前記１つ又は複数のプロセッサに請求項１〜８のいずれか１項に記載の方法を実現させるサーバ。
【請求項１８】
コンピュータプログラムが格納されているコンピュータ可読媒体であって、
前記プログラムがプロセッサによって実行される場合に、請求項１〜８のいずれか１項に記載の方法を実現するコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、モノのインターネット技術分野及びクラウドコンピューティング分野に関し、特にクエリ処理方法、クエリ処理システム、サーバ及びコンピュータ可読媒体に関する。
【背景技術】
【０００２】
モノのインターネット分野では、データの重要性は企業にとって計り知れないが、データの背後にある価値をマイニングすることによって、過去を分析し、現在を監視し、未来を決定することができる。このプロセスにおいて重要な段階はデータのクエリである。
【０００３】
モノのインターネット分野におけるデータタイプが多様化されており、データ量が大容量化されており、クエリシーンは、オンライン分析処理（Ｏｎ−Ｌｉｎｅ  Ａｎａｌｙｓｉｓ  Ｐｒｏｃｅｓｓｉｎｇ，ＯＬＡＰと略称される）スケールクエリサービスと、オンライントランザクション処理（Ｏｎ−Ｌｉｎｅ  Ｔｒａｎｓａｃｔｉｏｎ  Ｐｒｏｃｅｓｓｉｎｇ，ＯＬＴＰと略称される）スケールクエリサービスとをカバーするが、従来のデータクエリエンジンがＯＬＡＰスケールクエリサービスとＯＬＴＰスケールクエリサービスの両方をサポートすることは困難であり、つまり、従来のデータクエリ技術は、モノのインターネット分野のクエリ要件を満たすことができない。
【発明の概要】
【０００４】
本開示は、従来技術に存在する技術的問題の少なくとも１つを解決することを目的とし、クエリ処理方法、クエリ処理システム、サーバ及びコンピュータ可読媒体を提供している。
【０００５】
第１態様において、本開示の実施形態は、クエリ処理方法を提供しており、
サーバーノードによって、クエリリクエストを解析して対応する論理実行プランを生成するステップと、
前記サーバーノードによって、前記論理実行プランがＯＬＡＰスケールクエリサービスに属するか又はＯＬＴＰスケールクエリサービスに属するかを判断するステップと、
前記論理実行プランがＯＬＡＰスケールクエリサービスに属すると判定された場合に、前記サーバーノードによって前記論理実行プランを複数の論理実行サブプランに分割して、分割された前記論理実行プランをコーディネーターノードに送信するステップと、
前記コーディネーターノードによって、前記論理実行プランに対応する第１物理実行プランを生成して前記サーバーノードにフィードバックするステップであって、前記第１物理実行プランには各前記論理実行サブプランに対応するワーカーノードのノード情報が記録されているステップと、
前記サーバーノードによって、前記第１物理実行プランに基づいて各前記論理実行サブプランを対応するワーカーノードに割り当てるステップと、
前記ワーカーノードによって、対応する論理実行サブプランを処理してクエリサブ結果を得、前記処理サブ結果をレイヤーごとに報告するステップと、
前記サーバーノードによって、受信された処理サブ結果を集計して、最終的なクエリ結果を生成して、前記最終的なクエリ結果をユーザにフィードバックするステップと、を含む。
【０００６】
いくつかの実施形態において、前記論理実行プランがＯＬＴＰスケールクエリサービスに属すると判定された場合に、前記サーバーノードによって前記論理実行プランをコーディネーターノードに送信し、
前記コーディネーターノードによって、前記論理実行プランに対応する第２物理実行プランを生成して前記サーバーノードにフィードバックし、前記第２物理実行プランには前記論理実行プランに対応するワーカーノードのノード情報が記録されており、
前記サーバーノードによって、前記第２物理実行プランに基づいて前記論理実行プランを対応するワーカーノードに割り当て、
前記ワーカーノードによって、対応する前記論理実行プランを処理して最終的なクエリ結果を得、前記最終的なクエリ結果を前記サーバーノードにアップロードし、
前記サーバーノードによって、受信された前記最終的なクエリ結果をユーザにフィードバックする。
【０００７】
いくつかの実施形態において、サーバーノードによって、前記論理実行プランがＯＬＡＰスケールクエリサービスに属するか又はＯＬＴＰスケールクエリサービスに属するかを判断するステップは、
前記サーバーノードによって、前記論理実行プランに関連付けられた各データソースのデータ量をストレージノードに照会することと、
前記サーバーノードによって、前記ストレージノードからフィードバックされた、前記論理実行プランに関連付けられた各データソースのデータ量に基づいて、前記論理実行プランに対応するデータクエリ合計量を推定することと、
前記サーバーノードによって、前記データクエリ合計量と予め設定されたクエリ合計量とを比較することと、
比較の結果、前記データクエリ合計量が前記予め設定されたクエリ合計量よりも大きい場合に、前記サーバーノードによって、前記論理実行プランがＯＬＡＰスケールクエリサービスに属すると判定し、前記データクエリ合計量が前記予め設定されたクエリ合計量以下である場合に、前記サーバーノードによって、前記論理実行プランがＯＬＴＰスケールクエリサービスに属すると判定することと、を含む。
【０００８】
いくつかの実施形態において、前記ワーカーノードによって対応する論理実行サブプランを処理するステップは具体的に、
ワーカーノード自体によって受信された論理実行サブプランがクエリプランに属するか又は集合プランに属するかを前記ワーカーノードによって検出することと、
ワーカーノード自体によって受信された論理実行サブプランがクエリプランに属すると検出された場合に、前記ストレージノードによって前記論理実行サブプランについてのデータベースを作成するために、前記ワーカーノードによって前記論理実行サブプランを前記ストレージノードに転送することと、
前記ストレージノードによって作成された前記論理実行サブプランについてのデータベースにおいて、対応するクエリ動作を前記ワーカーノードによって実行して、対応するクエリサブ結果を得ることとを含み、
前記ストレージノードがワーカーノードによって送信された論理実行サブプランを受信した場合に、前記論理実行サブプランについてのデータベースを前記ストレージノードによって作成することをさらに含む。
【０００９】
いくつかの実施形態において、ワーカーノード自体によって受信された論理実行サブプランが集合プランに属すると検出された場合に、前記ワーカーノードによって下位ワーカーノードから報告されるクエリサブ結果を受信して集合処理を行う。
【００１０】
いくつかの実施形態において、前記ストレージノードによって前記論理実行サブプランについてのデータベースを作成するステップは具体的に、
前記ストレージノードによって、受信された前記論理実行サブプランに基づいて、前記論理実行サブプランに関連付けられたデータソースから提供されたデータテーブルを取得することと、
前記論理実行サブプランに関連付けられたデータソースの数が１よりも大きいか否かを前記ストレージノードによって判断することと、
前記論理実行サブプランに関連付けられたデータソースの数が１よりも大きいと判定された場合に、前記論理実行サブプランに関連付けられた各データソースから提供されたデータテーブルを、前記ストレージノードによってリレーショナルデータベースにマッピングすることと、
前記論理実行サブプランに関連付けられたデータソースの数が１であると判定された場合に、前記論理実行サブプランに関連付けられた１つのデータソースから提供されたデータテーブルをデータベースとすることと、を含む。
【００１１】
いくつかの実施形態において、前記ストレージノードによって、受信された前記論理実行サブプランに基づいて、前記論理実行サブプランに関連付けられたデータソースから提供されたデータテーブルを取得するステップは、
前記論理実行サブプランに関連付けられたデータソースを前記ストレージノードによって特定することと、
予め記憶されている対応関係テーブルから、前記論理実行サブプランに関連付けられた各データソースに対応する推奨処理フィールドを、前記ストレージノードによって特定することであって、前記対応関係テーブルには異なるデータソース及びそれらに対応する推奨処理フィールドが記録されていることと、
前記論理実行サブプランに関連付けられたデータソースのそれぞれについて、該データソースに対応する推奨処理フィールドが前記論理実行サブプランに含まれるクエリ条件のクエリフィールドであるか否かを前記ストレージノードによって判断することと、
該データソースに対応する推奨処理フィールドが前記論理実行サブプランに含まれるクエリ条件のクエリフィールドであると判定された場合に、該データソースが受信されたクエリ条件に応じて該データソース自体に記憶されているデータテーブルを選別して選別済みデータテーブルを前記ストレージノードにフィードバックするために、前記論理実行サブプランにおける該データソースに対応する推奨処理フィールドのクエリ条件を、前記ストレージノードによって該データソースに送信することと、
該データソースに対応するのが前記論理実行サブプランに含まれるクエリ条件のクエリフィールドではないと判定された場合に、該データソースがデータソース自体のデータテーブルをフィードバックするために、前記ストレージノードによって該データソースにデータ取得要求を送信することと、を含む。
【００１２】
いくつかの実施形態において、前記サーバーノードによって、クエリリクエストを解析して対応する論理実行プランを生成するステップを実行する前に、
メタ情報管理ノードによってユーザ識別情報の有効性を検証するステップと、
ユーザ識別情報が有効性検証に成功した場合に、前記サーバーノードによってクエリリクエストを解析して対応する論理実行プランを生成するステップを実行するステップと、
ユーザ識別情報が有効性検証に失敗した場合に、前記メタ情報管理ノードによって識別情報の検証失敗情報をユーザにフィードバックするステップと、をさらに含む。
【００１３】
第２態様において、本開示の実施形態は、サーバーノードと、コーディネーターノードと、複数のワーカーノードと、を備えるクエリ処理システムを提供しており、
前記サーバーノードは、解析モジュール、第１判断モジュール、分割モジュール、第１割り当てモジュール、集計モジュール及び第１フィードバックモジュールを含み、
前記コーディネーターノードは、第１生成モジュールを含み、
前記ワーカーノードは、第１処理モジュールを含み、
前記解析モジュールは、クエリリクエストを解析して対応する論理実行プランを生成するように構成され、
前記第１判断モジュールは、前記論理実行プランがＯＬＡＰスケールクエリサービスに属するか又はＯＬＴＰスケールクエリサービスに属するかを判断するように構成され、
前記分割モジュールは、前記第１判断モジュールによって前記論理実行プランがＯＬＡＰスケールクエリサービスに属すると判定された場合に、前記論理実行プランを複数の論理実行サブプランに分割し、分割済みの前記論理実行プランをコーディネーターノードに送信するように構成され、
前記第１生成モジュールは、前記分割モジュールから受信された前記論理実行プランに対応する第１物理実行プランを生成して、前記サーバーノードにフィードバックするように構成され、前記第１物理実行プランには各前記論理実行サブプランに対応するワーカーノードのノード情報が記録されており、
前記第１割り当てモジュールは、前記第１物理実行プランに基づいて、各前記論理実行サブプランを対応するワーカーノードに割り当てるように構成され、
前記第１処理モジュールは、対応する論理実行サブプランを処理して、クエリサブ結果を得、前記処理サブ結果をレイヤーごとに報告するように構成され、
前記集計モジュールは、受信された処理サブ結果を集計して、最終的なクエリ結果を生成するように構成され、
前記第１フィードバックモジュールは、前記最終的なクエリ結果をユーザにフィードバックするように構成される。
【００１４】
いくつかの実施形態において、前記サーバーノードは、送信モジュール、第２割り当てモジュール及び第２フィードバックモジュールをさらに含み、
前記コーディネーターノードは、第２生成モジュールをさらに含み、
前記ワーカーノードは、第２処理モジュールをさらに含み、
前記送信モジュールは、前記第１判断モジュールによって前記論理実行プランがＯＬＴＰスケールクエリサービスに属すると判定された場合に、前記論理実行プランをコーディネーターノードに送信するように構成され、
前記第２生成モジュールは、前記送信モジュールから受信された前記論理実行プランに対応する第２物理実行プランを生成して、前記サーバーノードにフィードバックするように構成され、前記第２物理実行プランには前記論理実行プランに対応するワーカーノードのノード情報が記録されており、
前記第２割り当てモジュールは、前記第２物理実行プランに基づいて、前記論理実行プランを対応するワーカーノードに割り当てるように構成され、
前記第２処理モジュールは、対応する前記論理実行プランを処理して、最終的なクエリ結果を得、前記最終的なクエリ結果を前記サーバーノードにアップロードするように構成され、
前記第２フィードバックモジュールは、受信された前記最終的なクエリ結果をユーザにフィードバックするように構成される。
【００１５】
いくつかの実施形態において、前記クエリ処理システムは、各データソースのデータ量情報が予め記憶されているストレージモジュールを含むストレージノードをさらに備え、
前記第１判断モジュールは、照会ユニット、推定ユニット及び比較ユニットを含み、
前記照会ユニットは、前記論理実行プランに関連付けられた各データソースのデータ量をストレージノードに照会するように構成され、
前記推定ユニットは、前記ストレージノードからフィードバックされた、前記論理実行プランに関連付けられた各データソースのデータ量に基づいて、前記論理実行プランに対応するデータクエリ合計量を推定するように構成され、
前記比較ユニットは、前記データクエリ合計量と予め設定されたクエリ合計量とを比較するように構成され、
前記比較ユニットによる結果、前記データクエリ合計量が前記予め設定されたクエリ合計量よりも大きい場合に、前記第１判断モジュールによって前記論理実行プランがＯＬＡＰスケールクエリサービスに属すると判定され、前記データクエリ合計量が前記予め設定されたクエリ合計量以下である場合に、前記第１判断モジュールによって前記論理実行プランがＯＬＴＰスケールクエリサービスに属すると判定される。
【００１６】
いくつかの実施形態において、前記第１処理モジュールは、第１検出ユニット、転送ユニット及びクエリユニットを含み、
前記クエリ処理システムは、作成モジュールを含むストレージノードをさらに備え、
前記第１検出ユニットは、前記ワーカーノード自体が受信した論理実行サブプランがクエリプランに属するか又は集合プランに属するかを検出するように構成され、
前記転送ユニットは、前記第１検出ユニットによって前記ワーカーノード自体が受信した論理実行サブプランがクエリプランに属すると検出された場合に、前記ストレージノードが前記論理実行サブプランについてのデータベースを作成するために、前記論理実行サブプランを前記ストレージノードに転送するように構成され、
前記クエリユニットは、前記ストレージノードによって作成された前記論理実行サブプランについてのデータベースにおいて対応するクエリ動作を実行して、対応するクエリサブ結果を得るように構成され、
前記作成モジュールは、前記ストレージノードがワーカーノードから送信された論理実行サブプランを受信した場合に、前記論理実行サブプランについてのデータベースを作成するように構成される。
【００１７】
いくつかの実施形態において、前記第１処理モジュールは集合ユニットをさらに含み、
前記集合ユニットは、前記第１検出ユニットによって前記ワーカーノード自体が受信した論理実行サブプランが集合プランに属すると検出された場合に、下位ワーカーノードから報告されるクエリサブ結果を受信して、集合処理を行うように構成される。
【００１８】
いくつかの実施形態において、前記作成モジュールは、取得ユニット、判断ユニット及び処理ユニットを含み、
前記取得ユニットは、受信された前記論理実行サブプランに基づいて、前記論理実行サブプランに関連付けられたデータソースから提供されたデータテーブルを取得するように構成され、
前記判断ユニットは、前記論理実行サブプランに関連付けられたデータソースの数が１よりも大きいか否かを判断するように構成され、
前記処理ユニットは、前記判断ユニットによって前記論理実行サブプランに関連付けられたデータソースの数が１よりも大きいと判定された場合に、前記論理実行サブプランに関連付けられた各データソースから提供されるデータテーブルをリレーショナルデータベースにマッピングするように構成されるとともに、前記判断ユニットによって前記論理実行サブプランに関連付けられたデータソースの数が１であると判定された場合に、前記論理実行サブプランに関連付けられた１つのデータソースから提供されたデータテーブルをデータベースとするように構成される。
【００１９】
いくつかの実施形態において、前記取得ユニットは、第１特定サブユニット、第２特定サブユニット、判断サブユニット、第１送信サブユニット及び第２送信サブユニットを含み、
前記第１特定サブユニットは、前記論理実行サブプランに関連付けられたデータソースを特定するように構成され、
前記第２特定サブユニットは、予め記憶されている対応関係テーブルから前記論理実行サブプランに関連付けられた各データソースに対応する推奨処理フィールドを特定するように構成され、前記対応関係テーブルには異なるデータソース及びそれらに対応する推奨処理フィールドが記録されており、
前記判断サブユニットは、前記論理実行サブプランに関連付けられたデータソースのそれぞれについて、該データソースに対応する推奨処理フィールドが前記論理実行サブプランに含まれるクエリ条件のクエリフィールドであるか否かを判断するように構成され、
前記第１送信サブユニットは、前記判断サブユニットによって該データソースに対応する推奨処理フィールドが前記論理実行サブプランに含まれるクエリ条件のクエリフィールドであると判定された場合に、該データソースが受信されたクエリ条件に基づいて該データソース自体に記憶されているデータテーブルを選別して選別済みデータテーブルを前記ストレージノードにフィードバックするために、前記論理実行サブプランにおける該データソースに対応する推奨処理フィールドのクエリ条件を該データソースに送信するように構成され、
前記第２送信サブユニットは、前記判断サブユニットによって該データソースに対応するのが前記論理実行サブプランに含まれるクエリ条件のクエリフィールドではないと判定された場合に、該データソースが該データソース自体のデータテーブルをフィードバックするために、該データソースにデータ取得要求を送信するように構成される。
【００２０】
いくつかの実施形態において、前記クエリ処理システムは、検証モジュール及び第３フィードバックモジュールを含むメタ情報管理ノードをさらに備え、
前記検証モジュールは、ユーザ識別情報の有効性を検証するように構成され、
前記第３フィードバックモジュールは、ユーザ識別情報が有効性検証に失敗した場合に、前記メタ情報管理ノードによって識別情報の検証失敗情報をユーザにフィードバックするように構成され、
前記解析モジュールは、具体的にユーザ識別情報が有効性検証に成功した場合に、クエリリクエストを解析して対応する論理実行プランを生成するように構成される。
【００２１】
第３態様において、本開示の実施形態は、１つ又は複数のプロセッサと、１つ又は複数のプログラムが格納されている記憶装置と、を含むサーバであって、前記１つ又は複数のプログラムが前記１つ又は複数のプロセッサによって実行されると、前記１つ又は複数のプロセッサに第１態様のいずれかの実施形態に記載の方法を実現させるサーバを提供している。
【００２２】
第４態様において、本開示の実施形態は、コンピュータプログラムが格納されているコンピュータ可読記憶媒体であって、該コンピュータプログラムが１つ又は複数のプロセッサによって実行されると、第１態様のいずれかの実施形態に記載の方法を実現するコンピュータ可読記憶媒体を提供している。
【００２３】
本開示は、次の有益な効果を有し、本開示の実施形態は、クエリリクエストに対応するデータスケールに基づいて異なる処理プロセスを選択することができ、ＯＬＡＰスケールクエリサービスとＯＬＴＰスケールクエリサービスとの両方をサポートすることができ、モノのインターネット分野におけるクエリニーズを満たすことができるクエリ処理方法を提供しており、
さらに、複数のデータソースにわたるユニオンクエリについて、本開示では、異なるデータソースから提供される異なるデータテーブルをリレーショナルデータベースの形にマッピングすることができるストレージノードを設けることによって、サービス間でユニオンクエリが可能になる。
また、ユーザにとっては、ＳＱＬ言語を利用するだけで、複数のデータソースにわたってワンストップでデータクエリを行うことができ、ユーザの操作が便利となる。
【図面の簡単な説明】
【００２４】
【図１】本開示の実施形態に係るクエリ処理方法のフローチャートである。
【図２】本開示におけるステップＳ２の具体的な実施フローチャートである。
【図３】本開示におけるステップＳ６の具体的な実施フローチャートである。
【図４】本開示におけるステップＳ６０２ａの具体的な実施フローチャートである。
【図５】本開示におけるステップＳ６０２１の具体的な実施フローチャートである。
【図６】本開示の実施形態に係る他のクエリ処理方法のフローチャートである。
【図７ａ】本開示の実施形態に係るクエリ処理システムのブロック構成図である。
【図７ｂ】本開示におけるサーバーノードのブロック構成図である。
【図７ｃ】本開示におけるコーディネーターノードのブロック構成図である。
【図７ｄ】本開示におけるワーカーノードのブロック構成図である。
【図７ｅ】本開示におけるストレージノードのブロック構成図である。
【図８】本開示における第１判断モジュールのブロック構成図である。
【図９】本開示における第１処理モジュールのブロック構成図である。
【図１０】本開示における作成モジュールのブロック構成図である。
【図１１】本開示における取得モジュールのブロック構成図である。
【発明を実施するための形態】
【００２５】
本開示の技術的手段を当業者によりよく理解させるために、以下、本開示に係るクエリ処理方法、クエリ処理システム、サーバ及びコンピュータ可読媒体について、添付図面を参照しながら詳細に説明する。
【００２６】
以下、添付図面を参照して例示的な実施形態を完全に説明するが、前記例示的な実施形態は異なる形態で具現化されてもよく、本明細書に記載の実施形態に限定されるものと解釈されるべきではない。むしろ、これらの実施形態は、本開示を徹底的かつ完全にし、当業者が本開示の範囲を十分に理解するために提供される。
【００２７】
本明細書で使用される用語は、特定の実施形態を説明するためのものに過ぎず、本開示を限定することを意図するものではない。本明細書で使用されるように、単数形「１個」及び「該」は、文脈が他に明白に示さない限り、複数形も含むことが意図されている。また、「含む」及び／又は「……から製造される」という用語が本明細書に使用されるとき、述べられた特徴、全体、ステップ、動作、要素及び／又はコンポーネントの存在を指定するが、１つ以上の他の特徴、全体、ステップ、動作、要素、コンポーネント及び／又はそれらの群の存在又は追加を排除するものではないことを理解されたい。
【００２８】
第１、第２などの用語は、様々な要素を記述するために本明細書で使用され得るが、これらの要素は、これらの用語によって限定されるべきではないことが理解されるであろう。これらの用語は、ある要素を他の要素から区別するためにのみ使用される。したがって、以下で論じられる第１の要素、第１のコンポーネント、又は第１の部品は、本開示の教示から逸脱しない限り、第２の要素、第２のコンポーネント又は第２の部品と呼ばれてもよい。
【００２９】
特に定義しない限り、技術的及び科学的用語を含む、本明細書で使用される全ての用語の意味は、当業者によって一般的に理解されるものと同じである。一般的に使用される辞書に定義されるような用語は、関連技術及び本開示の文脈におけるそれらの意味と一致する意味を有すると解釈されるべきであり、本明細書で明白に定義しない限り、理想的又は過度に形式的な意味を有すると解釈されないことがさらに理解されるであろう。
【００３０】
当分野において、クエリプロセスに係るデータクエリ合計量の多少に応じて、クエリサービスを、クエリプロセスに係るデータクエリ合計量が所定の閾値よりも大きいクエリサービスであるＯＬＡＰスケールクエリサービスと、クエリプロセスに係るデータクエリ合計量が所定の閾値以下のクエリサービスであるＯＬＴＰスケールクエリサービスとの２つのカテゴリに区分し、該所定の閾値の取り得る値が実際の状況に応じて設定して調整することができる。ＯＬＡＰスケールクエリサービスは、クエリプロセスに大規模（一般的に、桁数が「万」に達する）のデータが含まれることを特徴付け、ＯＬＴＰスケールクエリサービスは、クエリプロセスに小規模データが含まれることを特徴付ける。
【００３１】
本開示において、構造化クエリ言語（Ｓｔｒｕｃｔｕｒｅｄ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ，ＳＱＬと略称される）を統合クエリ言語として、ＳＱＬはデータベースにアクセスして処理するための標準的なコンピュータ言語であり、機能が強くて、簡単で学習しやすい。ユーザがデータクエリを行う必要がある場合に、ユーザはクライアントプログラム（Ｃｌｉｅｎｔ  ＳＤＫ）にＳＱＬ言語でクエリリクエストを入力し、クライアントプログラムが該クエリリクエストをサーバーノードに送信する。以下の各実施形態において、言及される「ユーザ」とは、Ｃｌｉｅｎｔ  ＳＤＫによりクエリリクエストを入力するユーザを指す。
【００３２】
本開示に係るクエリ処理方法は、対応するクエリ処理システムに基づき、該クエリ処理システムは少なくともサーバーノード（Ｓｅｒｖｅｒ  Ｎｏｄｅ）、コーディネーターノード（Ｃｏｏｄｉｎａｔｏｒ  Ｎｏｄｅ）及びワーカーノード（Ｗｏｒｋｅｒ  Ｎｏｄｅ）を含む。
【００３３】
ここで、サーバーノードは、クエリリクエストを受信する入口であり、クエリリクエストに対応する論理実行プランを解析することと、場合によっては、論理実行プランを複数の論理実行サブプランに分割することとを担当し、さらに、リセットノードによって、コーディネーターノードから生成された物理実行プランに応じて、論理実行プランを対応するワーカーノードに送信することもできる。
【００３４】
コーディネーターノードはシステムにおけるサーバーノード及び全てのワーカーノードを管理し、各ワーカーノードの状態情報（例えば、ワーカーノードの現在負荷、余剰リソース、処理速度など）を有し、論理実行プランに基づいて、各ワーカーノードの現在負荷、余剰リソースなどの要素と結合して実際の物理実行プランを生成することができる。
【００３５】
ワーカーノードはサーバーノードによって送信される論理実行プラン／サブプランの実行を担当し、１つのワーカーノードが１つ又は複数の論理実行プラン／サブプランを処理することができる。ここで、ワーカーノードが受信した論理実行サブプランは、クエリプランである可能性があり、集合プランである可能性もあり、ワーカーノードが受信した論理実行サブプランがクエリプランである場合に、ワーカーノードは対応するクエリ動作を実行し、ワーカーノードが受信した論理実行サブプランが集合プランである場合に、該ワーカーノードはその下位ワーカーノード（該ワーカーノードの子ノード）がいずれもクエリ／集合動作を完了して対応するデータを報告した後に、さらに受信したデータを集合処理する。
【００３６】
当業者が本開示の技術的手段をより良く理解することを容易にするために、以下に具体例を参照して詳細に説明する。
【００３７】
図１は、本開示の実施形態に係るクエリ処理方法のフローチャートであり、図１に示すように、該クエリ処理方法はステップＳ１〜ステップＳ１３を含む。
【００３８】
ステップＳ１：サーバーノードによって、クエリリクエストを解析して対応する論理実行プランを生成する。
【００３９】
クエリリクエストは、ＳＱＬ言語で表されるＳＱＬクエリステートメントであり、ステップＳ１において、サーバーノードは、サーバーノード自体に予め記憶されているコマンドパーサ（Ｃｏｍｍａｎｄ  Ｐａｒｓｅｒ）によりＳＱＬクエリステートメントの構文正確性を検査して、ＳＱＬクエリステートメントの構文が正しいと検出した場合にＳＱＬクエリステートメントを解析して、システムが動作可能な内部フォーマットに変換して、論理実行プラン（Ｌｏｇｉｃａｌ  Ｐｌａｎ）を得、論理実行プランはツリー構造で表され、クエリツリー（Ｑｕｅｒｙ  Ｔｒｅｅ）とも呼ばれてもよく、該クエリリクエストを実行する際の処理論理ステップを特徴付ける。
【００４０】
論理実行プランには、クエリリクエストに関連付けられた各データソースのデータテーブル名、及びデータテーブルをクエリするためのクエリ条件（フィルタ条件とも呼ばれてもよい）が記録されている。
【００４１】
ステップＳ２：サーバーノードによって、論理実行プランがＯＬＡＰスケールクエリサービスに属するか又はＯＬＴＰスケールクエリサービスに属するかを判断する。
【００４２】
図２は、本開示におけるステップＳ２の具体的な実施フローチャートであり、図２に示すように、本開示において該クエリ処理システムは、ストレージノード（Ｓｔｏｒａｇｅ  Ｎｏｄｅ）をさらに含み、ストレージノードが全てのモノのインターネットサービスプロバイダと接続されることを担当し、モノのインターネットサービスプロバイダは、データソースとして、ストレージノードのリクエストに応じて対応するデータテーブルをストレージノードに提供することができ、ストレージノードは、各データソースのデータテーブルのデータ量をリアルタイムで監視する。
【００４３】
なお、本開示における「データ量」とは、データテーブルに含まれるデータ記録（一般的には、データテーブルにおける１行のデータは、１つのデータ記録を示す）の数を指す。
【００４４】
ワーカーノードは、ストレージノードによってデータソースから提供されるデータテーブルにアクセスすることができ、ワーカーノードが異なるデータソースから提供される異種データテーブルを同時にクエリする必要がある場合に、異なるデータソースのデータ構造の違いをマスクするために、ストレージノードが異なるデータソースから提供される異種データテーブルをリレーショナルデータベースにマッピングすることができる。
【００４５】
ステップＳ２は具体的にステップＳ２０１、Ｓ２０２及びＳ２０３を含む。
【００４６】
ステップＳ２０１：サーバーノードによって、論理実行プランに関連付けられた各データソースのデータ量をストレージノードに照会する。
【００４７】
ステップＳ２０１において、論理実行プランに関連付けられたデータソースのデータテーブルの数がｎであると仮定すると、ｉ番目のデータソースのデータテーブルにおけるデータ記録の数がＫｉ（ｎは１よりも大きい整数であり、ｋはｎ以下の正の整数である）である。
【００４８】
ステップＳ２０２：サーバーノードによって、ストレージノードからフィードバックされた、論理実行プランに関連付けられた各データソースのデータ量に基づいて、論理実行プランに対応するデータクエリ合計量を推定する。
【００４９】
ステップＳ２０２において、論理実行プランに関連付けられた各データソースのデータ量に基づいて、論理実行プランに対応するデータクエリ合計量を推定することができる。
【００５０】
代替的な技術的手段として、以下の式によりデータクエリ合計量Ｓを推定することができる。
【数１】
2020191067.tif 000003
【００５１】
なお、上記に例示された、論理実行プランに対応するデータクエリ合計量を推定するアルゴリズムは、本開示の代替的な技術的手段のみに過ぎず、本開示の技術的手段を限定するものではない。当業者にとっては、論理実行プランに関連付けられた各データソースのデータ量に基づいて、論理実行プランに対応するデータクエリ合計量を推定するために使用される任意のアルゴリズムが、本開示の保護範囲に含まれるべきであることを理解するであろう。具体的なアルゴリズムは、ここでは例示しない。
【００５２】
ステップＳ２０３：サーバーノードによって、データクエリ合計量と予め設定されたクエリ合計量とを比較する。
【００５３】
該予め設定されたクエリ合計量（即ち、上述の「所定の閾値」）は、実際のニーズに応じて設定して調整することができる。
【００５４】
ステップＳ２０３において、比較の結果から、データクエリ合計量が予め設定されたクエリ合計量よりも大きい（大規模データ）場合に、論理実行プランがＯＬＡＰスケールクエリサービスに属するとサーバーノードによって判定し、データクエリ合計量が予め設定されたクエリ合計量以下である（小規模データ）場合に、論理実行プランがＯＬＴＰスケールクエリサービスに属するとサーバーノードによって判定する。
【００５５】
ステップＳ２において、論理実行プランがＯＬＡＰスケールクエリサービスに属すると判定された場合に、ステップＳ３を実行し、ステップＳ３において、論理実行プランがＯＬＴＰスケールクエリサービスに属すると判定された場合に、ステップＳ９を実行する。
【００５６】
ステップＳ３：サーバーノードによって論理実行プランを複数の論理実行サブプランに分割して、分割された論理実行プランをコーディネーターノードに送信する。
【００５７】
論理実行プランがＯＬＡＰスケールクエリサービスに属するとサーバーノードによって判定された場合に、後続のクエリ速度を高めるために、超並列処理（Ｍａｓｓｉｖｅｌｙ  Ｐａｒａｌｌｅｌ  Ｐｒｏｃｅｓｓｉｎｇ，ＭＰＰと略称される）技術を用いて後続のクエリ処理を行う。
【００５８】
ステップＳ３において、サーバーノードは、予め設定された分割アルゴリズムに基づいて、論理実行プランを複数の論理実行サブプランに分割する。なお、本開示で使用される分割アルゴリズムは、従来のＭＰＰアーキテクチャにおいて通常使用される分割アルゴリズムであってもよく、一般的には、ＭＰＰの分割された各論理実行サブプランに対応するクエリ合計量が平均的なものである。
【００５９】
当業者に容易に理解させるために、以下に具体例を参照しながら詳細に説明する。
【００６０】
クエリシナリオは次の通りであり、クライアントが２０１９−０１−０１の日に全てのサーバデバイスのハートビートデータをクエリする必要があり、サーバデバイスのデバイス情報（デバイスｉｄ）がデバイス管理サービスプロバイダ（ｈｕｂと表記される）のｄｅｖｉｃｅテーブルに格納され、ｄｅｖｉｃｅテーブルのデータ量のデータレベルが概ね「万」レベルであり、各サーバデバイスのハートビートデータが時系列データベースサービスプロバイダ（ｔｓｄｂと表記される）のｈｅａｒｔｂｅａｔテーブルに格納され、ｈｅａｒｔｂｅａｔテーブルのデータ量のデータレベルが概ね「１０万」レベルであり、ｄｅｖｉｃｅテーブルとｈｅａｒｔｂｅａｔテーブルとがデバイスｉｄにより関連付けられている。
【００６１】
ユーザは、クエリする際に、Ｃｌｉｅｎｔ  ＳＤＫを介して以下のＳＱＬステートメントを入力することができ、
【表１】
2020191067.tif 000004
【００６２】
ここで、ｈｕｂ．ｄｅｖｉｃｅは、デバイス管理サービスプロバイダにおけるｄｅｖｉｃｅテーブル（ｄで表記されることもある）を表し、ｄ．ｉｄは、ｄｅｖｉｃｅテーブルにおけるデバイスｉｄを特徴付けるためのフィールドが「ｉｄ」であることを表し、ｈ．ｔｉｍｅｓｔａｍｐは、ｈｅａｒｔｂｅａｔテーブルにおけるタイムスタンプ（通常秒単位）を特徴付けるフィールドが「ｔｉｍｅｓｔａｍｐ」であることを表し、ｈ．ｄｅｖｉｃｅＩｄは、ｈｅａｒｔｂｅａｔテーブルにおけるデバイスｉｄを特徴付けるフィールドが「ｄｅｖｉｃｅＩｄ」であることを表し、ｄ．ｉｄ＝ｈ．ｄｅｖｉｃｅＩｄは、ｄｅｖｉｃｅテーブルにおけるフィールド「ｉｄ」をｈｅａｒｔｂｅａｔテーブルにおけるフィールド「ｄｅｖｉｃｅＩｄ」に関連付けることを表す。
【００６３】
ｈ．ｔｉｍｅｓｔａｍｐ  ｂｅｔｗｅｅｎ‘２０１９−０１−０１’ａｎｄ‘２０１９−０１−０２’は、タイムスタンプが２０１９年１月１日０時０分０秒から２０１９年１月２日０時０分０秒までのクエリ条件を表す。
【００６４】
以上の内容から分かるように、クエリリクエストには、今回のクエリに関連付けられたデータソース（及び対応するデータテーブル）及びクエリ条件が直接記録されている。
【００６５】
上記の例示において、ｄｅｖｉｃｅテーブルのデータ量のデータレベルが概ね「万」レベルであり、ｈｅａｒｔｂｅａｔテーブルのデータ量のデータレベルが概ね「１０万」レベルであることを考慮して、ステップＳ２により今回のクエリに係るデータクエリ合計量が「億」レベルであり、ＯＬＡＰスケールクエリサービスに属すると推定することができる。
【００６６】
従って、ステップＳ３において、論理実行プランを複数の論理実行サブプラン（論理実行サブプランのそれぞれは、実質的にはクエリツリーである）に分割する。代替的な分割案として、デバイスｉｄで論理実行プランを機械的に分割し、具体的には、論理実行プランを１００個の論理実行サブプランに分割し、Ｎ番目の論理実行サブプランは、デバイスｉｄを１００で割って余りを求め、余りがＮ（ただし、Ｎは１００以下の正の整数である）に等しい各サーバデバイス（即ち、ｈｕｂ．ｄｅｖｉｃｅ．ｉｄ％１００＝Ｎのサーバデバイス）の２０１９−０１−０１の日におけるハートビートデータを取得する。なお、上記１００個の論理実行サブプランがいずれもクエリプランである場合は、単なる例示的な役割を果たすものであり、本開示の技術的手段に制限を加えるものではない。
【００６７】
なお、論理実行プランを複数の論理実行サブプランに分割するプロセスにおいて、分割された論理実行サブプランは、クエリプランだけでなく集合プランであってもよく、詳細は後述する説明を参照することができる。
【００６８】
ステップＳ３において、論理実行プランが分割された後に、サーバーノードによって、全ての論理実行サブプランをパッケージ化して１つの完全な論理実行プランとしてコーディネーターノードに送信する。
【００６９】
ステップＳ４：コーディネーターノードによって、論理実行プランに対応する第１物理実行プランを生成してサーバーノードにフィードバックする。第１物理実行プランには各論理実行サブプランに対応するワーカーノードのノード情報が記録されている。
【００７０】
コーディネーターノードによって受信された論理実行プランは複数の論理実行サブプランを含むので、コーディネーターノードによって今回のクエリがＯＬＡＰスケールクエリサービスであることを識別することもできる。
【００７１】
ステップＳ４において、コーディネーターノードは、各ワーカーノードの現在負荷、余剰リソース、処理速度などの監視情報に基づいて、最小コストアルゴリズムに基づいて論理実行サブプランのそれぞれのために対応するワーカーノードを配置する。なお、最小コストアルゴリズムに従って論理実行サブプランに対応するワーカーノードを割り当てる具体的なプロセスは、当分野における従来技術に属するものであり、ここでは詳細に説明しない。
【００７２】
コーディネーターノードは、各論理実行サブプランと、対応するワーカーノードのノードＩＰアドレスとを作成して、第１物理実行プランを生成して第１物理実行プランをサーバーノードにフィードバックする。
【００７３】
なお、論理実行サブプランにワーカーノードを割り当てるプロセスにおいて、異なる論理実行サブプランが異なるワーカーノードに割り当てられることも、同じワーカーノードに割り当てられることも可能である。
【００７４】
ステップＳ５：サーバーノードによって、第１物理実行プランに基づいて各論理実行サブプランを対応するワーカーノードに割り当てる。
【００７５】
ステップＳ６：ワーカーノードによって、対応する論理実行サブプランを処理してクエリサブ結果を得、処理サブ結果をレイヤーごとに報告する。
【００７６】
図３は、本開示におけるステップＳ６の具体的な実施フローチャートであり、図３に示すように、ステップＳ６はステップＳ６０１〜ステップＳ６０４を含む。
【００７７】
ステップＳ６０１：ワーカーノード自体によって受信された論理実行サブプランがクエリプランに属するか又は集合プランに属するかをワーカーノードによって検出する。
【００７８】
ステップＳ６０１において、ワーカーノード自体によって受信された論理実行サブプランがクエリプランに属すると検出された場合に、ステップＳ６０２を実行し、ワーカーノード自体によって受信された論理実行サブプランが集合プランに属すると検出された場合に、ステップＳ６０４を実行する。
【００７９】
ステップＳ６０２：論理実行サブプランについてのデータベースをストレージノードによって作成するために、ワーカーノードによって論理実行サブプランをストレージノードに転送する。
【００８０】
ステップＳ６０２において、ワーカーノードによって論理実行サブプランをストレージノードに転送し、ストレージノードは、受信された論理実行サブプランに基づいて、対応するデータソースからデータテーブルを取得して、論理実行サブプランについてのデータベースを形成する。
【００８１】
ステップＳ６０３：ストレージノードによって作成された論理実行サブプランについてのデータベースにおいて、対応するクエリ動作をワーカーノードによって実行して、対応するクエリサブ結果を得る。
【００８２】
ステップＳ６０４：ワーカーノードによって、下位ワーカーノードから報告されるクエリサブ結果を受信して集合処理を行う。
【００８３】
なお、ワーカーノードによって受信された論理実行サブプランが集合プランに属する場合に、該ワーカーノードは必ず下位ワーカーノード（当該ワーカーノードの子ノードとも呼ばれる）を有する。
【００８４】
ステップＳ６０４において、集合プランを実行するワーカーノードの全ての下位ワーカーノードが、対応する論理実行サブプランを実行してデータの報告を完了した後に、集合プランを実行するワーカーノードによって、受信された全てのデータを集合処理して、集合処理により得られたデータを上位へ引き続き報告する。
【００８５】
ステップＳ６０２とステップＳ６０３との間にステップＳ６０２ａをさらに含む。
ステップＳ６０２ａ：論理実行サブプランについてのデータベースをストレージノードによって作成する。
【００８６】
図４は、本開示におけるステップＳ６０２ａの具体的な実施フローチャートであり、図４に示すように、ステップＳ６０２ａを実施するための代替的な実施形態として、ステップＳ６０２ａはＳ６０２１を含む。
Ｓ６０２１：ストレージノードによって、受信された論理実行サブプランに基づいて、論理実行サブプランに関連付けられたデータソースから提供されたデータテーブルを取得する。
【００８７】
図５は、本開示におけるステップＳ６０２１の具体的な実施フローチャートであり、図５に示すように、ステップＳ６０２１を実施するための好ましい実施形態として、ステップＳ６０２１は、Ｓ６０２１１及びステップＳ６０２１２を含む。
ステップＳ６０２１１：論理実行サブプランに関連付けられたデータソースをストレージノードによって特定する。
ステップＳ６０２１２：予め記憶されている対応関係テーブルから、論理実行サブプランに関連付けられた各データソースに対応する推奨処理フィールドを、ストレージノードによって特定する。対応関係テーブルには異なるデータソース及びそれらに対応する推奨処理フィールドが記録されている。
【００８８】
実際の使用中に、異なるデータソース（モノのインターネットサービスプロバイダ）自体が、異なるクエリフィールドに対して異なるクエリパフォーマンスを示すこと（これは、各サービスプロバイダ自体の特別なサービスシナリオによって決定される）を考慮し、即ち、ある具体的なデータソースについて、該データソースは、ある１つ又は複数のクエリフィールドに対して優れたクエリパフォーマンスを示すことがあるので、該データソースが優れたクエリパフォーマンスを示すことができるクエリフィールドを、該データソースに対応する推奨処理フィールドとして設定することができる。例えば、時系列データベースサービスプロバイダ自体は、クエリフィールドが「ｔｉｍｅｓｔａｍｐ」であるクエリ条件に対して優れたクエリパフォーマンスを有することを考慮し、データソースが時系列データベースサービスプロバイダである推奨処理フィールドを「ｔｉｍｅｓｔａｍｐ」に設定することができる。データソースに対して対応する推奨処理フィールドを構成することは、手動で予め作成して各データソースに対応する推奨処理フィールドを、ストレージノードに予め格納された対応関係テーブルに記録することができる。
【００８９】
当業者が本開示の技術的手段をより良く理解することを容易にするために、以下、上述のクライアントが２０１９−０１−０１の日における全てのサーバデバイスのハートビートデータをクエリする必要があるシナリオについて、引き続き例示的に説明する。ここで、デバイス管理サービスプロバイダには対応する推奨処理フィールドが存在しておらず、時系列データベースサービスプロバイダに対応する推奨処理フィールドは「ｔｉｍｅｓｔａｍｐ」であるとする。
【００９０】
Ｎ番目の論理実行サブプランはＮ番目のワーカーノードに割り当てられ、デバイスｉｄがｈｕｂ．ｄｅｖｉｃｅ．ｉｄ％１００＝Ｎを満たす各サーバデバイスの２０１９−０１−０１の日におけるハートビートデータを取得することを、Ｎ番目のワーカーノードによって実行する必要がある。
【００９１】
このときに、該Ｎ番目の論理実行サブプランに関連付けられたデータソースは、１）デバイス管理サービスプロバイダと、２）時系列データベースサービスプロバイダとの２つであり、Ｎ番目の論理実行サブプランに対応するクエリ条件は、１）ｈｕｂ．ｄｅｖｉｃｅ．ｉｄ％１００＝Ｎと、２）ｈ．ｔｉｍｅｓｔａｍｐ  ｂｅｔｗｅｅｎ  ‘２０１９−０１−０１’ａｎｄ  ‘２０１９−０１−０２’との２つである。
【００９２】
ステップ６０２１２において、Ｎ番目の論理実行サブプランに関連付けられたデバイス管理サービスプロバイダに対応する推奨処理フィールドが空であり、Ｎ番目の論理実行サブプランに関連付けられた時系列データベースサービスプロバイダに対応する推奨処理フィールドが「ｔｉｍｅｓｔａｍｐ」であると特定することができる。
【００９３】
論理実行サブプランに関連付けられたデータソースのそれぞれについて、下記ステップＳ６０２１３を実行する。
【００９４】
ステップＳ６０２１３：該データソースに対応する推奨処理フィールドが論理実行サブプランに含まれるクエリ条件のクエリフィールドであるか否かをストレージノードによって判断する。
【００９５】
ステップＳ６０２１３において、該データソースに対応する推奨処理フィールドが論理実行サブプランに含まれるクエリ条件のクエリフィールドであると判定された場合に、ステップＳ６０２１４を実行し、該データソースに対応するのが論理実行サブプランに含まれるクエリ条件のクエリフィールドではないと判定された場合に、ステップＳ６０２１５を実行する。
【００９６】
ステップＳ６０２１４：該データソースが受信されたクエリ条件に応じて該データソース自体に記憶されているデータテーブルを選別して選別済みデータテーブルをストレージノードにフィードバックするために、論理実行サブプランにおける該データソースに対応する推奨処理フィールドのクエリ条件を、ストレージノードによって該データソースに送信する。
【００９７】
ステップＳ６０２１５：該データソースがデータソース自体のデータテーブルをフィードバックするために、ストレージノードによって該データソースにデータ取得要求を送信する。
【００９８】
前記ステップＳ６０２１３〜ステップＳ６０２１５について、Ｎ番目の論理実行サブプランを処理するプロセスを例にとって、例示的に説明する。
【００９９】
データソースがデバイス管理サービスプロバイダである場合について、対応する推奨処理フィールドが空であるため、ステップＳ６０２１３において、デバイス管理サービスプロバイダに対応する推奨処理フィールドがＮ番目の論理実行サブプランに含まれるクエリ条件のクエリフィールドではないと判定されるので、ステップＳ６０２１３の終了後に、ストレージノードによってデバイス管理サービスプロバイダにデータ取得要求を送信し、デバイス管理サービスプロバイダが、ｄｅｖｉｃｅテーブルの全データをｄｅｖｉｃｅテーブルに送信するステップＳ６０２１５を実行する。
【０１００】
データソースが時系列データベースサービスプロバイダである場合について、その対応する推奨処理フィールドがｔｉｍｅｓｔａｍｐであり、Ｎ番目の論理実行サブプランに含まれるクエリ条件においてクエリフィールドのｔｉｍｅｓｔａｍｐが存在するので、ステップＳ６０２１３において、デバイス管理サービスプロバイダに対応する推奨処理フィールドがＮ番目の論理実行サブプランに含まれるクエリ条件のクエリフィールドであると判定されるので、ステップＳ６０２１３の終了後に、クエリ条件のｈ．ｔｉｍｅｓｔａｍｐ  ｂｅｔｗｅｅｎ‘２０１９−０１−０１’ａｎｄ‘２０１９−０１−０２’をストレージノードによって時系列データベースサービスプロバイダに送信し、時系列データベースサービスプロバイダは、該クエリ条件に基づいてｈｅａｒｔｂｅａｔテーブルを選別して、ｔｉｍｅｓｔａｍｐの値が２０１９年１月１日０時０分０秒から２０１９年１月２日０時０分０秒を満たす記録を選別して、選別された記録をストレージノードにフィードバックするステップＳ６０２１４を実行する。
【０１０１】
Ｓ６０２２：論理実行サブプランに関連付けられたデータソースの数が１よりも大きいか否かをストレージノードによって判断する。
【０１０２】
ステップＳ６０２２において、論理実行サブプランに関連付けられたデータソースの数が１よりも大きいと判定された場合に、ステップＳ６０２３を実行し、論理実行サブプランに関連付けられたデータソースの数が１であると判定された場合に、ステップＳ６０２４を実行する。
【０１０３】
ステップＳ６０２３：論理実行サブプランに関連付けられた各データソースから提供されたデータテーブルを、ストレージノードによってリレーショナルデータベースにマッピングする。
【０１０４】
ステップＳ６０２３により、異なるデータソース間のデータ構造の違いをマスクすることができる。
【０１０５】
前記ステップＳ６０２２及びステップＳ６０２３について、Ｎ番目の論理実行サブプランを処理するプロセスを例にとる。
【０１０６】
Ｎ番目の論理実行サブプランに関連付けられたデータソースの数が２つであるので、ステップＳ６０２２において、Ｎ番目の論理実行サブプランに関連付けられたデータソースの数が１よりも大きいと判定され、その後ステップＳ６０２３を実行する。ステップＳ６０２３において、ストレージノードによってデータの選別が行われていないｄｅｖｉｃｅテーブルと、データの選別が行われたｈｅａｒｔｂｅａｔテーブルとを１つのリレーショナルデータベースにマッピングして、Ｎ番目のワーカーノードによる該リレーショナルデータベースに基づいた対応するクエリプランの実行に供する。
【０１０７】
ステップＳ６０２４：論理実行サブプランに関連付けられた１つのデータソースから提供されたデータテーブルをデータベースとする。
【０１０８】
論理実行サブプランに関連付けられたデータソースの数が１つである場合に、該データソースから提供されたデータテーブルを直接データベースとして、ワーカーノードによる対応するクエリプランの実行に供する。
【０１０９】
ステップＳ７：サーバーノードによって、受信された処理サブ結果を集計して、最終的なクエリ結果を生成する。
【０１１０】
サーバーノードによって、ワーカーノード（１つ又は複数であってもよく、論理実行プランに対応するツリー構造で決定される）から報告される処理サブ結果を集計して、最終的なクエリ結果を生成する。
【０１１１】
ステップＳ８：サーバーノードによって、集計により得られた最終的なクエリ結果を対応するユーザにフィードバックする。
【０１１２】
ステップＳ９：サーバーノードによって論理実行プランをコーディネーターノードに送信する。
【０１１３】
サーバーノードによって論理実行プランがＯＬＴＰスケールクエリサービスに属すると判定された場合に、データクエリ合計量が小さいことを示し、後続で通常のクエリフローに従って行ってもよい。
【０１１４】
ステップＳ１０：コーディネーターノードによって、論理実行プランに対応する第２物理実行プランを生成してサーバーノードにフィードバックし、第２物理実行プランには論理実行プランに対応するワーカーノードのノード情報が記録されている。
【０１１５】
物理実行プランを生成するプロセスは、上述の説明を参照してもよく、ここでは詳しい説明を省略する。ステップＳ１０において、論理実行プランが完全なタスクとして分割されていないので、第２物理実行プランには該論理実行プランを実行する１つのワーカーノードのノード情報のみが記録されている。
【０１１６】
ステップＳ１１：サーバーノードによって、第２物理実行プランに基づいて論理実行プランを対応するワーカーノードに割り当てる。
【０１１７】
ステップＳ１２：ワーカーノードによって、対応する論理実行プランを処理して最終的なクエリ結果を得、最終的なクエリ結果をサーバーノードにアップロードする。
【０１１８】
ステップＳ１２において、ワーカーノードによって処理される論理実行プランは必ずクエリプランであり、該ワーカーノードから得られた結果が最終的なクエリ結果であり、後続でサーバーノードによる集計が不要である。
【０１１９】
なお、コーディネーターノードによって、論理実行プランに対応する第２物理実行プランを生成する際に、データクエリ合計量が相対的に小さいので、サーバーノードに余剰リソースがある場合に、サーバーノードをワーカーノードとして論理実行プランを実行することができる。
【０１２０】
ステップＳ１３：サーバーノードによって、受信された最終的なクエリ結果を対応するユーザにフィードバックする。
【０１２１】
本開示の実施形態は、クエリリクエストに対応するデータスケールに基づいて異なる処理プロセスを選択することができ、ＯＬＡＰスケールクエリサービスとＯＬＴＰスケールクエリサービスとの両方をサポートすることができ、モノのインターネット分野におけるクエリ要件を満たすことができるクエリ処理方法を提供する。
【０１２２】
さらに、複数のデータソース間でのユニオンクエリについて、本開示では、異なるデータソースから提供される異なるデータテーブルをリレーショナルデータベースの形にマッピングすることができるストレージノードを設けることによって、サービス間でのユニオンクエリを可能にする。
【０１２３】
また、ユーザにとっては、ＳＱＬ言語を利用するだけで、従来のリレーショナルデータベースにアクセスすると同様に、複数のデータソースにわたってワンストップでデータクエリを行うことができる。
【０１２４】
図６は、本開示の実施形態に係る他のクエリ処理方法のフローチャートであり、図６に示すように、図１に示される実施形態とは異なり、本実施形態は、上述の実施形態におけるステップＳ１〜ステップＳ１３を含むことに加えて、ステップＳ０１及びステップＳ０２をさらに含み、ステップＳ１〜ステップＳ１３についての説明は、上述の内容を参照してもよく、以下、ステップＳ０１及びステップＳ０２のみについて詳細に説明する。
【０１２５】
ステップＳ０１：メタ情報管理ノードによってユーザ識別情報の有効性を検証する。
【０１２６】
ステップＳ０１において、ユーザ識別情報が有効性検証に成功した場合に、ステップＳ１を実行し、ユーザ識別情報が有効性検証に失敗した場合に、ステップＳ０２を実行する。
【０１２７】
ステップＳ０２：メタ情報管理ノードによって識別情報の検証失敗情報をユーザにフィードバックする。
【０１２８】
本実施形態において、メタ情報管理ノードによってユーザ識別情報の有効性検証を実現することができる。
【０１２９】
図７ａは、本開示の実施形態に係るクエリ処理システムのブロック構成図であり、図７ｂ〜図７ｆはそれぞれ、本開示におけるサーバーノード、コーディネーターノード、ワーカーノード、ストレージノード及びメタ情報管理ノードのブロック構成図であり、図７ａ〜図７ｆに示すように、該クエリ処理システムは、上述の実施形態におけるクエリ処理方法を実現するように構成され、サーバーノード１、コーディネーターノード２及び複数のワーカーノード３を含み、ここで、サーバーノード１は、解析モジュール１０１、第１判断モジュール１０２、分割モジュール１０３、第１割り当てモジュール１０４、集計モジュール１０５及び第１フィードバックモジュール１０６を含み、コーディネーターノード２は、第１生成モジュール２０１を含み、ワーカーノード３は、第１処理モジュール３０１を含む。
【０１３０】
解析モジュール１０１は、クエリリクエストを解析して対応する論理実行プランを生成するように構成される。
【０１３１】
第１判断モジュール１０２は、論理実行プランがＯＬＡＰスケールクエリサービスに属するか又はＯＬＴＰスケールクエリサービスに属するかを判断するように構成される。
【０１３２】
分割モジュール１０３は、第１判断モジュール１０２によって論理実行プランがＯＬＡＰスケールクエリサービスに属すると判定された場合に、論理実行プランを複数の論理実行サブプランに分割し、分割済みの論理実行プランをコーディネーターノード２に送信するように構成される。
【０１３３】
第１生成モジュール２０１は、分割モジュール１０３から受信された論理実行プランに対応する第１物理実行プランを生成して、サーバーノード１にフィードバックするように構成され、第１物理実行プランには各論理実行サブプランに対応するワーカーノード３のノード情報が記録されている。
【０１３４】
第１割り当てモジュール１０４は、第１物理実行プランに基づいて、各論理実行サブプランを対応するワーカーノード３に割り当てるように構成される。
【０１３５】
第１処理モジュール３０１は、対応する論理実行サブプランを処理して、クエリサブ結果を得、処理サブ結果をレイヤーごとに報告するように構成される。
【０１３６】
集計モジュール１０５は、受信された処理サブ結果を集計して、最終的なクエリ結果を生成するように構成される。
【０１３７】
第１フィードバックモジュール１０６は、最終的なクエリ結果を対応するユーザにフィードバックするように構成される。
【０１３８】
いくつかの実施形態において、サーバーノード１は、送信モジュール１０７、第２割り当てモジュール１０８及び第２フィードバックモジュール１０９をさらに含み、コーディネーターノード２は、第２生成モジュール２０２をさらに含み、ワーカーノード３は、第２処理モジュール３０２をさらに含む。
【０１３９】
送信モジュール１０７は、第１判断モジュール１０２によって論理実行プランがＯＬＴＰスケールクエリサービスに属すると判定された場合に、論理実行プランをコーディネーターノード２に送信するように構成される。
【０１４０】
第２生成モジュール２０２は、送信モジュール１０７から受信された論理実行プランに対応する第２物理実行プランを生成して、サーバーノード１にフィードバックするように構成され、第２物理実行プランには論理実行プランに対応するワーカーノード３のノード情報が記録されている。
【０１４１】
第２割り当てモジュール１０８は、第２物理実行プランに基づいて、論理実行プランを対応するワーカーノード３に割り当てるように構成される。
【０１４２】
第２処理モジュール３０２は、対応する論理実行プランを処理して、最終的なクエリ結果を得、最終的なクエリ結果をサーバーノード１にアップロードするように構成される。
【０１４３】
第２フィードバックモジュール１０９は、受信された最終的なクエリ結果を対応するユーザにフィードバックするように構成される。
【０１４４】
いくつかの実施形態において、クエリ処理システムは、各データソースのデータ量情報が予め記憶されているストレージモジュール４０１を含むストレージノード４をさらに備える。
【０１４５】
図８は、本開示における第１判断モジュール１０２のブロック構成図であり、図８に示すように、第１判断モジュール１０２は、照会ユニット１０２１、推定ユニット１０２２及び比較ユニット１０２３を含む。
【０１４６】
照会ユニット１０２１は、論理実行プランに関連付けられた各データソースのデータ量をストレージノード４に照会するように構成される。
【０１４７】
推定ユニット１０２２は、ストレージノード４からフィードバックされた、論理実行プランに関連付けられた各データソースのデータ量に基づいて、論理実行プランに対応するデータクエリ合計量を推定するように構成される。
【０１４８】
比較ユニット１０２３は、データクエリ合計量と予め設定されたクエリ合計量とを比較するように構成される。
【０１４９】
比較ユニット１０２３による結果、データクエリ合計量が予め設定されたクエリ合計量よりも大きい場合に、第１判断モジュール１０２によって論理実行プランがＯＬＡＰスケールクエリサービスに属すると判定され、データクエリ合計量が予め設定されたクエリ合計量以下である場合に、第１判断モジュール１０２によって論理実行プランがＯＬＴＰスケールクエリサービスに属すると判定される。
【０１５０】
図９は、本開示における第１処理モジュールのブロック構成図であり、図９に示すように、いくつかの実施形態において、第１処理モジュール３０１は、第１検出ユニット３０１１、転送ユニット３０１２及びクエリユニット３０１３を含み、クエリ処理システムは、作成モジュール４０２を含むストレージノード４をさらに備える。
【０１５１】
ここで、第１検出ユニット３０１１は、ワーカーノード３自体が受信した論理実行サブプランがクエリプランに属するか又は集合プランに属するかを検出するように構成される。
【０１５２】
転送ユニット３０１２は、第１検出ユニット３０１１によってワーカーノード３自体が受信した論理実行サブプランがクエリプランに属すると検出された場合に、ストレージノード４による論理実行サブプランについてのデータベースの作成に供するために、論理実行サブプランをストレージノード４に転送するように構成される。
【０１５３】
クエリユニット３０１３は、ストレージノード４によって作成された論理実行サブプランについてのデータベースにおいて対応するクエリ動作を実行して、対応するクエリサブ結果を得るように構成される。
【０１５４】
作成モジュール４０２は、ストレージノード４がワーカーノード３から送信された論理実行サブプランを受信した場合に、論理実行サブプランについてのデータベースを作成するように構成される。
【０１５５】
引き続き図９を参照して、いくつかの実施形態において、第１処理モジュール３０１は集合ユニット３０１４をさらに含み、集合ユニット３０１４は、第１検出ユニット３０１１によってワーカーノード３自体が受信した論理実行サブプランが集合プランに属すると検出された場合に、下位ワーカーノード３から報告されるクエリサブ結果を受信して、集合処理を行うように構成される。
【０１５６】
図１０は、本開示における作成モジュールのブロック構成図であり、作成モジュール４０２は、図１０に示すように、取得ユニット４０２１、判断ユニット４０２２及び処理ユニット４０２３を含む。
【０１５７】
ここで、取得ユニット４０２１は、受信された論理実行サブプランに基づいて、論理実行サブプランに関連付けられたデータソースから提供されたデータテーブルを取得するように構成される。
【０１５８】
判断ユニット４０２２は、論理実行サブプランに関連付けられたデータソースの数が１よりも大きいか否かを判断するように構成される。
【０１５９】
処理ユニット４０２３は、判断ユニット４０２２によって論理実行サブプランに関連付けられたデータソースの数が１よりも大きいと判定された場合に、論理実行サブプランに関連付けられた各データソースから提供されるデータテーブルをリレーショナルデータベースにマッピングするように構成されるとともに、判断ユニット４０２２によって論理実行サブプランに関連付けられたデータソースの数が１であると判定された場合に、論理実行サブプランに関連付けられた１つのデータソースから提供されたデータテーブルをデータベースとするように構成される。
【０１６０】
図１１は、本開示における取得ユニットのブロック構成図であり、図１１に示すように、いくつかの実施形態において、取得ユニット４０２１は、第１特定サブユニット４０２１１、第２特定サブユニット４０２１２、判断サブユニット４０２１３、第１送信サブユニット４０２１４及び第２送信サブユニット４０２１５を含む。
【０１６１】
第１特定サブユニット４０２１１は、論理実行サブプランに関連付けられたデータソースを特定するように構成される。
【０１６２】
第２特定サブユニット４０２１２は、予め記憶されている対応関係テーブルから論理実行サブプランに関連付けられた各データソースに対応する推奨処理フィールドを特定するように構成され、対応関係テーブルには異なるデータソース及びそれらに対応する推奨処理フィールドが記録されている。
【０１６３】
判断サブユニット４０２１３は、論理実行サブプランに関連付けられたデータソースのそれぞれについて、該データソースに対応する推奨処理フィールドが論理実行サブプランに含まれるクエリ条件のクエリフィールドであるか否かを判断するように構成される。
【０１６４】
第１送信サブユニット４０２１４は、判断サブユニット４０２１３によって該データソースに対応する推奨処理フィールドが論理実行サブプランに含まれるクエリ条件のクエリフィールドであると判定された場合に、該データソースが受信されたクエリ条件に基づいて該データソース自体に記憶されているデータテーブルを選別して選別済みデータテーブルをストレージノード４にフィードバックするために、論理実行サブプランにおける該データソースに対応する推奨処理フィールドのクエリ条件を該データソースに送信するように構成される。
【０１６５】
第２送信サブユニット４０２１５は、判断サブユニット４０２１３によって該データソースに対応するのが論理実行サブプランに含まれるクエリ条件のクエリフィールドではないと判定された場合に、該データソースが該データソース自体のデータテーブルをフィードバックするために、該データソースにデータ取得要求を送信するように構成される。
【０１６６】
図７ｆを参照して、いくつかの実施形態において、クエリ処理システムは、検証モジュール５０１及び第３フィードバックモジュール５０２を含むメタ情報管理ノード５をさらに備える。ここで、検証モジュール５０１は、ユーザ識別情報の有効性を検証するように構成され、第３フィードバックモジュール５０２は、ユーザ識別情報が有効性検証に失敗した場合に、メタ情報管理ノード５によって識別情報の検証失敗情報をユーザにフィードバックするように構成される。
【０１６７】
この場合に、解析モジュール１０１は、具体的にユーザ識別情報が有効性検証に成功した場合に、クエリリクエストを解析して対応する論理実行プランを生成するように構成される。
【０１６８】
上記の各モジュール、ユニット、サブユニットの説明については、クエリ処理方法において各ステップに関する上述の説明を参照してもよく、ここで詳細に説明しない。
【０１６９】
本開示の実施形態はさらに、１つ又は複数のプロセッサと、１つ又は複数のプログラムが格納されている記憶装置と、を含むサーバであって、前記１つ又は複数のプログラムが前記１つ又は複数のプロセッサによって実行される場合に、前記１つ又は複数のプロセッサに上述の実施形態に係るクエリ処理方法を実現させるサーバを提供している。
【０１７０】
本開示の実施形態は、コンピュータプログラムが格納されているコンピュータ可読記憶媒体であって、該コンピュータプログラムが実行される場合に、上述の実施形態に係るクエリ処理方法を実現するコンピュータ可読記憶媒体をさらに提供している。
【０１７１】
当業者は、上記で開示された方法におけるステップ、装置における機能ブロック／ユニットの全て又は一部が、ソフトウェア、ファームウェア、ハードウェア、及びそれらの適切な組み合わせとして実装され得ることを理解されるであろう。ハードウェアの実施形態において、上記の説明において言及された機能モジュール／ユニット間の区分は、必ずしも物理的な構成の区分に対応するとは限らず、例えば、１つの物理的コンポーネントが複数の機能を有してもよく、又は、１つの機能又はステップが複数の物理的コンポーネントによって協力して実行されてもよい。いくつかの物理的コンポーネント又は全ての物理的コンポーネントは、中央処理装置、デジタル信号処理装置、又はマイクロプロセッサなどのプロセッサによって実行されるソフトウェアとして、又はハードウェアとして、又は特定用途向け集積回路などの集積回路として実装されてもよい。そのようなソフトウェアは、コンピュータ記憶媒体（又は非一時的媒体）及び通信媒体（又は一時的媒体）を含むことができるコンピュータ可読媒体に分散されてもよい。当業者に周知のように、コンピュータ記憶媒体という用語は、コンピュータ可読命令、データ構造、プログラムモジュール、又は他のデータなどの情報を記憶するための任意の方法又は技術において実装される、揮発性及び不揮発性の、リムーバブル及び非リムーバブルの媒体を含む。コンピュータ記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ若しくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）若しくは他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ若しくは他の磁気記憶デバイス、又は所望の情報を記憶するために使用されることが可能であって、コンピュータによってアクセスされることが可能な任意の他の媒体を含むが、これらに限定されない。さらに、通信媒体は通常、コンピュータ可読命令、データ構造、プログラムモジュール、又は搬送波もしくは他の転送機構などの変調データ信号における他のデータを含み、任意の情報配信媒体を含んでもよいことが当業者に知られている。
【０１７２】
本明細書に例示的な実施形態が開示されており、特定の用語が用いられているが、それらは単に一般的な例示的な意味として解釈されるべきであり、限定することを意図しない。いくつかの例において、特定の実施形態に合わせて説明される特徴、特性及び／又は要素は、特に明記されない限り、単独で使用されてもよく、又は他の実施形態に合わせて説明される特徴、特性及び／又は要素と組み合わせて使用されてもよいことは、当業者には明らかであろう。したがって、当業者は、添付の特許請求の範囲によって示される本開示の範囲から逸脱することなく、様々な形態及び詳細における変更を行うことができることを理解するであろう。
【図１】
2020191067.tif 000005
【図２】
2020191067.tif 000006
【図３】
2020191067.tif 000007
【図４】
2020191067.tif 000008
【図５】
2020191067.tif 000009
【図６】
2020191067.tif 000010
【図７ａ】
2020191067.tif 000011
【図７ｂ】
2020191067.tif 000012
【図７ｃ】
2020191067.tif 000013
【図７ｄ】
2020191067.tif 000014
【図７ｅ】
2020191067.tif 000015
【図７ｆ】
2020191067.tif 000016
【図８】
2020191067.tif 000017
【図９】
2020191067.tif 000018
【図１０】
2020191067.tif 000019
【図１１】
2020191067.tif 000020
【手続補正書】
【提出日】令和2年3月5日(2020.3.5)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
サーバーノードによって、クエリリクエストを解析して対応する論理実行プランを生成するステップと、
前記サーバーノードによって、前記論理実行プランがＯＬＡＰスケールクエリサービスに属するか又はＯＬＴＰスケールクエリサービスに属するかを判断するステップと、
前記論理実行プランがＯＬＡＰスケールクエリサービスに属すると判定された場合に、前記サーバーノードによって前記論理実行プランを複数の論理実行サブプランに分割して、分割された前記論理実行プランをコーディネーターノードに送信するステップと、
前記コーディネーターノードによって、前記論理実行プランに対応する第１物理実行プランを生成して前記サーバーノードにフィードバックするステップであって、前記第１物理実行プランには各前記論理実行サブプランに対応するワーカーノードのノード情報が記録されているステップと、
前記サーバーノードによって、前記第１物理実行プランに基づいて各前記論理実行サブプランを対応するワーカーノードに割り当てるステップと、
前記ワーカーノードによって、対応する論理実行サブプランを処理してクエリサブ結果を得、前記処理サブ結果をレイヤーごとに報告するステップと、
前記サーバーノードによって、受信された処理サブ結果を集計して、最終的なクエリ結果を生成して、前記最終的なクエリ結果をユーザにフィードバックするステップと、を含むことを特徴とするクエリ処理方法。
【請求項２】
前記論理実行プランがＯＬＴＰスケールクエリサービスに属すると判定された場合に、前記サーバーノードによって前記論理実行プランをコーディネーターノードに送信し、
前記コーディネーターノードによって、前記論理実行プランに対応する第２物理実行プランを生成して前記サーバーノードにフィードバックし、前記第２物理実行プランには前記論理実行プランに対応するワーカーノードのノード情報が記録されており、
前記サーバーノードによって、前記第２物理実行プランに基づいて前記論理実行プランを対応するワーカーノードに割り当て、
前記ワーカーノードによって、対応する前記論理実行プランを処理して最終的なクエリ結果を得、前記最終的なクエリ結果を前記サーバーノードにアップロードし、
前記サーバーノードによって、受信された前記最終的なクエリ結果をユーザにフィードバックすることを特徴とする請求項１に記載のクエリ処理方法。
【請求項３】
サーバーノードによって、前記論理実行プランがＯＬＡＰスケールクエリサービスに属するか又はＯＬＴＰスケールクエリサービスに属するかを判断するステップは、
前記サーバーノードによって、前記論理実行プランに関連付けられた各データソースのデータ量をストレージノードに照会することと、
前記サーバーノードによって、前記ストレージノードからフィードバックされた、前記論理実行プランに関連付けられた各データソースのデータ量に基づいて、前記論理実行プランに対応するデータクエリ合計量を推定することと、
前記サーバーノードによって、前記データクエリ合計量と予め設定されたクエリ合計量とを比較することと、
比較の結果、前記データクエリ合計量が前記予め設定されたクエリ合計量よりも大きい場合に、前記サーバーノードによって、前記論理実行プランがＯＬＡＰスケールクエリサービスに属すると判定し、前記データクエリ合計量が前記予め設定されたクエリ合計量以下である場合に、前記サーバーノードによって、前記論理実行プランがＯＬＴＰスケールクエリサービスに属すると判定することと、を含むことを特徴とする請求項１又は２に記載のクエリ処理方法。
【請求項４】
前記ワーカーノードによって対応する論理実行サブプランを処理するステップは、
ワーカーノード自体によって受信された論理実行サブプランがクエリプランに属するか又は集合プランに属するかを前記ワーカーノードによって検出することと、
ワーカーノード自体によって受信された論理実行サブプランがクエリプランに属すると検出された場合に、前記ストレージノードによって前記論理実行サブプランについてのデータベースを作成するために、前記ワーカーノードによって前記論理実行サブプランをストレージノードに転送することと、
前記ストレージノードによって作成された前記論理実行サブプランについてのデータベースにおいて、対応するクエリ動作を前記ワーカーノードによって実行して、対応するクエリサブ結果を得ることとを含み、
前記ストレージノードがワーカーノードによって送信された論理実行サブプランを受信した場合に、前記論理実行サブプランについてのデータベースを前記ストレージノードによって作成することをさらに含むことを特徴とする請求項１又は２に記載のクエリ処理方法。
【請求項５】
ワーカーノード自体によって受信された論理実行サブプランが集合プランに属すると検出された場合に、前記ワーカーノードによって下位ワーカーノードから報告されるクエリサブ結果を受信して集合処理を行うことを特徴とする請求項４に記載のクエリ処理方法。
【請求項６】
前記ストレージノードによって前記論理実行サブプランについてのデータベースを作成するステップは、
前記ストレージノードによって、受信された前記論理実行サブプランに基づいて、前記論理実行サブプランに関連付けられたデータソースから提供されたデータテーブルを取得することと、
前記論理実行サブプランに関連付けられたデータソースの数が１よりも大きいか否かを前記ストレージノードによって判断することと、
前記論理実行サブプランに関連付けられたデータソースの数が１よりも大きいと判定された場合に、前記論理実行サブプランに関連付けられた各データソースから提供されたデータテーブルを、前記ストレージノードによってリレーショナルデータベースにマッピングすることと、
前記論理実行サブプランに関連付けられたデータソースの数が１であると判定された場合に、前記論理実行サブプランに関連付けられた１つのデータソースから提供されたデータテーブルをデータベースとすることと、を含むことを特徴とする請求項４に記載のクエリ処理方法。
【請求項７】
前記ストレージノードによって、受信された前記論理実行サブプランに基づいて、前記論理実行サブプランに関連付けられたデータソースから提供されたデータテーブルを取得するステップは、
前記論理実行サブプランに関連付けられたデータソースを前記ストレージノードによって特定することと、
予め記憶されている対応関係テーブルから、前記論理実行サブプランに関連付けられた各データソースに対応する推奨処理フィールドを、前記ストレージノードによって特定することであって、前記対応関係テーブルには異なるデータソース及びそれらに対応する推奨処理フィールドが記録されていることと、
前記論理実行サブプランに関連付けられたデータソースのそれぞれについて、該データソースに対応する推奨処理フィールドが前記論理実行サブプランに含まれるクエリ条件のクエリフィールドであるか否かを前記ストレージノードによって判断することと、
該データソースに対応する推奨処理フィールドが前記論理実行サブプランに含まれるクエリ条件のクエリフィールドであると判定された場合に、該データソースが受信されたクエリ条件に応じて該データソース自体に記憶されているデータテーブルを選別して選別済みデータテーブルを前記ストレージノードにフィードバックするために、前記論理実行サブプランにおける該データソースに対応する推奨処理フィールドのクエリ条件を、前記ストレージノードによって該データソースに送信することと、
該データソースに対応するのが前記論理実行サブプランに含まれるクエリ条件のクエリフィールドではないと判定された場合に、該データソースがデータソース自体のデータテーブルをフィードバックするために、前記ストレージノードによって該データソースにデータ取得要求を送信することと、を含むことを特徴とする請求項６に記載のクエリ処理方法。
【請求項８】
前記サーバーノードによって、クエリリクエストを解析して対応する論理実行プランを生成するステップを実行する前に、
メタ情報管理ノードによってユーザ識別情報の有効性を検証するステップと、
ユーザ識別情報が有効性検証に成功した場合に、前記サーバーノードによってクエリリクエストを解析して対応する論理実行プランを生成するステップを実行するステップと、
ユーザ識別情報が有効性検証に失敗した場合に、前記メタ情報管理ノードによって識別情報の検証失敗情報をユーザにフィードバックするステップと、をさらに含むことを特徴とする請求項１又は２に記載のクエリ処理方法。
【請求項９】
サーバーノードと、コーディネーターノードと、複数のワーカーノードと、を備え、
前記サーバーノードは、解析モジュール、第１判断モジュール、分割モジュール、第１割り当てモジュール、集計モジュール及び第１フィードバックモジュールを含み、
前記コーディネーターノードは、第１生成モジュールを含み、
前記ワーカーノードは、第１処理モジュールを含み、
前記解析モジュールは、クエリリクエストを解析して対応する論理実行プランを生成するように構成され、
前記第１判断モジュールは、前記論理実行プランがＯＬＡＰスケールクエリサービスに属するか又はＯＬＴＰスケールクエリサービスに属するかを判断するように構成され、
前記分割モジュールは、前記第１判断モジュールによって前記論理実行プランがＯＬＡＰスケールクエリサービスに属すると判定された場合に、前記論理実行プランを複数の論理実行サブプランに分割し、分割済みの前記論理実行プランをコーディネーターノードに送信するように構成され、
前記第１生成モジュールは、前記分割モジュールから受信された前記論理実行プランに対応する第１物理実行プランを生成して、前記サーバーノードにフィードバックするように構成され、前記第１物理実行プランには各前記論理実行サブプランに対応するワーカーノードのノード情報が記録されており、
前記第１割り当てモジュールは、前記第１物理実行プランに基づいて、各前記論理実行サブプランを対応するワーカーノードに割り当てるように構成され、
前記第１処理モジュールは、対応する論理実行サブプランを処理して、クエリサブ結果を得、前記処理サブ結果をレイヤーごとに報告するように構成され、
前記集計モジュールは、受信された処理サブ結果を集計して、最終的なクエリ結果を生成するように構成され、
前記第１フィードバックモジュールは、前記最終的なクエリ結果をユーザにフィードバックするように構成されることを特徴とするクエリ処理システム。
【請求項１０】
前記サーバーノードは、送信モジュール、第２割り当てモジュール及び第２フィードバックモジュールをさらに含み、
前記コーディネーターノードは、第２生成モジュールをさらに含み、
前記ワーカーノードは、第２処理モジュールをさらに含み、
前記送信モジュールは、前記第１判断モジュールによって前記論理実行プランがＯＬＴＰスケールクエリサービスに属すると判定された場合に、前記論理実行プランをコーディネーターノードに送信するように構成され、
前記第２生成モジュールは、前記送信モジュールから受信された前記論理実行プランに対応する第２物理実行プランを生成して、前記サーバーノードにフィードバックするように構成され、前記第２物理実行プランには前記論理実行プランに対応するワーカーノードのノード情報が記録されており、
前記第２割り当てモジュールは、前記第２物理実行プランに基づいて、前記論理実行プランを対応するワーカーノードに割り当てるように構成され、
前記第２処理モジュールは、対応する前記論理実行プランを処理して、最終的なクエリ結果を得、前記最終的なクエリ結果を前記サーバーノードにアップロードするように構成され、
前記第２フィードバックモジュールは、受信された前記最終的なクエリ結果をユーザにフィードバックするように構成されることを特徴とする請求項９に記載のクエリ処理システム。
【請求項１１】
前記クエリ処理システムは、各データソースのデータ量情報が予め記憶されているストレージモジュールを含むストレージノードをさらに備え、
前記第１判断モジュールは、照会ユニット、推定ユニット及び比較ユニットを含み、
前記照会ユニットは、前記論理実行プランに関連付けられた各データソースのデータ量をストレージノードに照会するように構成され、
前記推定ユニットは、前記ストレージノードからフィードバックされた、前記論理実行プランに関連付けられた各データソースのデータ量に基づいて、前記論理実行プランに対応するデータクエリ合計量を推定するように構成され、
前記比較ユニットは、前記データクエリ合計量と予め設定されたクエリ合計量とを比較するように構成され、
前記比較ユニットによる結果、前記データクエリ合計量が前記予め設定されたクエリ合計量よりも大きい場合に、前記第１判断モジュールによって前記論理実行プランがＯＬＡＰスケールクエリサービスに属すると判定され、前記データクエリ合計量が前記予め設定されたクエリ合計量以下である場合に、前記第１判断モジュールによって前記論理実行プランがＯＬＴＰスケールクエリサービスに属すると判定されることを特徴とする請求項９又は１０に記載のクエリ処理システム。
【請求項１２】
前記第１処理モジュールは、第１検出ユニット、転送ユニット及びクエリユニットを含み、
前記クエリ処理システムは、作成モジュールを含むストレージノードをさらに備え、
前記第１検出ユニットは、前記ワーカーノード自体が受信した論理実行サブプランがクエリプランに属するか又は集合プランに属するかを検出するように構成され、
前記転送ユニットは、前記第１検出ユニットによって前記ワーカーノード自体が受信した論理実行サブプランがクエリプランに属すると検出された場合に、前記ストレージノードが前記論理実行サブプランについてのデータベースを作成するために、前記論理実行サブプランを前記ストレージノードに転送するように構成され、
前記クエリユニットは、前記ストレージノードによって作成された前記論理実行サブプランについてのデータベースにおいて対応するクエリ動作を実行して、対応するクエリサブ結果を得るように構成され、
前記作成モジュールは、前記ストレージノードがワーカーノードから送信された論理実行サブプランを受信した場合に、前記論理実行サブプランについてのデータベースを作成するように構成されることを特徴とする請求項９又は１０に記載のクエリ処理システム。
【請求項１３】
前記第１処理モジュールは集合ユニットをさらに含み、
前記集合ユニットは、前記第１検出ユニットによって前記ワーカーノード自体が受信した論理実行サブプランが集合プランに属すると検出された場合に、下位ワーカーノードから報告されるクエリサブ結果を受信して、集合処理を行うように構成されることを特徴とする請求項１２に記載のクエリ処理システム。
【請求項１４】
前記作成モジュールは、取得ユニット、判断ユニット及び処理ユニットを含み、
前記取得ユニットは、受信された前記論理実行サブプランに基づいて、前記論理実行サブプランに関連付けられたデータソースから提供されたデータテーブルを取得するように構成され、
前記判断ユニットは、前記論理実行サブプランに関連付けられたデータソースの数が１よりも大きいか否かを判断するように構成され、
前記処理ユニットは、前記判断ユニットによって前記論理実行サブプランに関連付けられたデータソースの数が１よりも大きいと判定された場合に、前記論理実行サブプランに関連付けられた各データソースから提供されるデータテーブルをリレーショナルデータベースにマッピングするように構成されるとともに、前記判断ユニットによって前記論理実行サブプランに関連付けられたデータソースの数が１であると判定された場合に、前記論理実行サブプランに関連付けられた１つのデータソースから提供されたデータテーブルをデータベースとするように構成されることを特徴とする請求項１２に記載のクエリ処理システム。
【請求項１５】
前記取得ユニットは、第１特定サブユニット、第２特定サブユニット、判断サブユニット、第１送信サブユニット及び第２送信サブユニットを含み、
前記第１特定サブユニットは、前記論理実行サブプランに関連付けられたデータソースを特定するように構成され、
前記第２特定サブユニットは、予め記憶されている対応関係テーブルから前記論理実行サブプランに関連付けられた各データソースに対応する推奨処理フィールドを特定するように構成され、前記対応関係テーブルには異なるデータソース及びそれらに対応する推奨処理フィールドが記録されており、
前記判断サブユニットは、前記論理実行サブプランに関連付けられたデータソースのそれぞれについて、該データソースに対応する推奨処理フィールドが前記論理実行サブプランに含まれるクエリ条件のクエリフィールドであるか否かを判断するように構成され、
前記第１送信サブユニットは、前記判断サブユニットによって該データソースに対応する推奨処理フィールドが前記論理実行サブプランに含まれるクエリ条件のクエリフィールドであると判定された場合に、該データソースが受信されたクエリ条件に基づいて該データソース自体に記憶されているデータテーブルを選別して選別済みデータテーブルを前記ストレージノードにフィードバックするために、前記論理実行サブプランにおける該データソースに対応する推奨処理フィールドのクエリ条件を該データソースに送信するように構成され、
前記第２送信サブユニットは、前記判断サブユニットによって該データソースに対応するのが前記論理実行サブプランに含まれるクエリ条件のクエリフィールドではないと判定された場合に、該データソースが該データソース自体のデータテーブルをフィードバックするために、該データソースにデータ取得要求を送信するように構成されることを特徴とする請求項１４に記載のクエリ処理システム。
【請求項１６】
前記クエリ処理システムは、検証モジュール及び第３フィードバックモジュールを含むメタ情報管理ノードをさらに備え、
前記検証モジュールは、ユーザ識別情報の有効性を検証するように構成され、
前記第３フィードバックモジュールは、ユーザ識別情報が有効性検証に失敗した場合に、前記メタ情報管理ノードによって識別情報の検証失敗情報をユーザにフィードバックするように構成され、
前記解析モジュールは、ユーザ識別情報が有効性検証に成功した場合に、クエリリクエストを解析して対応する論理実行プランを生成するように構成されることを特徴とする請求項９又は１０に記載のクエリ処理システム。
【請求項１７】
１つ又は複数のプロセッサと、
１つ又は複数のプログラムが格納されている記憶装置と、を含むサーバであって、
前記１つ又は複数のプログラムが前記１つ又は複数のプロセッサによって実行される場合に、前記１つ又は複数のプロセッサに請求項１〜８のいずれか１項に記載の方法を実現させるサーバ。
【請求項１８】
コンピュータプログラムが格納されているコンピュータ可読媒体であって、
前記プログラムがプロセッサによって実行される場合に、請求項１〜８のいずれか１項に記載の方法を実現するコンピュータ可読媒体。
【請求項１９】
コンピュータプログラムであって、
前記コンピュータプログラムがプロセッサにより実行されると、請求項１〜８のいずれか１項に記載の方法を実現する、コンピュータプログラム。
【手続補正書】
【提出日】令和2年5月15日(2020.5.15)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００２４
【補正方法】変更
【補正の内容】
【００２４】
【図１】本開示の実施形態に係るクエリ処理方法のフローチャートである。
【図２】本開示におけるステップＳ２の具体的な実施フローチャートである。
【図３】本開示におけるステップＳ６の具体的な実施フローチャートである。
【図４】本開示におけるステップＳ６０２ａの具体的な実施フローチャートである。
【図５】本開示におけるステップＳ６０２１の具体的な実施フローチャートである。
【図６】本開示の実施形態に係る他のクエリ処理方法のフローチャートである。
【図７ａ】本開示の実施形態に係るクエリ処理システムのブロック構成図である。
【図７ｂ】本開示におけるサーバーノードのブロック構成図である。
【図７ｃ】本開示におけるコーディネーターノードのブロック構成図である。
【図７ｄ】本開示におけるワーカーノードのブロック構成図である。
【図７ｅ】本開示におけるストレージノードのブロック構成図である。
【図７ｆ】本開示におけるメタ情報管理ノードのブロック構成図である。
【図８】本開示における第１判断モジュールのブロック構成図である。
【図９】本開示における第１処理モジュールのブロック構成図である。
【図１０】本開示における作成モジュールのブロック構成図である。
【図１１】本開示における取得モジュールのブロック構成図である。
【外国語明細書】
2020191067000001.pdf