Teradataデータリネージ:移行とコンプライアンスのための列リネージ

Teradataデータリネージ これは、データが Teradata 環境内をどのように移動するかを示す列レベルのマップです。どのソース列が各ターゲット テーブル、ビュー、レポートにフィードし、どの結合、式、および 資格を得る 途中でフィルターをかける。 Gudu SQLFlow このソフトウェアは、専用のTeradata方言パーサー(同梱されている39種類の方言固有のパーサーの1つ)を使用してTeradata SQLを解析することで、マップを自動的に構築し、JSON、CSV、PNG形式でのエクスポート機能とREST APIを備えた、インタラクティブでドリルダウン可能な図としてレンダリングします。

今すぐお試しください: Teradataクエリを貼り付ける 無料のSQLFlow系統可視化ツールTeradata方言を選択すると、数秒で列レベルの系統図を取得できます。クラウド版には無料プランがあります。

TeradataデータリネージにTeradataパーサーが必要な理由

Teradata SQLは、ロゴが違うだけのANSI SQLではありません。BTEQ時代から稼働している典型的なシステム環境には、数十年にわたる方言固有の構造が残っています。 セットマルチセット テーブル定義、 資格を得る ウィンドウ関数、名前付き期間列、そして機械がそれらを再読み込みする必要が生じるとは誰も考えていなかった頃に書かれたスクリプトなど、様々な条件でフィルタリングを行う句が存在します。汎用ANSI文法はまさにこれらの記述に対応できず、系統図ツールが解析できない記述はすべて系統図の欠陥となります。

SQLFlowは逆のアプローチを採用しています。 汎用SQLパーサー, a commercial SQL compiler front-end developed since the mid-2000s and validated against roughly 13,600 per-dialect test fixtures. Its Teradata parser handles BTEQ-era SQL, セット/マルチセット テーブル、 資格を得る、そして名前付き期間を第一級の Teradata 構文として扱い、CTE、サブクエリ、ビュー、および 選択 * 列単位でソースとターゲットの関係を抽出する前に、展開処理を行います。

具体的な例:QUALIFY重複排除のトレース

QUALIFY ROW_NUMBER() 重複排除挿入は、Teradataデータウェアハウスで最も一般的なパターンの1つであり、ANSI規格しか扱えないデータリネージツールを無効化する確実な方法です。

INSERT INTO dw.customer_dim (customer_id, full_name, risk_rating) SELECT src.customer_id, TRIM(src.first_nm) || ' ' || TRIM(src.last_nm) AS full_name, src.risk_rating FROM staging.customer_feed src QUALIFY ROW_NUMBER() OVER ( PARTITION BY src.customer_id ORDER BY src.load_ts DESC) = 1;

これをSQLFlowで実行すると、図には2種類の異なる関係性が示されます。

  • 直系の血統: dw.customer_dim.full_name から派生する ステージング.顧客フィード.最初のnm最後のnm を通して トリム そして連結。 顧客IDリスク評価 変更されずに通過する。
  • 間接的(影響)系統: load_ts ターゲットには到達しませんが、どの行が重複排除の後に残るかを決定します。SQLFlow はそれを記録します。 顧客ID その パーティション分割 役割 — 間接的な依存関係として、図の中で個別に切り替え可能。

その間接的な層が重要です。誰かが粒度を変えると load_ts重複排除処理は、異なる行を静かに保持し始めますが、純粋な直接的な系統グラフでは警告は表示されません。競合するツールのほとんどは、間接的な系統を全くモデル化していませんが、SQLFlowはそれを独立した関係タイプとして扱います。

ユースケース1:Teradata上の銀行向け規制履歴

Teradataは銀行業界に確固たる導入実績があり、銀行は最も重いデータリネージ義務を負っています。BCBS 239では、金融機関がリスクデータ集計の正確性と完全性を実証することが求められています。実際には、どのソースフィールドがどの変換を経て各規制数値に反映されるかを監査人に示す必要があります。列レベルのリネージはその証拠となりますが、テーブルレベルのリネージは監査人がますます否定する近似値です。

