SAP HANA Development

SAP HANA CDSビュー基礎:作成からアノテーション、公開、トラブルシューティングまで

SAP HANAのCDSビューについて、設計時アーティファクトとの関係、作成手順、アノテーション、権限、デプロイ後の確認方法を実務向けに解説します。

SAP HANA CDSビューの作成と公開設計から検証、デプロイまでの実務手順を示すSAP HANA CDSビューの作成と公開設計から検証、デプロイまでの実務手順を示す設計確定依存関係を解決アクティベート完了変更へのフィードバック粒度とキーを設計用途、データソース、粒度…CDSモデルを作成エンティティ、項目、関連、…デプロイとアクティベート依存関係の順序でデプロイ…データとアクセスを検証件数、重複、NULL、実行…CertPas オリジナル図解
SAP HANA CDSビューの設計、モデル作成、デプロイ、検証を示すプロセス図
目次
  1. SAP HANA CDSビューとは
  2. CDSビューを作成する前の設計
  3. CDSビューの基本構造
  4. CDSビューアノテーションの使い方
  5. 作成とデプロイの実務手順
  6. 権限と公開範囲の確認
  7. CDSビューのトラブルシューティング
  8. 運用で守る変更管理

SAP HANA CDSビューとは

CDS(Core Data Services)は、データモデルを宣言的に定義し、エンティティ、項目、関連、意味情報をまとめて扱うための仕組みです。SAP HANAの開発では、データベース上のテーブルを直接参照する処理を整理し、アプリケーションや分析処理から再利用できる形にします。単純なSQLビューを作るだけでなく、データ構造と業務上の意味を設計時に表現できる点が重要です。

SAP HANAで扱うCDSには、データベース側の設計時アーティファクトとして作成するものと、ABAP側で定義してSAP HANA上で実行されるABAP CDSがあります。両者は記述場所、ライフサイクル、公開方法が異なります。対象システムの開発方式を最初に確認し、同じ名前のビューを別の開発方式で重複作成しないことが運用上の基本です。

CDSの全体像を把握するには、先にSAP HANA開発の概要を確認すると、SQLScript、データモデル、アプリケーション層の役割を整理できます。

CDSビューのデプロイ障害の切り分け最初の依存エラーから実行時検証までの調査順序を示すCDSビューのデプロイ障害の切り分け最初の依存エラーから実行時検証までの調査順序を示す最初に確認オブジェクト有効化結果が正しい変更後に再確認デプロイエラーオブジェクト名、行番号、…依存オブジェクトを確認参照先、名前、型、アクティ…データロジックを確認結合、フィルター、粒度、…実行時アクセスを確認アプリケーション実行ユー…CertPas オリジナル図解
SAP HANA CDSのデプロイと実行時アクセスエラーのトラブルシューティングフロー

CDSビューを作成する前の設計

最初に、ビューの利用者と返す粒度を決めます。明細を1行ずつ返すのか、取引先や製品単位に集約するのかで、キー、関連、集計処理の設計が変わります。ビューを作成する前に、基盤テーブルの主キー、NULLを許容する項目、日付・通貨・数量の意味を確認してください。

次に、ビューを配置するパッケージまたは開発プロジェクト、実行スキーマ、依存するテーブルや他のCDSエンティティを決めます。開発用と本番用でオブジェクトの所有者やアクセス権が変わる場合は、デプロイ先の構成も設計書に残します。

命名規則は、後から検索できる粒度で定めます。たとえば業務領域、用途、粒度を名前に含めると、基礎ビュー、再利用ビュー、消費用ビューを区別しやすくなります。物理テーブル名をそのまま公開名に使わず、利用者が理解できる意味をビュー名と項目名に反映させると、変更の影響範囲も管理しやすくなります。

CDSビュー層と責務の関係基礎モデル、業務ビュー、アノテーション、利用アプリケーションの関係を整理するCDSビュー層と責務の関係基礎モデル、業務ビュー、アノテーション、利用アプリケーションの関係を整理する組み合わせる意味を付加利用を導くデータモデルを公開基礎ビュー安定した項目と技術キーを…業務ビュー業務上の意味、関連、再利用…アノテーショラベル、利用方法、解釈に…利用アプリケーション実行時権限で公開モデルを…CertPas オリジナル図解
基礎CDSビュー、業務ビュー、アノテーション、利用アプリケーションの関係図

CDSビューの基本構造

CDSビューは一般に、データソース、投影する項目、キー、関連、フィルター、アノテーションで構成します。最初から多くのテーブルを結合せず、1つの責務に絞った基礎ビューを作り、その上に業務用途のビューを重ねると、依存関係を追跡しやすくなります。

キーは単に表示順を決める項目ではありません。エンティティを一意に識別するための項目として設計し、結合によって行数が増える場合は、元データの粒度と一致しているかを確認します。明細番号を含まない伝票番号だけをキーにすると、複数明細が1つのエンティティとして扱われることがあります。

関連を定義する場合は、関連先のカーディナリティと結合条件を確認します。任意の関連先にはNULLが発生する可能性があり、必須の関連先ではデータ欠損が処理結果に影響します。関連を追加した後は、代表的なデータで行数、重複、欠損値を確認してください。

