Табличная функция file
SELECT из файлов и INSERT в файлы, аналогично табличной функции s3. Используйте file при работе с локальными файлами, а s3 — при работе с бакетами в объектных хранилищах, таких как S3, GCS или MinIO.
Функцию file можно использовать в запросах SELECT и INSERT для чтения из файлов и записи в них.
Синтаксис
SELECT параметр path также может быть выражением, возвращающим Array(String):
Аргументы
Возвращаемое значение
Примеры записи в файл
Запись в файл в формате TSV
test.tsv:
Запись в несколько файлов в формате TSV с разбиением на партиции
file указать выражение PARTITION BY, для каждой партиции будет создан отдельный файл. Разбиение данных на отдельные файлы помогает повысить производительность операций чтения.
test_1.tsv, test_2.tsv и test_3.tsv.
Примеры чтения из файла
SELECT из CSV-файла
user_files_path в конфигурации сервера и подготовьте файл test.csv:
test.csv в таблицу и выберите первые две строки:
Вставка данных из файла в таблицу
table.csv, находящегося в archive1.zip и/или archive2.zip:
Глоб-шаблоны в пути
*, чтобы
выбрать все файлы в каталоге.
*— Обозначает произвольное количество символов, кроме/, включая пустую строку.?— Обозначает один произвольный символ.{some_string,another_string,yet_another_one}— Подставляет любую из строк'some_string', 'another_string', 'yet_another_one'. Строки могут содержать символ/.{N..M}— Обозначает любое число>= Nи<= M.**- Обозначает все файлы в папке и во всех её вложенных папках.
{} аналогичны конструкциям в табличной функции remote и hdfs.
Примеры
some_dir/some_file_1some_dir/some_file_2some_dir/some_file_3another_dir/some_file_1another_dir/some_file_2another_dir/some_file_3
some_dir, используя неявный *:
Если в вашем списке файлов есть диапазоны чисел с ведущими нулями, используйте конструкцию с фигурными скобками для каждой цифры отдельно или символ
?.file000, file001, … , file999:
big_dir/:
file002 во всех папках каталога big_dir/:
Виртуальные столбцы
_path— Путь к файлу. Тип:LowCardinality(String)._file— Имя файла. Тип:LowCardinality(String)._size— Размер файла в байтах. Тип:Nullable(UInt64). Если размер файла неизвестен, значение —NULL._time— Время последнего изменения файла. Тип:Nullable(DateTime). Если время неизвестно, значение —NULL.
Настройка use_hive_partitioning
use_hive_partitioning установлен в 1, ClickHouse определяет партиционирование в стиле Hive в пути (/name=value/) и позволяет использовать столбцы партиции в запросе как виртуальные столбцы. Эти виртуальные столбцы будут иметь те же имена, что и в пути с партициями.
Пример
Использование виртуального столбца, созданного с помощью партиционирования в стиле Hive