Файлы CSV и JSON
Подключение Локальные файлы позволяет выполнять SQL-запросы к файлам на Mac без загрузки в базу данных. Каждая группа файлов становится датасетом: таблицей только для чтения, которую можно открыть, запросить, экспортировать и использовать в задачах. Запросы выполняет DuckDB, поэтому пишите их на диалекте DuckDB SQL.
Создание подключения
- Нажмите Подключения на полосе слева.
- В разделе Источники данных нажмите + (Добавить источник).
- В окне Создать подключение выберите Локальные файлы в группе Файлы и импорт.
- Введите Название подключения.
- В блоке Файловые датасеты нажмите Добавить датасет.
- Нажмите Выбрать файлы и выберите один или несколько файлов
.csv,.json,.jsonlили.ndjson. - Проверьте Имя SQL-таблицы. QueryLane берёт его из имени первого файла и заменяет пробелы и знаки препинания на
_. Это имя используется в запросах. - Оставьте в Формат файлов значение Определять автоматически или выберите CSV, JSON или JSONL. Автоматическое определение работает, только если у всех файлов датасета одно расширение.
- При необходимости добавьте другие датасеты через Добавить датасет и нажмите Создать.
Если выбрать для датасета несколько файлов, QueryLane объединит их в одну таблицу и сопоставит колонки по именам.
Параметры форматов
Для CSV в блоке Параметры CSV есть:
- Первая строка содержит названия колонок: включено по умолчанию. Выключите, если в файле нет строки заголовков.
- Читать все колонки как текст: все колонки читаются как строки, числа и даты не определяются.
- Разделитель: оставьте пустым, чтобы он определился сам, или введите один символ, например
;.
Для JSON в блоке Параметры JSON есть Расположение записей: Определять автоматически, Массив JSON, Один объект в строке или Неструктурированный JSON.
Запросы к файлам
В обозревателе у подключения есть группа Датасеты, в ней по таблице на каждый датасет. Откройте датасет, чтобы посмотреть строки, или создайте запрос и используйте имя датасета как имя таблицы:
SELECT country, count(*) AS customers
FROM customers
GROUP BY country
ORDER BY customers DESC;Датасеты одного подключения можно соединять между собой. План показывает план выполнения DuckDB. С результатами запросов можно работать как с любыми другими: экспортировать их или скопировать в подключение к базе данных через Копировать данные.
QueryLane читает файлы при каждом запуске запроса, поэтому сохранённые изменения в файле видны при следующем запуске. Подключение хранит пути к файлам, поэтому если файл переместить или удалить, запрос завершится ошибкой Файл датасета не найден.
Чтобы позже добавить или убрать файлы и датасеты, нажмите Редактировать в строке подключения в разделе Источники данных. Кнопка видна, пока подключение закрыто.
Подключение «Локальные файлы» можно выбрать и в шаге задачи. Подробнее на странице Типы шагов.
Ограничения
- Подключение доступно только для чтения. За один запуск выполняется один оператор, и это должен быть
SELECT(сWITHили без) илиEXPLAIN. Вставлять, изменять и удалять строки, создавать таблицы и импортировать данные нельзя. - Запросы читают файлы только из папок, где лежат файлы датасетов, и не имеют доступа к сети.
- В подключении может быть до 100 датасетов, в датасете до 1 000 файлов. Имена датасетов должны быть уникальными без учёта регистра.
- Каждый запрос выполняется в отдельной сессии DuckDB с ограничениями: до 1 ГБ памяти, до 2 ГБ временных файлов на диске и 2 потока.
- Один объект JSON может занимать до 16 МБ.