SQLFlow REST API:SQLデータリネージ抽出の自動化

データリネージAPI プログラムで系統情報を抽出できます。HTTP 経由で SQL コードを送信すると、すべてのソース テーブルと列、すべてのターゲット、およびそれらの間の変換関係を一覧表示する構造化された系統グラフが JSON 形式で返されます。 Gudu SQLFlow REST API SQLFlowは、ストアドプロシージャや動的SQLを含む39種類のSQL方言に対して、列レベルの粒度でまさにこの機能を提供します。SQLFlowのインタラクティブな図表を支える分析は、HTTP経由で構造化されたデータ系列データとして利用可能です。

39SQL方言にはそれぞれ専用のパーサーがある。
列レベル系統図、直接および間接
JSONHTTP経由 — 1回のPOST、SQL入力、グラフ出力
ゼロデータへのアクセス — 静的分析のみ

まず出力結果を確認してください。 クエリを貼り付ける 無料のSQLFlow系統可視化ツール次に、統合コードを一行も書く前に、グラフをJSON形式でエクスポートして、データとしての系統図がどのようなものかを確認します。

データリネージAPIをシステム構成に組み込む理由とは?

対話型の系統図は、人間が系統を探索する方法です。しかし、系統の最も価値の高い活用方法は自動化されています。例えば、下流のレポートを密かに破損させるプルリクエストをブロックしたり、手動によるキュレーションなしにデータカタログの系統を最新の状態に保ったり、社内ツール内で「この列のデータはどこから来ているのか?」という問いに答えたりすることです。これらすべてを実現するには、呼び出し可能なサービスからオンデマンドでデータとして系統を取得する必要があります。

SQLFlow のアプローチは静的 SQL 解析です。API は送信された SQL テキストを解析し、テーブルの行には一切手を加えないため、セキュリティ レビューが短くなります。ネットワークを通過するのは SQL コードのみであり、 オンプレミス版 それさえもネットワーク内に留まります。その下にあるエンジンは 汎用SQLパーサーこれは、2000年代半ばから開発され、方言ごとに約13,600のテストフィクスチャで検証された商用SQLコンパイラのフロントエンドです。そのため、返されるリネージは、正規表現のマッチングではなく、SQLの完全な意味モデルから構築されています。

SQLFlow REST APIが返すもの

概念的には、このAPIはSQLFlowの分析機能全体をJSON over HTTPとして公開します。

能力送信戻ってきます
系統図SQLテキストと方言識別子JSON形式の完全な列レベルの系統グラフ:テーブル、列、およびソースとターゲットの関係
上流/下流トレース関心のある表または列対象を絞った影響分析では、そのオブジェクトに情報を供給するサブグラフ(上流)またはそのオブジェクトから情報を受け取るサブグラフ(下流)のみを対象とする。
テーブルレベルの系統SQLテキスト、テーブル粒度を要求列の詳細がノイズとなる場合の、コンパクトなテーブル間依存関係グラフ
直接的な血統と間接的な血統リクエストにフラグが立てられる純粋なデータフロー関係、または結果を形成する列 どこ, 参加する、 と グループ分け 条項
ストアドプロシージャ呼び出しグラフPL/SQLまたはT-SQLプロシージャ本体どのプロシージャがどのプロシージャを呼び出すのか、パラメータ、一時テーブル、動的SQLを通じてその履歴を追跡します。
ER図DDLスクリプト推論された主キー/外部キー関係をエンティティ関係モデルとして用いる
輸出分析された仕事機械データにはJSONまたはCSV、ドキュメントとチケットにはPNGを使用

すべてのリクエストは、その方言を明示的に指定します。SQLFlow は、Snowflake、BigQuery、Databricks、Redshift から Oracle、SQL Server、Teradata、Hive、Trino まで、39 のデータベースとクエリ エンジンに対応した方言固有のパーサーを同梱しているため、T-SQL の一時テーブルなどのベンダー固有の構文は、汎用 ANSI 文法で近似されるのではなく、ベンダーが定義したとおりに解析されます。完全なリストは、 SQLデータリネージツールの概要.

最小限の例:POST SQLで系統図を取得する

コアとなるやり取りは 1 つの HTTP 呼び出しです。SQL テキストと方言を送信すると、応答としてリネージ グラフが返されます。エンドポイント パス、認証、および完全なパラメータ リファレンスは、 SQLFlow APIドキュメント交換の形状は次のようになります。

