メインコンテンツへジャンプ

Unity Catalog ボリュームの一般提供を開始しました!

テーブル形式以外のあらゆるデータの発見、管理、クエリ、共有
Share this post

本日 Unity Catalog ボリューム AWS、Azure、GCPで一般利用可能になったことを発表 します。 Unity Catalog Databricks Data Intelligence Platformにネイティブに組み込まれた、データおよびAI向けの統合ガバナンスソリューションを提供します。 Unity Catalog ボリュームを使用することで、データおよびAIチームは、表データやMLモデルだけでなく、非構造化データ、半構造化データ、構造化データなど、あらゆる種類のデータのカタログ化、セキュア化、管理、共有、リネージ追跡を一元的に行うことができます。

このブログでは、Unity Catalog ボリュームのコア機能を概説し、さまざまなファイルタイプからデータをロードするスケーラブルなAIおよびインジェストアプリケーションを作成するためにUnity Catalog ボリュームをどのように使用できるかの実用的な例を提供し、GAリリースで導入された機能強化について説明します。

Unity Catalog ボリュームによるテーブル形式以外のデータの管理

ボリュームは非テーブル形式データガバナンスと管理のために設計された Unity Catalog のオブジェクトの一種です 。各ボリュームは、Unity Catalog内のディレクトリとファイルのコレクションであり、クラウド オブジェクト ストレージの場所の論理ストレージユニットとして機能します。 構造化半構造化非構造化問わず あらゆる形式データをアクセス、保存管理する機能を提供します

レイクハウスアーキテクチャでは、アプリケーションは通常ファイルからデータをインポートすることから始めます。 これには、ディレクトリの読み込み、既存ファイルのオープンと読み込み、新規ファイルの作成と書き込みに加え、各ユースケースに特化したさまざまなツールやライブラリを使用したファイルコンテンツの処理が含まれます。

ボリュームを使用すると、形式に関係なく、クラウドストレージのパフォーマンスで非テーブル形式データの広範なコレクションを読み込んで処理する、さまざまなファイルベースのアプリケーション作成 できます。 Unity Catalog ボリュームでは、DatabricksワークスペースUI、Spark API、Databricksファイルシステムユーティリティ(dbutils.fs)、REST API、Pythonの os モジュールなどの言語ネイティブなファイルライブラリ、SQLコネクタ、Databricks CLI、Databricks SDK、Terraformなど、お好みのツールを使用してファイルを操作できます。

"データ民主化への道のりにおいて、ユーザーが利用できるツールの合理化は極めて重要なステップです。 Unity Catalog ボリュームのおかげで、Databricks ボリュームを介してのみ、ユーザーが非構造化データにアクセスする方法を簡素化できました。 Unity Catalog ボリュームを使用することで、ストレージアカウントへのアクセスに対する複雑なRBACアプローチを、Unity Catalogを使用した構造化データと非構造化データの統一アクセスモデルに置き換えることができました。 ユーザーは、多くのクリックとアクセス方法から、より洗練されたシンプルなUXを保証し、リスクを軽減し、環境全体を強化する、単一の直接アクセスモデルへと移行しました。 "
— Sergio Leoni, Head of Data Engineering & Data Platform, Plenitude 

パブリック プレビューのブログ投稿では、ボリュームの詳細な概要と、ボリュームによって実現されるユースケースについて説明しました。 以下では、GA リリースで利用可能になった新機能を含む、ボリュームのさまざまな機能を紹介します。ここでは、ファイルからデータをロードする 2 つの実際のシナリオを紹介します。このステップは、AI アプリケーションの構築やデータの取り込みに不可欠です。

AIアプリケーションのためのボリュームの使用

AIアプリケーションは、PDF、画像、動画、音声ファイル、その他の文書など、大量の非テーブル形式データを扱うことがよくあります。 これは特に、コンピュータビジョンや自然言語処理などの機械学習シナリオに当てはまります。 生成的AIアプリケーションもこのカテゴリーに属し、RAG(Retrieval Augmented Generation:検索拡張生成)のような技術が、表形式ではないデータソースから洞察を抽出するために使用されます。 これらの洞察は、チャットボットインターフェース、カスタマーサポートアプリケーション、コンテンツ作成などを強化する上で非常に重要です。

