Перейти к содержимому
Последнее обновление

Lance

примечание

Поддержка Lance доступна начиная с Apache Doris 4.2.

Lance представляет собой столбцовый формат данных, предназначенный для аналитики и задач AI. Doris может читать наборы данных Lance через Lance Catalog или с помощью табличных функций s3() и local() (TVF).

Сопоставление типов Lance см. в разделе Сопоставление типов данных Doris.

Поддерживаемые возможности​

ВозможностьПоддержка
Lance CatalogПоддерживаются Filesystem Catalog и REST Catalog
Файловые TVFПоддерживаются s3() и local()
Автоматическое определение схемы и отсечение столбцовПоддерживаются
Параллельное сканирование фрагментовПоддерживается в запросах через Catalog и в TVF для S3
Проталкивание предикатовПоддерживаются совместимые скалярные предикаты
Векторный поискПоддерживаются векторные индексы Lance и Flat Search через vector_search()
Запись в LanceНе поддерживается
Time TravelНе поддерживается
Полнотекстовый поиск / гибридный поискНе поддерживаются

Подробнее о настройке Catalog, сопоставлении типов, проталкивании предикатов и векторном поиске см. в разделе Lance Catalog.

Запрос к набору данных Lance с помощью файловой TVF​

Параметр uri или file_path должен указывать непосредственно на корневой каталог одного набора данных Lance, а не на внутренний файл, например data/*.lance.

В следующем примере выполняется чтение набора данных Lance из объектного хранилища, совместимого с S3:

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, а целевой BE с помощью backend_id. Doris передаёт file_path напрямую в Lance Reader, не добавляя в начало user_files_secure_path и не раскрывая путь как шаблон Glob. Рекомендуется использовать абсолютный путь.

Ограничения​

  • Доступ к Lance возможен только для чтения. Создание, запись, обновление и удаление таблиц Lance не поддерживаются.
  • Формат Lance поддерживают только s3() и local(). Другие файловые TVF, например HDFS и HTTP, не поддерживаются.
  • Путь в TVF может указывать только на один набор данных Lance; path_partition_keys не поддерживается.
  • Запросы читают текущую версию набора данных. С помощью SQL нельзя выбрать версию или выполнить Time Travel.
  • При определении схемы локальной TVF и при её выполнении последняя версия набора данных открывается независимо. Не изменяйте набор данных во время анализа и выполнения запроса с локальной TVF.

Справочные материалы​