curl -s -X POST "$SQLFLOW_API/lineage" -H "Authorization: Bearer $SQLFLOW_TOKEN" --form "dbvendor=snowflake" --form 'sqltext=CREATE VIEW customer_ltv AS SELECT c.customer_id, SUM(o.amount) AS lifetime_value FROM customers c JOIN orders o ON o.customer_id = c.customer_id WHERE o.status = ''paid'' GROUP BY c.customer_id;'

応答はグラフです。データベースオブジェクト(テーブル、ビュー、およびそれらの列)のリストと、列間の関係のリストです。説明のために一部を省略し、簡略化しています。

{ "relationships": [ { "type": "direct", "target": {"object": "customer_ltv", "column": "lifetime_value"}, "sources": [{"object": "orders", "column": "amount", "via": "SUM"}] }, { "type": "direct", "target": {"object": "customer_ltv", "column": "customer_id"}, "sources": [{"object": "customers", "column": "customer_id"}] }, { "type": "indirect", "target": {"object": "customer_ltv", "column": "lifetime_value"}, "sources": [{"object": "orders", "column": "status", "via": "WHERE"}] } ] }

3つ目の関係性に注目してください。 注文状況 ビューの出力には表示されませんが、合計する行をフィルタリングするため、確実に影響します。 生涯価値SQLFlow はこれを次のようにモデル化します。 間接的な系統直接的なデータフローとは異なり、個別に要求できます。ほとんどのデータリネージツールはこの区別をしていませんが、影響分析の利用者がまさに必要としているのはこれです。 注文状況 出力列がそこから「生成される」わけではないにもかかわらず、このビューを破損させる可能性があります。

ユースケース:CIにおける系統チェック

最も効果的な統合は、不正なSQLがリリースされる前に実行されるものです。SQLに触れるすべてのプルリクエストに対して、CIジョブで以下を実行します。

  1. 変更したSQLファイルを系統追跡エンドポイントに送信し、新しいグラフを取得します。
  2. メインブランチのグラフと比較して差分を取ります。どの列がソースを獲得または失ったか、どの下流オブジェクトが入力値を変更したかを確認します。
  3. 変更が規制報告書や経営層向けダッシュボードなどの保護対象にデータを供給する列に影響を与える場合は、チェックを失敗させるか、差分をレビューコメントとして投稿してください。

分析は静的であるため、これは一度も実行されたことのないコードに対して機能します。壊れた依存関係は、午前 2 時のバッチ実行が失敗したときではなく、レビュー時に検出されます。同じパターンがスキーマ移行をゲートします。 列を削除する ランドの場合、1回のダウンストリームトレース呼び出しで、カラムを直接またはフィルタを介して消費するすべてのオブジェクトがわかります。

ユースケース:データカタログへのデータ投入

カタログプラットフォームはメタデータ、所有権、および検出の整理に優れていますが、列レベルのSQLリネージは通常、最も弱い入力です。SQLFlowはリネージエンジンとして機能します。SQL環境を分析し、その結果を既に実行しているカタログにプッシュします。エンタープライズ展開には、すぐに使用できるエクスポートアダプタが含まれています。 DataHub、Microsoft Purview、およびOpenMetadataまた、JSONおよびCSVエクスポートは、あらゆるカスタムデータに対応します。大規模なシステムでは、100以上のデータベースと100万以上の列からなる環境全体にわたって、バッチおよび増分スキャンとして実行され、永続的なデータリネージリポジトリを備えているため、誰かが手動でリネージを管理しなくてもカタログは常に最新の状態に保たれます。

使用例:ツール内部での系統管理

内部データプラットフォームでは、「このメトリックはどこから来たのか?」パネル、非推奨チェッカー、移行依存関係マップなど、同じ機能が繰り返し追加されます。SQLパーサーを構築する代わりに、サービスからAPIを呼び出し、グラフを好きなようにレンダリングします。生のJSONではなく、インタラクティブな図自体が必要な場合は、SQLFlowには、任意のWebアプリに組み込める30以上のメソッドAPIを備えた埋め込み可能なJavaScriptウィジェットも付属しています。バックエンド専用のJVM統合には、同じエンジンを公開するJavaライブラリがあります。API、ウィジェット、ライブラリはすべて1つのパーサーを共有しているため、一貫した結果を返します。

SQLをHTTP経由で系統グラフに変換する

無料のビジュアライザーでグラフを確認し、パイプラインから同じSQLをREST APIにPOST送信してください。

