このプロジェクトについて

Materializeは、組織全体のトランザクションデータについて一貫したビューを作成し継続的に更新するリアルタイムデータ統合プラットフォームです。そのSQLインターフェースは、ライブデータの提供とアクセスを広く利用可能にすることを目的としており、インフラストラクチャが動作する場所ならどこにでもデプロイできます。 READMEに記載されている一般的な導入パターン: - クエリオフロード(CQRS): キャッシュ無効化の頭痛の種なしに、リードレプリカよりも効率的に複雑な読み取りクエリをスケールさせます。 - 統合ハブ(ODS): 複数のソースからデータを抽出、ロード、増分的に変換し、直接クエリ可能または下流にプッシュ可能なライブビューを作成します。 - オペレーショナルデータメッシュ(ODM): SQLを使用して、サービスやドメイン全体にわたるリアルタイムで強整合性のあるデータプロダクトを作成し提供します。 整合性と実行モデル: Materializeは、複数の上流システムからのデータを結合する場合も含め、近似や結果整合性ではなく、最小限のレイテンシで正確で一貫した回答を提供することを目指しています。クエリはデータ変更に効率的に反応するデータフローとして再構成されます。マネージドサービスは、マルチアクティブレプリケーションによる高可用性、マシン間の水平スケーラビリティ、Amazon S3などのクラウドオブジェクトストレージに支えられたストレージを備えたクラウドネイティブであると説明されています。EnterpriseエディションとCommunityエディションはセルフマネージドで利用できます。 データ取り込み: PostgreSQLまたはMySQLのレプリケーションストリームからの直接読み取り、KafkaおよびRedpandaなどのKafka API互換システム、Webhook経由のSaaSアプリケーション。 変換とクエリ: ビューはPostgreSQLプロトコルを通じて定義および読み取られるため、psqlを含む既存のSQLクライアントを使用できます。dbt Coreは本番環境での使用が一般的であると述べられています。サポートされるSQL機能には、複数列および多方向結合、自己結合、クロス結合、内部結合と外部結合、自動デコリレーション付きサブクエリ、挿入・更新・削除下での増分ビュー維持、集計(min、max、count、sum、stddevなど)、HAVING、ORDER BY、LIMIT、DISTINCT、PostgreSQL方言のJSON演算子と関数、ネストされたビュー、重複するサブプラン間で共有されるインデックスが含まれます。再帰もサポートされており、ツリー構造とグラフ構造を増分的に更新できます。READMEには、CREATE SOURCE、CREATE VIEW、CREATE MATERIALIZED VIEW、CREATE INDEXを示すTPC-Hクエリ15の例が含まれています。 データ出力: 任意のPostgreSQL互換ドライバを通じたプルベースのアクセス、およびSUBSCRIBEまたはKafkaトピックへの結果のストリーミングによるプッシュベースのアクセス。更新をオブジェクトストレージにコピーするオプションもあります。 ライセンスと開発: スタンドアロンデータベースエンジンのソースはこのリポジトリにBSL 1.1の下で含まれており、4年後にApache 2.0に変換されます。スタンドアロンエンジンのシングルノード使用は永久に無料です。マネージドクラウドサービスには、水平スケーラビリティ、高可用性、Web管理コンソールなどのプロプライエタリ機能が含まれます。Materializeは主にRustで書かれており、開発者向けドキュメントはdoc/developerにあり、Rust APIドキュメントは別途ホストされています。コントリビューションは歓迎されており、ガイダンスはCONTRIBUTING.mdにあります。