SAP HANAデータリネージ:HANA SQLおよびビューの列リネージ

SAP HANAデータリネージ これは、HANA SQL 内でデータがどのように移動するかを示す列レベルのマップです。どのソース テーブルと列が各 SQL ビュー、計算列、および下流レポートにデータを提供し、どの結合、フィルタ、キャスト、および関数が途中でデータを変換するかを示します。 Gudu SQLFlow SAP HANAは、汎用ANSI文法ではなく、専用のSAP HANA方言パーサー(39種類ある方言固有のパーサーの1つ)を使用してHANA SQLを解析し、インタラクティブでドリルダウン可能な系統図を個々の列までレンダリングすることで、そのマップを自動的に構築します。

今すぐお試しください: HANAを貼り付ける ビューの作成 チェーンを 無料のSQLFlow系統可視化ツールSAP HANAの方言を選択するだけで、数秒で列レベルの図を取得できます。無料プラン、インストール不要。

なぜ系譜に関する疑問がHANAに持ち込まれるのか

HANA は単独で存在することはほとんどありません。通常は、S/4HANA および BW 環境、並列データマート、財務および監査機能が依存するレポートレイヤーの下に配置されます。監査人が質問すると、 「この数値はどのデータソースから得られたものか?」 またはコントローラーが尋ねる 「先月の発表後、なぜこのKPIが変更されたのですか?」答えは、ビューの上に構築されたビュー、計算列、通貨換算、スキーマ間の結合など、SQLの階層の中に埋もれています。

SQLを手動で読み取ってこれらの質問に答える方法は、ビューの数がごく少数を超えると限界があります。SQLレベルのリネージを使えば、これを自動化できます。すべてのビュー定義とスクリプトを一度解析するだけで、テーブルからビュー、ビューからレポートへと続く依存関係グラフ(列単位の粒度)が、影響分析、根本原因のデバッグ、監査証拠として必要に応じて利用できるようになります。

SQLFlowがSAP HANAのデータリネージを構築する方法

SQLFlowは、 汎用SQLパーサー(GSP)は、2000年代半ばから開発され、方言ごとに約13,600のSQLテストフィクスチャで検証された商用SQLコンパイラのフロントエンドです。SAP HANAパーサーは、特にHANAのSQL構文を理解します。 「スキーマ」.「オブジェクト」 識別子、HANA関数とキャスト、HANA結合と集合演算子の形式を、汎用的な文法で近似するのではなく、そのまま使用する。

各ステートメントに対して、GSP は完全な意味モデルを構築します。すべての列参照は、CTE、サブクエリ、ビュー、および 選択 * 展開すると、データフローアナライザーは、出力列ごとに、どのソース列がどの関数や式を経由してその列にデータを供給しているかを正確に抽出します。その結果、テーブルレベルの概略図ではなく、スキーマ変更時に信頼できる列レベルのデータ系列が得られます。

HANA SQLをSQLFlowに渡す方法は3つあります。ステートメントを直接貼り付ける、ビュー定義とスクリプトのファイルをアップロードする、またはJDBC経由で接続してSQLFlowにデータベースカタログからオブジェクト定義を取得させる、のいずれかです。すべてはSQLテキストの静的解析であり、SQLFlowはテーブルの行を読み取ることはありません。

例:階層化されたHANA SQLビューチェーンのトレース

階層型SQLビューはHANAの標準的なパターンです。生のテーブルの上にクレンジングビュー、その上にエンリッチメントビュー、そしてレポート作成用の集計ビューがあります。典型的な3層構造の例を以下に示します。

