Denodo GraphQL サービス

GraphQL は、データクエリ言語であり、そのクエリをデータに対して実行するためのランタイムです。

  • 必要としているデータをクライアントがリクエストできるようにします。

  • 1 回のリクエストで多くのリソースを取得するため、API リクエストの回数を削減できます。

Denodo GraphQL サービス によって、Denodo 仮想データモデルに対する GraphQL クエリの実行が可能になるので、あらゆるデータソースに対して graphQL のようなクエリを実行できるようになります。

GraphQL サービスにアクセスするには、http://denodo-server.acme.com:9090/denodo-graphql-service/graphql/<database>/schema.json に移動します。

Virtual DataPort が起動していれば、このサービスをいつでも使用できます。

注釈

URL で <database> を指定する必要があります。

Denodo GraphQL Service overview

Denodo GraphQL サービスの概要

Denodo GraphQL サービスはボトムアップの考え方に従っているので、Denodo のビューとストアドプロシージャのメタデータから自動的に API 仕様が生成されます。

GraphQL サービスでは、Denodo データベースのビューとストアドプロシージャごとにクエリタイプが作成されます。ビューの各フィールドは、そのビューオブジェクトの子として扱われます。ストアドプロシージャオブジェクトの場合は、パラメータが同様の扱いになります。Denodo のアソシエーションは、別々のオブジェクト間のネストしたリレーションシップにマッピングされるので、GraphQL クエリでは、関連するオブジェクトとそのフィールドが 1 回のリクエストでフェッチされます。

Denodo の order ビューの Denodo GraphQL スキーマ
type Query {
    order(order_id: Int, cust_id: Int, total_price: BigInteger, order_desc: String, order_date: Timestamp, last_updated_time: Timestamp, _first: Int, _offset: Int): [order]!
}

type order {
  order_id: Int
  cust_id: Int
  total_price: BigInteger
  order_desc: String
  order_date: Timestamp
  last_updated_time: Timestamp
  order_detail: [order_detail]!    # Denodo Association
}

# Custom Scalar for Timestamp.
# Its format is:yyyy-MM-dd hh:mm:ss[.sss]
scalar Timestamp

Denodo GraphQL サービスの応答は、 JSON 形式で返されます。

Denodo の権限システムが適用されるので、各ユーザーには、アクセスを認可されているビューとストアドプロシージャのみが表示されます。

機能

Denodo GraphQL サービスは、以下の機能を提供します。

  • Denodo データベースへの 読み取り専用 アクセス

  • 改ページ

  • フィルタリング (graphql.enable.filtering プロパティが true の場合)

  • 並べ替え (graphql.enable.filtering プロパティが true の場合)

  • Group by と集計関数 (graphql.enable.filtering プロパティが true の場合)

  • HTTP 認証

    • Basic

    • SPNEGO (Kerberos)

    • OAuth 2.0

詳細については、「 Configuration 」を参照してください。