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

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 で対応
述語プッシュダウン対応するスカラー述語をサポート
ベクトル検索Lance ベクトルインデックスと vector_search() を使った Flat Search をサポート
Lance への書き込み非対応
Time Travel非対応
全文検索/ハイブリッド検索非対応

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 には対応していません。
  • クエリはデータセットの現在のバージョンを読み取ります。SQL で Version を選択したり、Time Travel を実行したりすることはできません。
  • ローカル TVF では、スキーマの検出時と実行時に、それぞれ独立して最新のデータセットバージョンを開きます。ローカル TVF のクエリを解析・実行している間は、データセットを変更しないでください。

参考資料​