CREATE VIEW "FIN"."V_ORDERS_CLEAN" AS SELECT ORDER_ID, CUSTOMER_ID, TO_DECIMAL(GROSS_AMOUNT, 15, 2) AS GROSS_AMOUNT, IFNULL(CURRENCY, 'EUR') AS CURRENCY, ORDER_DATE FROM "FIN"."ORDERS_RAW" WHERE STATUS <> 'CANCELLED'; CREATE VIEW "FIN"."V_ORDERS_EUR" AS SELECT o.ORDER_ID, o.CUSTOMER_ID, o.GROSS_AMOUNT * r.RATE AS AMOUNT_EUR, o.ORDER_DATE FROM "FIN"."V_ORDERS_CLEAN" o JOIN "FIN"."FX_RATES" r ON r.CURRENCY = o.CURRENCY AND r.RATE_DATE = o.ORDER_DATE; CREATE VIEW "FIN"."V_REVENUE_MONTHLY" AS SELECT CUSTOMER_ID, YEAR(ORDER_DATE) AS FISCAL_YEAR, MONTH(ORDER_DATE) AS FISCAL_MONTH, SUM(AMOUNT_EUR) AS REVENUE_EUR FROM "FIN"."V_ORDERS_EUR" GROUP BY CUSTOMER_ID, YEAR(ORDER_DATE), MONTH(ORDER_DATE);

SQLFlowに質問する V_REVENUE_MONTHLY.REVENUE_EUR 由来は、自動的にチェーンをたどります。 収益(ユーロ)SUM(AMOUNT_EUR)それは 総額 * レート、 どこ 総額ORDERS_RAW.GROSS_AMOUNT 通過した TO_DECIMALソース列が2つ、ビューの深さが3つ、すべての中間計算に名前が付けられています。トレースを逆方向に実行すると、影響分析が得られます: retype ORDERS_RAW.GROSS_AMOUNT SQLFlowは、変更を継承するすべての下流列を一覧表示します。

SQL ビューの計算列 — TO_DECIMAL キャスト、 IFNULL デフォルトでは、乗算は系統図で第一級であるため、図には単に それ 柱が流れますが それに何が起こるか 各層において。

直接的な血統と間接的な血統

もう一度例を見てみましょう。 ORDERS_RAW.STATUS 出力列には決して表示されませんが、 WHERE STATUS <> 'CANCELLED' フィルターは収益の数字を決定づける。 通貨, レート日付、 と 注文日 結合条件と グループ分け.

SQLFlow はこれらを次のようにモデル化します 間接的(影響)系統これは、直接的なデータフローとは異なる関係タイプであり、図の中で個別に切り替えることができます。「この規制対象フィールドはこのレポートに影響を与えますか?」といった監査上の質問の場合、間接的なエッジが答えのすべてとなることが多く、競合するほとんどのデータリネージツールは直接的/間接的な区別をしていません。

SQLFlowはSAPネイティブツールとどのように連携するのか

SAP独自のモデリングツールとカタログツールは、本来の目的であるSAPモデル化レイヤー内で作成された成果物の追跡には優れています。しかし、SQLレベルでは問題が生じます。手書きのSQLビュー、移行スクリプト、スケジュールされたジョブ内のDML、HANAとSAP以外のシステムを接続するSQLなどは、モデル化された成果物として登録されていないため、モデルベースのリネージからは見えません。

SQLFlowがカバーするのはまさにこの層です。SQL自体を解析するため、SQLテキストとして表現されたものはすべてトレースされます。どのツールで作成されたかは関係ありません。知っておくべき2つの重要な境界線があります。

  • グラフィカルな計算ビュー これらはSQLではなくXMLモデルとして保存されるため、SQL解析の対象外となります。ただし、それらを囲むSQLビュー、およびそれらを照会するすべてのSQLは完全にトレースされます。
  • SQLScriptプロシージャ: SQLFlow の専用手続き文法は現在 Oracle PL/SQL と SQL Server T-SQL をカバーしています。HANA の場合、実用的なアプローチは SQLScript 本体内の SQL ステートメントを分析することです。 選択, 入れる、そして、系統が実際に存在するビュー定義は、標準のHANA SQLです。