手作業で管理するデータリネージのスプレッドシートは、作成した翌日にはこのテストに合格しなくなります。一方、SQLFlowはSQL自体からリネージを生成します。TeradataのDDL、ビュー定義、ロードスクリプトを指定するだけで、規制対象となるすべての出力に対して列レベルの来歴情報が生成されます。この情報は、増分スキャンによって変更のたびに更新可能で、その背後には永続的なリネージリポジトリが存在します。

2 つの特性により、銀行の管理環境内でこの処理が機能するようになります。まず、SQLFlow は SQL コードの静的解析のみを実行します。行データを読み取ることは決してないため、顧客レコードには何も触れません。次に、 オンプレミス版 エアギャップ環境を含むネットワーク内部で完全にDockerまたはKubernetes上で動作するため、SQLテキストさえもインフラストラクチャから外部に送信されることはありません。エンタープライズ展開では、100以上のデータベースと100万以上の列からなるデータベース群をバッチスキャンし、DataHub、Microsoft Purview、OpenMetadata用のエクスポートアダプタによって、ガバナンスチームが既に運用しているカタログにデータ系列情報を提供します。

ユースケース2:真の依存関係マップを使用してTeradataから移行する

今日のほとんどのTeradataリネージプロジェクトは移行から始まります。つまり、Snowflake、BigQuery、またはDatabricksにシステムを移行する際に、何が何に依存しているかを明確にする必要があります。テーブル名や暗黙の知識から推測すると、移行のスケジュールが遅れる原因となります。依存関係マップはSQLから取得する必要があります。

  • 範囲を正直に。 列レベルのデータ系列は、どの列が下流のレポートにデータを提供し、どの列が不要なデータであるかを示します。つまり、どの列がロジックを消費しないため、移行する代わりに廃止できるということです。
  • 配列移動波。 系統グラフは、主題領域間の実際の依存関係の順序を明らかにするため、上流のフィードを、それらを消費するマートよりも前に移動させることができます。
  • 方言の落とし穴に注意しましょう。 次のような構造 資格を得る, セット テーブルの重複排除セマンティクスや名前付き期間など、すべて意図的な翻訳が必要です。Lineageは、各構成要素がデータフローのどこに位置するか、そして翻訳が間違っている場合に下流に何が起こるかを示します。
  • 切り替え後に確認してください。 SQLFlowは両方の方言を解析するため、 スノーフレーク系統 書き換えられたSQLからTeradataのベースラインと比較します。ターゲット、ソース列が同じであれば、変換バグが発生している可能性があります。

他のレガシーMPP廃止にも同じ前後ワークフローが適用されます。 Netezzaのデータ系統 廃止措置バリアントのページ、および Oracle データ系統 お使いの環境がTeradataとOracleのソースを混在させている場合は、このページをご覧ください。

SQLFlowがTeradata環境を取り込む方法

SQLFlow Teradata SQLは、作業規模に関わらず、あらゆる規模のデータを取り込むことができます。

  • クエリを貼り付けてください ブラウザに入力して、1つのステートメントをすばやく追跡します。
  • ファイルをアップロードする プロジェクト規模の分析に必要な、DDLエクスポート、ビュー定義、ETLおよびロードスクリプト。
  • JDBC経由で接続する Teradataからスキーマメタデータとオブジェクト定義を直接取得する。
  • 自動化する ヘッドレスCLIまたはREST APIを使用して、デプロイメントパイプラインの一部として系統情報を常に最新の状態に保ち、カスタム処理のために結果をJSONまたはCSV形式でエクスポートできます。

エンジンが 39 のすべての方言で何をするかについての全体像 (直接的または間接的な系統、DDL からの ER 図の推論、dbt サポート、AI 系統クエリ) については、以下を参照してください。 SQLデータリネージツール 柱となるページ。

オープンソースツールやカタログツールについてはどうでしょうか?

