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

Lance

примечание

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

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

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

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

ВозможностьПоддержка
Lance CatalogПоддерживает Filesystem Catalog и REST Catalog
Файловые TVFПоддерживают s3() и local()
Определение схемы и отсечение столбцовПоддерживается
Параллельное сканирование FragmentПоддерживается в запросах через Catalog и TVF для S3
Проталкивание предикатовПоддерживает совместимые скалярные предикаты
Векторный поискПоддерживает векторные индексы Lance и Flat Search с помощью vector_search()
Запись в LanceНе поддерживается
Time TravelПоддерживается через Lance Catalog; файловые TVF читают только текущую версию
Полнотекстовый поискПоддерживает существующие FTS-индексы Lance с помощью full_text_search()
Гибридный поискНе поддерживается

Подробнее о настройке 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 не поддерживается.
  • Запросы через файловые TVF читают текущую версию набора данных. Чтобы выбрать историческую версию или воспользоваться Time Travel, используйте Lance Catalog.
  • Определение схемы и выполнение запроса через Local TVF независимо друг от друга открывают последнюю версию набора данных. Избегайте изменения набора данных во время анализа и выполнения запроса через Local TVF.

Ссылки​