これは他のプログラム的な系譜オプションと比べてどうでしょうか?

これはSQL分析サービスであり、パーサーライブラリやランタイムコレクターではありません。 知っておくべき3つのカテゴリーがあります。 オープンソースの構文解析ライブラリ お気に入り SQL Lineagesqlglot これらは、Python プロセス内の個々のステートメントを解析するのに非常に適しており、単純な SELECT および INSERT ロジックには十分かもしれません。しかし、ストアドプロシージャ、動的 SQL、方言のエッジケース、およびスキーマ コンテキストを必要とするビューまたはスター展開の解決においては、そのギャップが生じます。 ランタイム系統標準 OpenLineage のようにジョブ実行イベントからリネージをキャプチャする機能があり、オーケストレーターレベルの実行ごとのリネージには最適ですが、エミッター統合が提供する粒度で実際に実行されたコードしか見ることができません。 カタログ優先のプラットフォーム 既存のシステムでは、取り込んだリネージに基づいてリネージAPIを公開しているため、回答の深さは取り込んだリネージの深さまでとなります。一方、SQLFlowのREST APIは異なるツールです。これは、実行されなかったSQLや他のツールがスキップするプロシージャを含め、コード自体から列レベルのリネージを計算する専用のSQL分析サービスです。これらのカテゴリはうまく組み合わさっており、多くのチームがSQLFlowを使用してリネージを計算し、カタログを使ってエンドユーザーに提供しています。

APIの実行場所:クラウドまたは自社ネットワーク

REST APIは、SQLFlowのどちらのデプロイメントでも利用可能です。 SQLFlow クラウド 最も手軽なスタート方法:無料プラン付きのSaaSで、プレミアムプランは月額$49.99、運用インフラは不要です。 SQLFlow オンプレミス お客様のネットワーク内でDockerまたはKubernetes経由でデプロイされ、完全にエアギャップされた環境で動作し、選択したデータベースタイプごとに月額$500または1回限りの$4,800の料金で、2台のサーバーにインストール可能です。一般的なパターンは、クラウドとの統合のプロトタイプを作成し、同じAPI呼び出しをオンプレミスのホストに移行して、SQLテキストがインフラストラクチャから外部に出ないようにすることです。

よくある質問

APIは列レベルのデータ系列情報、それともテーブルレベルのデータ系列情報を返しますか?

どちらも可能です。デフォルトの深度は列レベルです。各出力列について、正確なソース列と、それらの間の関数、結合、およびセット操作が、直接的および間接的な系統関係を区別して取得されます。コンパクトな依存関係グラフのみが必要な場合は、テーブルレベルの粒度を要求することもできます。

データリネージAPIはどのSQL方言をサポートしていますか?

Snowflake、BigQuery、Redshift、Databricks、Oracle、SQL Server、PostgreSQL、MySQL、Teradata、Hive、Spark SQL、Trinoなど、39種類のデータソースに対応しており、それぞれに独自のパーサーが用意されています。リクエストごとにデータソースを指定します。

ストアドプロシージャと動的SQLを分析できますか?

はい。Oracle PL/SQLとSQL Server T-SQLには専用のプロシージャパーサーがあります。プロシージャパラメータと一時テーブルを通して履歴が追跡され、プロシージャ内で構築された動的SQLが解決および分析され、APIはプロシージャ間の呼び出しグラフを返すことができます。

APIは私のデータにアクセスする必要がありますか?

いいえ。送信されたSQLテキストの静的解析を実行するだけで、テーブルの行データを読み取ることはありません。オンプレミス版では、SQLテキスト自体もお客様のネットワーク内に留まります。

利用可能な出力形式は何ですか?

JSONはプログラムによる使用における主要なフォーマットです。CSVエクスポートはスプレッドシートや一括ロードに適しており、PNGエクスポートはドキュメント作成用のレンダリングされた図を生成します。エンタープライズ展開では、DataHub、Microsoft Purview、およびOpenMetadata用のエクスポートアダプタが追加されます。

完全なAPIリファレンスはどこにありますか?

docs.gudusoft.comエンドポイントパス、認証、機能ごとのリクエストパラメータ、および完全なレスポンススキーマを網羅しています。APIアクセスを含むプランについては、以下を参照してください。 SQLFlowの価格設定.

SQLからJSON形式で系統情報を取得する

無料のビジュアライザーにクエリを貼り付けてグラフ構造を調べ、その後、REST APIをパイプラインに接続します。