による アレックス・ハター、 アレクサンドルはベルトした、 クレア・ワン、 haoyuan彼、 Banal Kishore、 ピーター・ロイヤル、 Shervin Afshar
Netflixの提供が成長するにつれて、映画、シリーズ、ゲーム、ライブイベント、広告間で – それをサポートするシステムの複雑さも同様です。 「俳優」や「映画」などのコアビジネスの概念は、多くの場所でモデル化されています。エンタープライズGraphQLゲートウェイ内部アプリ、メディア資産を保存する資産管理プラットフォーム、パイプラインをエンコードするメディアコンピューティングプラットフォームで、いくつかの例を挙げると。各システムは、これらの概念を異なる方法で単独でモデル化し、ほとんど調整や共有された理解をもたらします。それらはしばしば同じ概念で動作しますが、これらのシステムはその事実とお互いをほとんど知らないままです。
その結果、いくつかの課題が現れます:
- 重複した一貫性のないモデル – チームは異なるシステムで同じビジネスエンティティを再モデリングし、和解が難しい矛盾する定義につながります。
- 一貫性のない用語 – 単一のシステム内であっても、チームは同じ概念に対して異なる用語を使用したり、異なる概念に対して同じ用語を使用して、コラボレーションを難しくしたりすることができます。
- データ品質の問題 – 矛盾と壊れた参照は、多くのマイクロサービス全体で検出するのが困難です。識別子と外国の鍵は存在しますが、それらは一貫性のないモデル化され、文書化が不十分であるため、ドメインの専門家からの手動での作業がデータの問題を見つけて修正する必要があります。
- 制限された接続 – システム内で、データ間の関係は、各システムがサポートするものによって制約されます。システム全体で、それらは事実上存在しません。
これらの課題に対処するには、概念レベルでモデルを一度定義し、どこでもそれらの定義を再利用できるようにする新しい基盤が必要です。しかし、概念を文書化するだけでは十分ではありません。それらを実際のシステムとデータに接続する必要があります。また、単に接続するだけでなく、これらの定義を外側に投影し、スキーマを生成し、システム全体で一貫性を実施する必要があります。概念モデルは、コントロールプレーンの一部になる必要があります。
これらは、UDAを構築するように導いた中心的なアイデアでした。
UDA(統一されたデータアーキテクチャ) コンテンツエンジニアリングの接続データの基礎です。これにより、チームはドメインを一度モデル化し、システム全体で一貫してドメインを表現できます – 自動化、発見可能性、および セマンティックの相互運用性。
UDAを使用すると、ユーザーとシステムは次のとおりです。
ドメインモデルを登録および接続します – データとして表現されたフェデレーションビジネスドメインの正式な概念化。
- なぜ? そのため、誰もがビジネスの概念に同じ公式定義を使用しているため、混乱を避け、異なるチームが矛盾する方法で同様のモデルを再構築するのを止めます。
カタログおよびマップドメインモデルはデータコンテナへグラフとしての表現を介して、ドメイングラフサービス、データメッシュソース、または氷山テーブルが提供するGraphQLタイプのリゾルバーなど。
- なぜ? これらのビジネスコンセプトの実際のデータがどこに住んでいるか(例えば、特定のデータベース、テーブル、またはサービス)を簡単に見つけて、そこでどのように構成されているかを理解することができます。
ドメインモデルをスキーマ定義言語に変換します セマンティクスを保存しながら、GraphQL、Avro、SQL、RDF、およびJavaのように。
- なぜ? ドメインモデルから直接、さまざまなシステムの一貫した技術データ構造(スキーマ)を自動的に作成し、開発者の手動の努力を節約し、シンク外の定義によって引き起こされるエラーを削減します。
データコンテナ間でデータを忠実に移動します連邦政府のGraphQLエンティティからデータメッシュ(規模のNetflixシステム間でデータを移動するための汎用データの移動および処理プラットフォーム)、データキャプチャ(CDC)ソースを結合可能なIcebergデータ製品に変更します。
- なぜ? データの移動方法を自動的に処理し、異なるシステム間で正しく変換する方法を自動的に処理することにより、開発者の時間を節約します。これは、データの動きを構成するための手動の作業が少なくなり、必要な場所にデータが一貫して正確に表示されるようにすることを意味します。
ドメインの概念を発見して探索します 検索およびグラフトラバーサルを介して。
- なぜ? そのため、誰でも探している特定のビジネス情報をより簡単に見つけ、さまざまな概念とデータがどのように関連しているかを理解し、正しい情報にアクセスしていると確信できます。
プログラムで知識グラフを内省します Java、GraphQL、またはSPARQLを使用します。
- なぜ? そのため、開発者は、この接続されたビジネス情報を活用し、より複雑なデータ依存のワークフローを自動化し、データの関係から新しい洞察を明らかにするよりスマートなアプリケーションを構築できます。
この投稿では、UDAの基礎を紹介します ナレッジグラフとして、ドメインモデルをマッピングを介してデータコンテナに接続し、社内で接地します メタモデル、またはアッパーと呼ばれるモデルのモデル。アッパーは、UDAのドメインモデリングの言語を定義し、システム間でスキーマとパイプラインを自動的に生成するプロジェクションを有効にします。
同じドメインモデルを、UDAナレッジグラフの意味的に同等のデータコンテナに接続できます。
この投稿は、2つのシステムも強調しています 生産におけるUDAを活用してください:
プライマリデータ管理(PDM) 権威ある参照データと分類法を管理するためのプラットフォームです。 PDMは、ドメインモデルを、ビジネスユーザー向けに生成されたUIを駆動するフラットまたは階層の分類法に変えます。これらの分類モデルは、AVROおよびGRAPHQLスキーマに投影され、倉庫でデータ製品を自動的にプロビジョニングし、Enterprise GatewayのGraphQL APIをプロビジョニングします。
球 ビジネスユーザー向けのセルフサービスの運用レポートツールです。 SphereはUDAを使用して、システム全体のビジネス概念をカタログ化および関連付け、「俳優」や「映画」などの馴染みのある用語を通じて発見を可能にします。概念が選択されると、Sphereは知識グラフを歩き、倉庫からデータを取得するためにSQLクエリを生成します。マニュアルが結合したり、技術的な調停は不要です。
UDAは知識グラフです
UDAは解決する必要があります データ統合 問題。 スキーマレジストリで統一されたデータカタログが必要でしたが、難しい要件が必要でした セマンティック統合。グラフのような構造のスキーマやデータコンテナにビジネスの概念を接続し、強力な意味的基盤に基づいているため、当然、私たちは 知識グラフ アプローチ。
UDAの知識グラフの基礎としてRDFとShaclを選択しました。しかし、エンタープライズスケールでそれらを運用することで、いくつかの課題が浮上しました。
- RDFには使用可能な情報モデルがありませんでした。 RDFは柔軟なグラフ構造を提供しますが、データを整理する方法に関するガイダンスはほとんどありません 名前付きグラフ、オントロジーの所有権を管理するか、ガバナンスの境界を定義します。標準 ノースメカニズムをフォローします OWLのように:インポートはオントロジーにのみ適用され、名前付きグラフには拡張されません。それらの間の依存関係を表現および解決するために、一般化されたメカニズムが必要でした。
- Shaclは、エンタープライズデータのモデリング言語ではありません。 ネイティブRDFを検証するように設計されたShaclは、グローバルにユニークなURIと単一のデータグラフを想定しています。しかし、Enterpriseデータは、GraphQL、Avro、またはSQLのように、ローカルスキーマとタイプキーを中心に構成されています。 Shaclはこれらのパターンを表現できず、不均一なシステム全体で実際のデータをモデル化および検証することが困難になりました。
- チームには共有されたオーサリングプラクティスがありませんでした。 強力なガイドラインがなければ、チームはオントロジーを一貫してセマンティック相互運用性を壊してモデル化しました。スタイル、構造、または命名の微妙な違いでさえ、発散的な解釈につながり、スキーマ全体で一貫して定義するのを難しくしました。
- オントロジーツーリングには、共同モデリングのサポートがありませんでした。 GraphQL Federationとは異なり、Ontology Frameworksには、モジュール式貢献、チームの所有権、またはSAFE Federationのサポートが組み込まれていませんでした。ほとんどのエンジニアは、ツールと概念がなじみのないことを発見し、利用可能なオーサリング環境には調整された貢献に必要な構造がありませんでした。
これらの課題に対処するために、UDAは名前付きグラフファースト情報モデルを採用しています。 それぞれの名前のグラフは、知識グラフの名前付きグラフである管理モデルに準拠しています。この体系的なアプローチにより、解像度、モジュール性が保証され、グラフ全体でガバナンスが可能になります。 UDAの情報インフラストラクチャの完全な説明はこの投稿の範囲を超えていますが、次のセクションでは、UDAがメタモデルでナレッジグラフをブートストラップし、それを使用してデータコンテナの表現とマッピングをモデル化する方法について説明します。
アッパーはドメインモデリングです
OnePiece:UIのドメインモデルのグラフ表現。ここに描かれているのは、キャラクターが悪魔の実とどのように関連しているか、そしてそれぞれの悪魔の果物にタイプがあることを見ることができます。
上部ドメインモデルはデータです。それらはとして表現されています 概念RDF 名前のグラフに編成され、UDAナレッジグラフ内で、内省的、クエリ、バージョンになります。このグラフは、ドメインモデル自体だけでなく、GraphQL、Avro、Iceberg、Javaに透過するスキーマと、ドメイングラフサービス、データメッシュソース、アイスバーグテーブルで提供されるGraphQLタイプのリゾルバーなど、ドメインの概念をコンクリートデータコンテナに接続するマッピングも統合します。アッパーは、従来のオントロジー言語よりも抽象化のレベルを上げます:の厳格なサブセットを定義します セマンティックテクノロジー W3Cから、ドメインモデリング用に合わせて一般化されています。 RDF、Owl、Shaclなどのオントロジーフレームワークに基づいて構築されているため、ドメインの著者は、オントロジーとは何かを学ぶ必要さえなく効果的にモデル化できます。
ワンピースのUDAドメインモデル。 完全な定義へのリンク。
アッパーは、UDAの接続データのメタモデルです – すべてのモデルのモデル。ブートストラップとして設計されています 上部オントロジー、それはアッパーがそうであることを意味します 自己参照、それはドメインモデルとしてモデル化されているためです。 自己説明、それはドメインモデルの概念そのものを定義するためです。そして 自己検証、それは独自のモデルに適合するためです。このアプローチにより、UDAは独自のインフラストラクチャをブートストラップすることができます。アッパー自体は、NetflixのエンタープライズGraphQLゲートウェイに採用されたGraphQLサービスで使用されるGraphQLサービスで使用されるGraphQL Serviceで生成されたJava APIおよびGraphQLスキーマに投影されます。これらの同じ生成されたAPIは、投影とUIによって使用されます。すべてのドメインモデルはそうだからです 保守的な拡張 GraphQL、AVRO、データメッシュ、マッピングを含む他のシステムドメインモデルのモデルは、同じランタイムにシームレスに統合され、一貫したデータセマンティクスとスキーマ全体の相互運用性を可能にします。
上部メタモデルから生成されたJava APIを使用して、ドメインモデルをプログラムで移動します。
データコンテナ表現
データコンテナは情報のリポジトリです。 これらには、独自のスキーマ言語またはタイプシステムに準拠するインスタンスデータが含まれています。GraphQLサービスのフェデレーションエンティティ、データメッシュソースからのAVROレコード、Icebergテーブルの行、またはJava APIのオブジェクト。各コンテナは、独自の構造的および運用上の制約を課すシステムのコンテキスト内で動作します。
データメッシュソースはデータコンテナです。
データコンテナ 表現 データです。 これらは、データシステムのメンバーのグラフデータとしての忠実な解釈です。 UDAは、これらのシステムの定義を独自のドメインモデルであるシステムドメインとしてキャプチャします。これらのモデルは、システムの情報アーキテクチャと内部のデータコンテナのスキーマの両方をエンコードします。システムをグラフ表現に変換するための青写真を提供します。
#モデルを一度どこでも代表してくださいNetflixのUDAUnified #Data #Architecture #Netflixテクノロジーブログ #2025年6月