ボリュームの使用は、AIアプリケーションに以下のような様々なメリットをもたらします:

  • 表形式および非表形式AIデータセットの統一ガバナンス:ボリュームで管理される 非テーブル形式データあれ、テーブル形式データであれ、AIアプリケーションに関わるすべてのデータが、同じUnity Catalogの傘下にまとめられます。
  • AIアプリケーションのエンドツーエンドのリネージ:AIアプリケーションのリネージは、Unity Catalog ボリュームやテーブルとして整理されたエンタープライズのナレッジベースから、データパイプライン、モデルの微調整、その他のカスタマイズを経て、モデルサービングエンドポイントや生成AIでRAGチェーンをホストするエンドポイントにまで拡張されます。これにより、完全なトレーサビリティ、監査可能性、AIアプリケーションの根本原因分析の加速が可能になります。
  • 簡素化された開発者エクスペリエンス:多くの AI ライブラリやフレームワークは、クラウドオブジェクトストレージ API をネイティブサポートしておらず、ローカルファイルシステム上のファイルを想定しています。ボリュームは FUSE をビルトインでサポートしている ため、ユーザーはこれらのライブラリをシームレスに活用しながら、使い慣れた方法でファイルを操作できます。
  • AI アプリケーションの応答とソースデータセットの同期の合理化ジョブファイル到着トリガーやAuto Loaderのファイル検出など機能が、ボリュームをサポートするように強化されました。ボリュームに追加された最新のファイルでAIアプリケーションの応答を自動的に更新して、最新の状態に保つことができます。

例として、RAGアプリケーションを考えてみましょう。このようなAIアプリケーションに企業データを組み込む場合、初期段階の1つはドキュメントのアップロードと処理です。このプロセスは、ボリュームを使用することで簡素化されます。 生ファイルがVolumeに追加されると、ソースデータは小さなチャンクに分解され、エンベッディングによって数値フォーマットに変換されベクターデータベース格納されます。 ベクトル検索と大規模言語モデル(LLM)を使用することで、 RAGアプリケーションはユーザがデータを照会した際に適切な応答を提供します。

以下では、コンピュータにローカルに保存されたPDFファイルのコレクションから始めて、RAGアプリケーションを作成する最初のステップを示します。完全なRAGアプリケーションについては、関連するブログ記事とデモ参照して ください。

まずはPDFファイルをzipファイルに圧縮してアップロードします。 REST APIやDatabricks SDKのような他のツールを使用しても同様の手順を実行できますが、簡単のためにCLIを使用してPDFをアップロードします。 まずボリュームをリストアップしてアップロード先を決め、次にファイル用のディレクトリを作成し、最後にアーカイブをこの新しいディレクトリにアップロードします:

databricks fs ls dbfs:/Volumes/main/default/my_volume
databricks fs mkdir dbfs:/Volumes/main/default/my_volume/uploaded_pdfs
databricks fs cp upload_pdfs.zip dbfs:/Volumes/main/default/my_volume/uploaded_pdfs/

ここで、Databricksノートブックからアーカイブを解凍します。ボリュームのビルトイン FUSE サポートにより、ボリューム内のファイルがある場所で直接コマンドを実行することができます:

%sh
cd /Volumes/main/default/my_volume
unzip upload_pdfs.zip -d uploaded_pdfs
ls uploaded_pdfs

PythonのUDFを使って、PDFのテキストを抽出し、チャンク化し、埋め込みを作成します。 gen_chunks UDFはボリュームのパスを受け取り、テキストチャンクを出力します。 gen_embedding  UDFはテキストチャンクを処理してベクトル埋め込みを返します。

