Skip to content

Файлы CSV и JSON ​

Подключение Локальные файлы позволяет выполнять SQL-запросы к файлам на Mac без загрузки в базу данных. Каждая группа файлов становится датасетом: таблицей только для чтения, которую можно открыть, запросить, экспортировать и использовать в задачах. Запросы выполняет DuckDB, поэтому пишите их на диалекте DuckDB SQL.

Создание подключения ​

  1. Нажмите Подключения на полосе слева.
  2. В разделе Источники данных нажмите + (Добавить источник).
  3. В окне Создать подключение выберите Локальные файлы в группе Файлы и импорт.
  4. Введите Название подключения.
  5. В блоке Файловые датасеты нажмите Добавить датасет.
  6. Нажмите Выбрать файлы и выберите один или несколько файлов .csv, .json, .jsonl или .ndjson.
  7. Проверьте Имя SQL-таблицы. QueryLane берёт его из имени первого файла и заменяет пробелы и знаки препинания на _. Это имя используется в запросах.
  8. Оставьте в Формат файлов значение Определять автоматически или выберите CSV, JSON или JSONL. Автоматическое определение работает, только если у всех файлов датасета одно расширение.
  9. При необходимости добавьте другие датасеты через Добавить датасет и нажмите Создать.

Если выбрать для датасета несколько файлов, QueryLane объединит их в одну таблицу и сопоставит колонки по именам.

Параметры форматов ​

Для CSV в блоке Параметры CSV есть:

  • Первая строка содержит названия колонок: включено по умолчанию. Выключите, если в файле нет строки заголовков.
  • Читать все колонки как текст: все колонки читаются как строки, числа и даты не определяются.
  • Разделитель: оставьте пустым, чтобы он определился сам, или введите один символ, например ;.

Для JSON в блоке Параметры JSON есть Расположение записей: Определять автоматически, Массив JSON, Один объект в строке или Неструктурированный JSON.

Запросы к файлам ​

В обозревателе у подключения есть группа Датасеты, в ней по таблице на каждый датасет. Откройте датасет, чтобы посмотреть строки, или создайте запрос и используйте имя датасета как имя таблицы:

sql
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 МБ.