メインコンテンツまでスキップ
に最終更新

Lance

注記

Lance は Apache Doris 4.2 以降でサポートされています。

Lance は、分析と AI のワークロード向けに設計されたカラム指向のデータ形式です。Doris は、Lance Catalog、または s3() と local() のテーブル値関数(TVF)を使用して Lance データセットを読み取れます。

Lance の型マッピングについては、Doris のデータ型マッピングを参照してください。

対応機能​

機能対応状況
Lance CatalogFilesystem Catalog と REST Catalog に対応
ファイル TVFs3() と local() に対応
スキーマ推論と列プルーニング対応
並列 Fragment スキャンCatalog クエリと S3 TVF で対応
述語プッシュダウン互換性のあるスカラー述語に対応
ベクトル検索vector_search() を通じて Lance のベクトルインデックスと Flat Search に対応
Lance への書き込み非対応
Time TravelLance Catalog で対応。ファイル TVF は現在のバージョンのみを読み取り
全文検索full_text_search() を通じて既存の Lance FTS インデックスに対応
ハイブリッド検索非対応

Catalog の設定、述語プッシュダウン、ベクトル検索、全文検索の詳細については、Lance Catalog を参照してください。

ファイル TVF を使用して Lance データセットをクエリする​

uri または file_path には、data/*.lance のような内部ファイルではなく、単一の Lance データセットのルートディレクトリを直接指定する必要があります。

次の例では、S3 互換のオブジェクトストレージから Lance データセットを読み取ります。

SELECT user_id, name
FROM s3(
"uri" = "s3://my-bucket/lance/user_profiles.lance",
"s3.endpoint" = "http://127.0.0.1:9000",
"s3.access_key" = "admin",
"s3.secret_key" = "password",
"s3.region" = "us-east-1",
"use_path_style" = "true",
"format" = "lance"
)
WHERE user_id > 100;

ローカルのデータセットを読み取るには、local() を使用し、file_path にデータセットのルート、backend_id に対象の BE を指定します。Doris は file_path を Lance Reader に直接渡します。user_files_secure_path を先頭に付けたり、パスを Glob として展開したりすることはありません。絶対パスを推奨します。

制限事項​

  • Lance へのアクセスは読み取り専用です。Lance テーブルの作成、書き込み、更新、削除には対応していません。
  • Lance 形式に対応しているのは s3() と local() のみです。HDFS や HTTP など、ほかのファイル TVF には対応していません。
  • 単一の TVF パスで指定できる Lance データセットは単一のものに限られ、path_partition_keys には対応していません。
  • ファイル TVF のクエリはデータセットの現在のバージョンを読み取ります。過去のバージョンを選択したり、Time Travel を実行したりするには、Lance Catalog を使用してください。
  • ローカル TVF のスキーマ検出と実行では、それぞれ独立してデータセットの最新バージョンを開きます。ローカル TVF のクエリの解析中や実行中は、データセットを変更しないでください。

参考資料​