オープンソースのパーサー SQL Lineagesqlglot 個々の、主に ANSI ステートメントから系統を抽出するのに本当に役立ち、カタログ ファースト プラットフォームは組織全体でメタデータと所有権を整理するのに優れています。Teradata の具体的なギャップは方言のカバー範囲の深さです。数十年前の BTEQ 時代のスクリプト、 資格を得る重複排除ロジックが多用されている箇所や、ベンダー固有のDDLは、汎用文法では解析が停止してしまう箇所です。Teradata環境向けのツールを評価する場合、テスト方法は簡単です。最も複雑な本番環境向けロードスクリプトを各候補ツールに実行し、列レベルの完全なデータ系列が返されるステートメントの数を数えてみてください。

導入オプションと価格設定

最適価格
SQLFlow クラウド今日はTeradataの系統追跡を試しています。個別の分析作業です。無料プラン、プレミアムプランは月額$49.99
SQLFlow オンプレミス銀行や規制対象企業向け — SQL はネットワーク外に持ち出されません。エアギャップ対応。月額$500、またはデータベースタイプごとに1回限り$4,800。2台のサーバーにインストール可能。
REST API / CLI / Javaライブラリパイプラインとプラットフォームに系統情報を組み込む価格ページをご覧ください

オンプレミスの追加データベースタイプは、それぞれ月額+$100または1回限り+$1,000で、移行の途中でTeradataとSnowflakeを並べて分析する必要がある場合に重要になります。詳細については、 価格ページ.

よくある質問

SQLFlowは、QUALIFYやSET/MULTISETテーブルなど、Teradata固有の構文を理解しますか?

はい。SQLFlow は汎用 ANSI 文法ではなく、専用の Teradata 方言パーサーを使用します。BTEQ 時代の SQL、 セット/マルチセット テーブル定義、 資格を得る 句や名前付きピリオドはすべてTeradata SQLとして解析可能なので、リネージ抽出は汎用パーサーが拒否するステートメントをカバーします。

SQLFlowは、TeradataからSnowflakeまたはBigQueryへの移行に役立ちますか?

はい。まずTeradata環境を分析して、真の列レベルの依存関係マップ(移行対象、廃止対象、およびそれらの順序)を取得します。SnowflakeとBigQueryもSQLFlowの39のダイアレクトに含まれているため、切り替え後に書き換えられたSQLを分析し、Teradataベースラインとの系統を比較して変換を検証できます。

SQLFlowはTeradataテーブルからデータを読み取りますか?

いいえ。SQLFlowはSQLコードの静的解析を行い、必要に応じてテーブルや列の定義などのスキーマメタデータを読み取ります。行データへのクエリは一切行いません。オンプレミス環境では、SQLテキストもネットワーク内に留まります。

コンプライアンス遵守のため、系統追跡機能は当社のネットワーク内で完全に実行可能ですか?

はい。SQLFlow On-Premiseは、エアギャップ環境を含むお客様のインフラストラクチャ内のDockerまたはKubernetesにデプロイされ、データベースタイプごとに月額$500または1回限りの$4,800でご利用いただけます。100以上のデータベースと100万列を超える規模のシステムにも対応し、増分スキャン機能とDataHub、Microsoft Purview、OpenMetadata用のエクスポートアダプタを備えています。

SQLFlowはどのようなTeradata入力データを受け入れますか?

貼り付けられたSQL、アップロードされたファイル(DDL、ビュー、ロードスクリプト)、およびJDBC経由で取得されたライブスキーマメタデータ。結果は、インタラクティブな図、JSON、CSV、PNG、またはREST API経由で利用可能です。

BCBS 239では、列レベルの系統情報だけで十分でしょうか?

列レベルのデータリネージは、技術的な証拠となるレイヤーです。これは、どのソースフィールドが各リスク数値にデータを提供し、どの変換を経ているか、またフィルターや結合条件による間接的な依存関係も含む、といった情報を文書化します。コンプライアンスプログラムによってその範囲全体が定義され、SQLFlowは手動で管理するのではなく、データリネージレイヤーを正確かつ自動的に更新します。

Teradataの系譜を今すぐ辿ってみよう

無料のビジュアライザーにTeradataクエリを貼り付けるか、監査や移行の前にシステム全体のスキャンについてご相談ください。