%python
@udf('array<string>')
def gen_chunks(path: str) -> list[str]:
   from pdfminer.high_level import extract_text
   from langchain.text_splitter import TokenTextSplitter
   text = extract_text(path)
   splitter = TokenTextSplitter(chunk_size = 500, chunk_overlap  = 50)
   return [doc.page_content for doc in splitter.create_documents([text])]
@udf
def gen_embedding(chunk: str) -> list[float]:
   import mlflow.deployments
   deploy_client = mlflow.deployments.get_deploy_client("databricks")
   response = deploy_client.predict(endpoint="databricks-bge-large-en", inputs={"input": [chunk]})
   return response.data[0]['embedding']

次にAuto Loaderと組み合わせてUDFを使用し、以下のようにチャンクをDeltaテーブルにロードします。 このDeltaテーブルは、 RAGアプリケーションに不可欠なコンポーネントであるVector Searchインデックスとリンクする必要が あります。 簡潔にするために、インデックスを設定するために必要な手順については、関連するチュートリアルを参照してください。

%python
from pyspark.sql.functions import explode


df = (spark.readStream
       .format('cloudFiles')
       .option('cloudFiles.format', 'BINARYFILE')
       .load("/Volumes/main/default/my_volume/uploaded_pdfs")
       .select(
               '_metadata',
               explode(gen_chunks('_metadata.file_path')).alias('chunk'),
               gen_embedding('chunk').alias('embedding'))
       )


(df.writeStream
 .trigger(availableNow=True)
 .option("checkpointLocation", '/Volumes/main/default/my_volume/checkpoints/pdfs_example')
 .table('main.default.pdf_embeddings')
 .awaitTermination()
)

本番環境では、RAGアプリケーションは多くの場合、常に変化する非構造化データの広範な知識ベースに依存しています。 したがって、アプリケーションの応答を最新に保ち、データの重複を防ぐには、最新のデータでVector Searchインデックスを自動更新することが極めて重要です。 これを実現するには、前述したように、コードロジックを使用してソースファイルの処理を自動化するDatabricksワークフローパイプラインを作成できます。ファイル到着トリガーの監視場所としてボリュームを追加設定すると、ボリュームに追加された新しいファイルがパイプラインによって自動的に処理されます。 これらのファイルを定期的にアップロードするには、CLIコマンド、UI、REST API、またはSDKなど、さまざまな方法を使用できます。

社内データだけでなく、企業では、キュレーションされたデータセットやパートナーやベンダーから購入したデータなど、外部から提供されたデータも活用することができます。 Volume Sharing使用することで、このようなデータセットをRAGアプリケーションに組み込むことができます。Volume Sharingのデモをご覧ください。

インジェスト・パイプラインの最初にボリュームを使用

前節では、ボリュームに格納された非構造化ファイルフォーマットからデータをロードする方法を示しました。 ボリュームは、JSON や CSV のような半構造化形式、または Parquet のような構造化形式からのデータ読み込みにも使用できます。

ボリュームを使用してAuto LoaderDelta Live Tables(DLT)、COPY INTO、または CTAS コマンドを実行するなど、お好みの取り込みツールを使用してテーブルにデータをロード できます。さらに、ジョブファイル到着トリガーやAuto Loaderファイル検出などの機能を活用することで、新しいファイルがボリュームに追加されたときに、テーブルが自動的に更新されるように することができます。 ボリュームを含むインジェスションワークロードは、DatabricksワークスペースまたはSQLコネクタから実行できます

CTAS、COPY INTO、DLTコマンドでVolumesを使用する例をいくつか紹介します。 Auto Loaderの使い方は、前のセクションで取り上げたコードサンプルとよく似ています。

CREATE TABLE demo.ingestion.table_raw AS
SELECT * FROM json.`/Volumes/demo/ingestion/raw_data/json/`
COPY INTO demo.ingestion.table_raw FROM '/Volumes/demo/ingestion/raw_data/json/'
CREATE STREAMING LIVE TABLE table_raw AS
SELECT * FROM STREAM read_files("/Volumes/demo/ingestion/raw_data/json/")