SQLScriptのプロシージャやテーブル関数と組み合わせる場合は、CDSにはデータモデルと再利用可能な意味情報を置き、複雑な手続き処理は適切なデータベースオブジェクトに分けます。SAP HANA SQLScriptプロシージャでは、手続き型処理を分離する際の考え方を確認できます。

CDSビューアノテーションの使い方

アノテーションは、データ型、表示ラベル、検索用途、分析用途、公開方法などのメタデータを補足します。アノテーションを追加する前に、ビューそのものの粒度と項目の意味を確定してください。意味が曖昧なまま表示ラベルだけを整えても、利用者の誤解を防げません。

アノテーションは、モデル全体に適用するもの、エンティティに適用するもの、項目に適用するものに分けて管理します。ラベルやデータ型のような項目固有の情報をエンティティ全体の設定に置くと、意図しない表示や生成結果につながります。

アノテーションの値には、項目名、型、列挙値、参照先などの依存関係が含まれることがあります。項目を改名したときは、関連するアノテーション、関連定義、公開設定、テスト用クエリを一緒に確認します。CDSビューアノテーションは表示設定だけでなく、利用側の解釈に影響するため、変更理由を設計書に記録してください。

作成とデプロイの実務手順

  1. 開発プロジェクトまたはパッケージを作成し、対象スキーマとデータソースを確認します。
  2. 最小限の項目を持つ基礎ビューを作成し、キーとデータ型を検証します。
  3. 開発用データで件数、重複、NULL、日付、通貨、数量を確認します。
  4. 必要なアノテーションを追加し、設計上の目的をコメントまたは文書に残します。
  5. 依存オブジェクトを含めた順序でデプロイし、アクティベーション結果を確認します。
  6. 実行ユーザーで参照できることを確認し、利用側の処理から同じ結果を検証します。

SAP HANAデータベースエクスプローラーは、SQLの実行、オブジェクトの確認、エラー内容の調査に利用できます。SAP HANA cockpitは、システムの状態、アラート、リソース状況を確認する管理ツールです。開発者がデータの結果を確認する作業と、管理者がシステム状態を確認する作業を分けると、原因の切り分けが速くなります。

HDIコンテナを使うプロジェクトでは、データベースオブジェクトの所有者とアプリケーション実行ユーザーが分離されます。SAP HANA HDIコンテナでは、コンテナ、デプロイ、サービスバインディングの関係を確認できます。

権限と公開範囲の確認

CDSビューを作成できる権限と、作成後にビューを参照できる権限は別に考えます。開発者の技術ユーザーで参照できても、アプリケーションの実行ユーザーに権限がなければ、実行時にアクセスエラーが発生します。

確認する範囲は、基盤テーブルまたは基礎ビュー、上位CDSビュー、公開されたスキーマやコンテナです。依存先の権限が不足すると、上位ビューのデプロイや実行が失敗します。権限を広く付与して解決するのではなく、実行主体、対象オブジェクト、必要な操作を一覧化して最小範囲で付与します。

分析用途で行レベルの制御が必要な場合は、ビューの構造とアクセス制御を分離して設計します。データを隠す条件を結合条件や固定フィルターに埋め込むと、再利用時に意図しない制限が残るため、公開範囲を設計書に明記してください。

CDSビューのトラブルシューティング

デプロイが失敗した場合は、最初にエラーの対象オブジェクト、行番号、依存先を確認します。参照先が未作成、名前が異なる、型が一致しない、循環依存がある、といった原因を順番に切り分けます。上位ビューだけを繰り返しデプロイするより、最初に失敗した基礎オブジェクトから確認する方が効率的です。

ビューは作成できるものの結果が空になる場合は、結合条件、フィルター、実行ユーザーの権限、対象スキーマを確認します。結果が重複する場合は、結合先のキーとカーディナリティを確認し、結合前後の件数を比較します。集計結果が想定と違う場合は、集計前の粒度、NULLの扱い、数量や金額の単位を確認してください。

実行が遅い場合は、まず大量データを返す項目数、不要な関連、結合条件、フィルターの位置を見直します。CDSを階層化しすぎると依存関係と実行計画の確認が難しくなるため、利用目的のない中間ビューを増やさないことが有効です。システム全体の負荷はSAP HANA cockpitで確認し、SQLの実行内容はデータベースエクスプローラーで個別に検証します。

運用で守る変更管理

CDSビューの項目名、キー、関連、アノテーションを変更すると、アプリケーション、分析ツール、権限設定、テストデータに影響することがあります。互換性が必要な場合は既存ビューを直接変更せず、新しいビューを用意して利用側を段階的に切り替える方法を検討します。

デプロイ前には、依存オブジェクトの一覧、変更項目、想定する行数、権限、ロールバック方法を確認します。デプロイ後は、代表的な利用シナリオを実行し、件数だけでなく、キーの一意性、NULL、合計値、日付範囲も確認します。

CDSは、データを見せるための薄い定義ではなく、再利用されるデータ契約として管理すると安定します。設計、アノテーション、権限、性能、変更影響を同じレビュー単位で扱うことが、長期運用での障害を減らします。

ブログ一覧へ戻る