2 つのアプローチを組み合わせると、互いに補完し合います。モデル化レイヤーには SAP ネイティブのツール、SQL で記述されたすべてのものには SQL レベルのリネージが使用されます。また、SQLFlow は 39 の言語方言に対応しているため、同じリネージ グラフは HANA を超えて、それを供給している Oracle、DB2、または Snowflake システムにも拡張されます。 Oracle データ系統DB2データリネージ これらの言語方言に対応したページが用意されています。エンタープライズ環境では、組み込みのエクスポートアダプタを使用して、結果をDataHub、Microsoft Purview、またはOpenMetadataにプッシュすることもできます。

SAP環境の導入オプション

最適注記
SQLFlow クラウド評価、アドホックビューのトレース無料プランあり。プレミアムプランは月額$49.99。ブラウザにHANA SQLを貼り付けるかアップロードしてください。
SQLFlow オンプレミス規制産業におけるSAP本番環境ネットワーク内でのDocker/Kubernetes、エアギャップ対応。データベースタイプごとに月額$500または1回限りの$4,800。
REST API / JavaライブラリCIまたはデータプラットフォームにおけるデータリネージの自動化パイプラインやJVMアプリケーションから呼び出し可能な、同じ分析エンジン

ほとんどのHANA導入企業にとって、プライバシー保護の姿勢は機能と同じくらい重要です。SQLFlowはSQLコードとスキーマメタデータのみの静的解析を実行し、オンプレミス版ではSQLテキストがネットワークから外部に出ることもありません。バッチスキャンは100以上のデータベースと100万以上の列を処理でき、増分再スキャンと永続的なリネージリポジトリを備えています。詳細については、 価格ページ、そして SQLデータリネージツールの概要 全機能を網羅しています。

よくある質問

SQLFlowはSAP HANAをサポートしていますか?

はい。SAP HANA は、SQLFlow に独自のダイアレクト固有のパーサーを備えた 39 のデータベースの 1 つであり、引用符付きスキーマ修飾識別子、HANA 関数などの HANA SQL 構文をカバーしています。 IFNULLTO_DECIMAL定義を表示。

SQLFlowは、階層化されたHANA SQLビューを通してデータ系列を追跡できますか?

はい。列参照はビュー、CTE、サブクエリ、および 選択 * 展開により、最上位のレポートビューの列は、すべての中間ビューを経て物理的なソース列まで追跡され、各計算がパスに沿って表示されます。

SQLFlowはHANAの計算ビューに対応していますか?

グラフィカルな計算ビューはSQLではなくXMLモデルであるため、SQL解析の対象外です。SQLFlowは、計算ビューを囲むSQLビューや、それらを照会するSQLステートメントなど、SQLとして表現されたすべてのものをトレースします。

SQLFlowは私のHANAテーブル内のデータにアクセスする必要がありますか?

いいえ。SQLFlowはSQLコードの静的解析を実行し、必要に応じてJDBC経由でスキーマメタデータを読み取ります。テーブルの行データを読み取ることは決してなく、オンプレミス版ではSQLテキストさえもネットワーク内に保持されます。

HANA SQLをSQLFlowに取り込むにはどうすればよいですか?

方法は3つあります。SQLをブラウザに直接貼り付ける、ビュー定義ファイルとスクリプトファイルをアップロードする、またはJDBC経由でHANAに接続し、SQLFlowがカタログからオブジェクト定義を取得する、のいずれかです。結果はJSON、CSV、PNG形式でエクスポートするか、REST API経由で出力できます。

SQLFlowの料金はいくらですか?

SQLFlow Cloudは無料でご利用いただけます。プレミアムアカウントは月額$49.99です。SQLFlow On-Premiseは、選択したデータベースタイプごとに月額$500または1回限りの$4,800で、2台のサーバーにインストール可能です。追加のデータベースタイプは、それぞれ月額$100または1回限りの$1,000です。

HANAビューを今すぐトレースしましょう

無料のビジュアライザーにビューチェーンを貼り付けて、列レベルの履歴を確認するか、オンプレミスのHANA環境全体をスキャンすることについてご相談ください。