また、新しく導入されたボリュームのテーブル作成ウィザードを使用して、ボリュームのデータを UI からテーブルにすばやくロードすることもできます。 これは、コードを書く必要なくUIを使って素早くテーブルを作成したい場合、アドホックなデータサイエンス作業に特に役立ちます。 下のスクリーンショットがそのプロセスです。

Unity Catalog ボリューム GA リリースの概要

ボリュームの一般提供リリースには、いくつかの新機能と機能強化が含まれています。

要約すると、GAリリースの内容は以下の通りです:

  • Databricks MarketplaceのDelta SharingとVolumesによるボリューム共有:Delta Sharingでボリュームを共有できるようになりました。これにより、PDF、画像、ビデオ、オーディオファイル、その他のドキュメントやアセット、テーブル、ノートブック、AIモデルなど、表形式ではないデータの広範なコレクションを、クラウド、リージョン、アカウント間で安全に共有することができます。また、ビジネスユニットやパートナー間のコラボレーションや、新しいコラボレーターのオンボーディングも簡素化します。 さらに、お客様はDatabricks MarketplaceでVolumes Sharingを活用することができ、データプロバイダーはデータコンシューマーと表形式以外のデータを簡単に共有することができます。ボリューム共有は現在 AWSAzureGCPパブリックプレビュー中です
  • お好みのツールを使用したファイル管理:Databricks CLI (AWS | Azure | GCP)、Files REST API (AWS | Azure | GCP- 現在パブリックプレビュー中および Databricks SDKs for (AWS | Azure | GCP)、さらにPython、Go、Node.js、および JDBC Databricks SQL コネクタは、ボリューム (AWS | Azure | GCPに保存されたファイルのアップロード、ダウンロード、および削除を可能にする PUT、GET、および REMOVE SQL コマンドを提供します。
  • ScalaおよびPython UDFとScala IOにおけるボリュームのサポート:すべてのコンピュートアクセスモード(AWS | Azure | GCP)において、UDFからボリュームのパスにアクセスし、ScalaでIOオペレーションを実行できるようになりました
  • ボリューム用のジョブファイル到着トリガーのサポート: 新しいファイルがボリュームに追加されたときに複雑なパイプラインをトリガーする便利な方法です。
  • クラウドストレージ URI を使用してファイルにアクセス:Databricksのボリュームパス (AWS | Azure | GCPに加えて、クラウドストレージURIを使用して外部ボリュームのデータにアクセスできるようになりました。これにより、ボリュームの採用を開始する際に既存のコードを使用しやすくなります。
  • ボリュームのクラスタライブラリ、ジョブ依存関係、およびinitスクリプトのサポート:UIとAPIの両方から、クラスタライブラリ、ジョブ依存関係、およびinitスクリプトのソースとしてボリュームがサポートされるようになりました。 詳細はこの関連 ブログ記事参照してください。
  • タグの検出UI、SQLコマンド、informationスキーマ(AWS | Azure | GCP)を使用して、ボリュームレベルのタグ付けを定義および管理できるようになりました
  • ボリュームUIの強化ボリュームUI がアップグレードされ、ファイルからのテーブル作成、複数ファイルの一括ダウンロードと削除など、さまざまなファイル管理操作がサポートされました。また、アップロードとダウンロードの最大ファイルサイズを 2 GB から 5 GB に引き上げました。

ボリューム入門

ボリュームを使い始めるには、包括的なステップバイステップガイドに従って、ボリュームの主な機能のクイックツアーをご覧ください。 最初のボリューム(AWS | Azure | GCP )を作成する詳細な手順については、当社のドキュメントを参照してください。 ボリュームを作成したら、カタログエクスプローラー(AWS | Azure | GCP)を活用してその内容を調べたり、SQL構文を使用してボリュームを管理したり(AWS | Azure | GCP )、他の共同作業者とボリュームを共有したりできます(AWS | Azure | GCP)。また、ボリュームを最大限に活用するために 、ベストプラクティス(AWS | Azure | GCP)を確認することをお勧めします。

Databricks 無料トライアル

関連記事

Databricks Unityカタログのボリュームのパブリックプレビューを発表

翻訳:Junichi Maruyama. - Original Blog Link Data and AI Summit 2023では、Databricks Unity Catalogの Volumes を紹介した。この機能により、Unity Catalog内の表形式データとともに、非構造化データ、半構造化データ、構造化データなど、あらゆる非表形式データの発見、管理、処理、系譜の追跡が可能になります。本日、AWS、Azure、GCPで利用可能な Volumes のパブリックプレビューを発表できることを嬉しく思います。 このブログでは、表形式以外のデータに関連する一般的なユースケースについて説明し、Unity CatalogのVolumesを使用した主な機能の概要を提供し、Volumesの実用的なアプリケーションを示す作業例を紹介し、Volumesを開始する方法の詳細を提供します。 非表形式データのガバナンスとアクセスに関連する一般的なユースケース Databricks Lakehouse...

Databricksで高品質のRAGアプリケーションを作成する

RAG(Retrieval-Augmented-Generation )は、独自のリアルタイムデータを LLM(Large Language Model) アプリケーションに組み込む強力な方法として、急速に台頭してきた。 本日Databricksユーザーが企業データを使用して高品質な本番LLMアプリケーションを構築するためのRAGツール群を発表できることを嬉しく思う。 LLMは、新しいアプリケーションを迅速にプロトタイプ化する能力において、大きなブレークスルーをもたらした。 しかし、RAGアプリケーションを構築している何千もの企業と仕事をした結果、彼らの最大の課題は、これらのアプリケーションを 本番で用いることができる品質にすること であることがわかった。 顧客向けアプリケーションに要求される品質基準を満たすためには、AIの出力は正確で、最新で、そして企業のコンテキストを認識し、安全でなければならない。 高品質なRAGアプリケーションを構築するためには、開発者はデータとモデル出力の品質を理解するための豊富なツール

Data and AI Summit 2023におけるUnityカタログの最新情報

翻訳:Junichi Maruyama. - Original Blog Link データ管理に不可欠な、説明責任、コンプライアンス、品質、透明性といったガバナンスの基本原則は、今やAIにとっても同様に不可欠なものとなっています。Databricksは Unity Catalog で、クラウドとデータプラットフォームにわたるデータとAIガバナンスのための業界唯一の統合ソリューションをリリースすることで、先駆的なアプローチを取りました。 組織はUnity Catalogを使用することで、あらゆるデータプラットフォームやクラウドでファイル、テーブル、MLモデル、ノートブック、ダッシュボードを安全に発見、アクセス、監視、コラボレーションすることができます。 私たちは、 Lakehouse Federation 、 Governance for AI 、AIを活用したガバナンス( Lakehouse Monitoring、Lakehouse Observability...

Unity Catalogがもたらす価値は何か?

Reviewed by saki.kitaoka ガバナンスは、データとAI製品が正確なガイドラインと標準に従って一貫して開発され、維持されることを保証します。 アーキテクトのための設計図であり、一貫性、ガイドライン、標準によってソリューションとデータビジョンに命を吹き込みます。 反復可能なワークフロー管理により、データエンジニアのためのスケールとスピードを実現します。 データサイエンティストのためのAIモデルを共同で構築し、運用することで、スケールの大きな運用を可能にします。 データ資産を広く共有し、すべての人に利益をもたらすと同時に、必要なときには非公開にする、データ管理者のためのセキュリティです。 データとAI資産に基づくビジネス洞察の透明性を備えた、経営幹部にとっての信頼です。 また、 Databricks Unity Catalogを 使用することで、業務効率を高めることができます。 このブログでは、企業がユニファイド・ガバナンス・ソリューションを標準化する前に直面する多くの課題の概要を説明し、テクノロ
プラットフォーム> 製品> お知らせ一覧へ