Venice は派生データ ストレージ プラットフォームであり、次の特徴を備えています。
上記のことから、Venice は、Feather などの機能ストアをサポートするステートフル コンポーネントとして特に適しています。 AI アプリケーションは、ML トレーニング ジョブの出力を Venice にフィードし、オンライン推論ワークロード中に使用するデータをクエリします。
Venice は、以下に示すように、オフライン、ニアライン、オンラインの世界にまたがるシステムです。
Venice 書き込みパスは、データセット全体のスワップ、既存のデータセットへの多数の行の挿入、および一部の行の一部の列の更新の 3 つの粒度に分類できます。 3 つの粒度はすべて、Hadoop と Samza によってサポートされています。さらに、どのサービスでも、オンライン プロデューサー ライブラリを使用して、単一行の挿入と更新を非同期に生成できます。以下の表は、各プラットフォームでサポートされる書き込み操作をまとめたものです。
ハドゥープ | ザムザ | あらゆるサービス | |
---|---|---|---|
完全なデータセット交換 | ✅ | ✅ | |
既存のデータセットへのいくつかの行の挿入 | ✅ | ✅ | ✅ |
一部の行の一部の列を更新します | ✅ | ✅ | ✅ |
さらに、書き込み操作の 3 つの粒度はすべて、単一のデータセット内で混合できます。行の挿入または行の更新に加えて、完全なデータセットの交換を行うデータセットは、ハイブリッドと呼ばれます。
ストアをハイブリッドに構成する一環として、重要な概念は巻き戻し時間です。これは、最近のリアルタイム書き込みをどれだけ遡って巻き戻して、スワップインされる新しい世代のデータセットに適用するかを定義します。
このメカニズムを利用すると、ストリーム処理ジョブの出力をバッチ ジョブの出力にオーバーレイすることができます。部分更新を使用する場合、一部の列をリアルタイムで更新し、一部をバッチで更新することができ、必要に応じて、これら 2 つの列のセットを重複させたり、切り離したりすることができます。
Write Compute には、特定のキーに関連付けられた値に対して実行できる 2 種類の操作が含まれています。
注意: 現在、書き込みコンピューティングは、アクティブ/パッシブ レプリケーションと組み合わせた場合のみサポートされています。アクティブ/アクティブ レプリケーションのサポートは開発中です。
Venice は次の読み取り API をサポートしています。
Venice データにアクセスするには、主に 2 つのモードがあります。
以下の表は、クライアントの特徴をまとめたものです。
ネットワークホップ | 一般的なレイテンシ (p99) | 州のフットプリント | |
---|---|---|---|
シンクライアント | 2 | 10 ミリ秒未満 | ステートレス |
高速クライアント | 1 | < 2 ミリ秒 | 最小限 (ルーティングメタデータのみ) |
ダヴィンチクライアント (RAM + SSD) | 0 | 1 ミリ秒未満 | 境界付き RAM、SSD 上の完全なデータセット |
Da Vinci クライアント (オールイン RAM) | 0 | 10 マイクロ秒未満 | RAM 内の完全なデータセット |
これらのクライアントはすべて、上で説明した同じ読み取り API を共有します。これにより、ユーザーはアプリケーションを書き直すことなく、コストとパフォーマンスのトレードオフを変更できるようになります。
Open Sourcing Venice のブログとカンファレンスでの講演は、Venice がどのようなユースケースと規模をサポートできるかの概要を把握するための良い出発点となります。ヴェネツィアに関するその他の投稿、講演、ポッドキャストについては、「詳細」ページをご覧ください。
Venice クイックスタートを参照して独自の Venice クラスターを作成し、データ ストアの作成、バッチ プッシュ、増分プッシュ、単一取得などの機能を試してみましょう。最新の安定リリースを使用することをお勧めします。
以下を使用して、お気軽にコミュニティに参加してください。
ヴェネツィアのプロジェクトとコミュニティの進捗状況について詳しく知るには、私たちをフォローしてください: