Справочник

Данные

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

Содержание

Таблица, которая принадлежит рабочему пространству

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

Вкладка данных со списком из шести датасетов; в каждой строке имя, число строк и колонок, теги, автоматизации, которые им пользуются, автор и дата изменения. Над списком — поиск, кнопки создания датасета и импорта файла, а также чипы «все датасеты», «корзина» и «новая папка».
Датасеты рабочего пространства и то, что их наполняет: колонка «используется в» называет автоматизацию, которая в него пишет.

У колонок есть тип, и именно его соблюдает сетка: текст и длинный текст, число, флажок, дата и дата со временем, URL, адрес почты, телефон, выбор из цветных вариантов и теги. Номер строки и дата создания вычисляются, а не хранятся, — поддерживать их вручную не приходится.

Ещё три хранят не значение, а объект рабочего пространства — профиль, автоматизацию или прокси, — и хранят его идентификатор, поэтому ячейка указывает на то же самое и после того, как кто-то это переименовал. Колонка может держать и параметр автоматизации: именно так таблица кормит процесс, который её читает.

Папки раскладывают датасеты, когда список растёт, а удалённый ждёт в корзине, а не исчезает сразу.

Удалённый датасет ждёт в корзине тридцать дней, после чего вычищается. Восстановите его оттуда или очистите корзину сами, если ждать не хочется.

Колонки и их типы

У каждой колонки есть тип, и именно его соблюдает сетка: от типа зависит редактор в ячейке, порядок сортировки и то, как должно выглядеть значение, чтобы его приняли. Типов на выбор: 17.

Текстtext
Длинный текстlongText
Числоnumber
Хранится как настоящее число, поэтому сортировка и диапазоны числовые.
Флажокcheckbox
Датаdate
Хранится как YYYY-MM-DD.
Дата и времяdatetime
Хранится как полная метка времени в UTC.
URLurl
Почтаemail
Телефонphone
Статус (один вариант)select
Одна цветная плашка в строке — из списка, который вы задаёте.
Теги (несколько вариантов)tags
Сколько угодно плашек в строке — из списка, который вы задаёте.
Дата созданияcreatedAt
Читается из самой строки. Не редактируется.
Номер строкиrowNumber
Позиция строки на странице. Не редактируется.
Параметр автоматизацииparameter
Хранит ссылку вида {{vars.email}}, которую разрешают автоматизации.
Профильprofile
Хранит один из профилей рабочего пространства; ячейка выбирает его из списка.
Автоматизацияautomation
Хранит одну из автоматизаций рабочего пространства, выбранную из списка.
Проксиproxy
Хранит один из прокси рабочего пространства, выбранный из списка.

Дата создания и номер строки вычисляются, а не хранятся, — они читаются из самой строки, поэтому их нечего поддерживать вручную и нечего редактировать.

Открытый датасет: десять строк под типизированными колонками — имя профиля, cookie, тип прокси, user agent, заметки и статус; в заголовке каждой колонки значок её типа, а колонка статуса рисует цветные варианты «пройдено», «ошибка» и «в ожидании». На панели сверху экспорт, импорт файла, переименование и удаление, а под последней строкой — кнопка добавления строки.
Открытый датасет. У каждой колонки есть тип и свой редактор, а строки подгружаются страницами прямо из базы, в порядке добавления.

На параметре автоматизации стоит задержаться. Ячейка такой колонки хранит не значение, а ссылку — {{vars.email}}, ровно в том виде, в каком её пишет автоматизация, — и редактор предлагает каждый параметр, объявленный любой автоматизацией рабочего пространства, так что вы выбираете из настоящего списка, а не вводите имя наугад. В этом и разница между датасетом, который отчитывается о случившемся, и датасетом, который является списком работ: шаг loadRows читает колонку обратно, и каждая строка становится входом для одного прохода завтрашнего запуска.

Как в него попадают строки

Большинство строк приходит само. Самый короткий путь — вкладка «Скраперы»: выберите готовый сборщик, заполните его форму, и строки лягут в новую собственную таблицу — окно браузера не открывается, слот автоматизации не тратится. Второй путь, он же общий, — автоматизация, работающая на профиле: она пишет извлечённое прямо в датасет, а шаги сохранения и загрузки строк позволяют одной автоматизации передать таблицу следующей: собрали сегодня, действуем завтра. Шаг запуска скрапера соединяет оба — он запускает сборщик изнутри процесса, и это единственный путь, который может складывать результат в названную вами таблицу, а не в новую каждый раз, так что сбор по расписанию наращивает одну таблицу вместо того, чтобы каждую ночь оставлять после себя ещё одну.

Какую таблицу заполнит скрапер, решает только шаг runScraper. Запущенный со вкладки «Скраперы», из ассистента или через API, сбор всегда заводит собственную таблицу, названную по запросу и минуте. Шаг вместо этого может назвать одну таблицу и складывать каждый запуск в неё — создав её с колонками этого сборщика, если её ещё нет, дописывая после этого или обновляя на месте по колонке, с которой вы сопоставляете. Ночной сбор тогда растит одну таблицу, которую вы откроете в понедельник, а не семь.

Импорт файла принимает CSV, JSON, TXT или XLSX и либо строит датасет по собственным заголовкам файла, либо дописывает в уже существующий, добавляя к нему колонки, которые файл принёс с собой.

Диалог импорта файла поверх вкладки данных: имя CSV с числом строк и колонок, флажок «первая строка — названия колонок», сетка предпросмотра первых строк и два варианта — новый датасет, который начинается пустым и принимает все строки файла, или существующий, куда строки дописываются, а новые колонки вливаются в схему.
Файл в предпросмотре и выбор, на котором держится импорт: собрать датасет по заголовкам самого файла или дописать строки в уже существующий.

Импорт задаёт один вопрос, и он полезный. «Новый датасет» стартует пустым и принимает каждую строку файла, беря колонки из его же строки заголовков. «Существующий датасет» дописывает в таблицу, которая у вас уже есть, а любая принесённая файлом колонка, которой в таблице нет, вливается, а не отбрасывается.

Ассистент — четвёртый способ, и часто самый быстрый. Попросите у него таблицу по имени, и он прочитает строки, отфильтрует и посчитает их, добавит или исправит, вычистит дубликаты. Всё пакетное или разрушительное поднимает карточку подтверждения до запуска, поэтому просьба, которая обернулась четырьмя тысячами строк, сначала спросит вас.

Работа со строками

Нажмите на ячейку, чтобы отредактировать её на месте; у каждого типа колонки свой редактор. Строки и колонки добавляются прямо из сетки, есть фильтр и сортировка, галочками отмечают строки для пакетного удаления, а первую колонку можно закрепить, когда таблица шире окна. Экспорт отдаёт всё целиком в CSV или JSON.

Строки подгружаются страницами прямо из базы данных в порядке добавления, поэтому вы видите сам датасет, а не одну его страницу, притворяющуюся отсортированной. Таблица на пятьдесят тысяч строк открывается так же быстро, как таблица на пятьдесят.

Фильтрация и сортировка по той же причине происходят на сервере и по всей таблице, а не по странице перед вами. Третье нажатие на заголовок колонки снимает сортировку и возвращает таблицу к её хранимому порядку — ради этого порядок и нужен: это единственная раскладка, которая всегда является правдой о датасете.

Потолки — это как раз те числа, которые стоит знать, прежде чем на них строить: сто тысяч строк в датасете, двести датасетов в рабочем пространстве, шестьдесят колонок в таблице и 64 КиБ в любой отдельной строке.

Встроенное назначение

Ваши датасеты — одно из назначений, в которые могут писать шаги баз данных. saveRows и loadRows указывают на вашу собственную таблицу ровно так же, как на Supabase, Google Sheet или CSV на диске: вы выбираете Argus Datasets и называете таблицу. Учётных данных хранить не нужно, подключать нечего — это и так ваше рабочее пространство.

Две вещи, которых большинство соседей не умеет. Оно делает upsert по фильтру: дайте saveRows колонку для сопоставления — и каждая строка с совпавшим значением будет слита поверх, без всякого требуемого или подразумеваемого уникального индекса. И сопоставленный ключ, которому не нашлось колонки, — это добавление, а не ошибка, поэтому запуск, начавший возвращать на одно поле больше, не падает. Supabase в этом месте отказывает: добавить туда колонку — это изменение схемы базы, в которой Argus всего лишь гость.

Назначением по умолчанию оно не бывает никогда, и это намеренно. Шаг saveRows обязан назвать его явно, поэтому ничто из написанного вами против собственной базы не начнёт тихо заполнять датасет. Полный каталог остальных — на странице «Базы данных и файлы».

Датасеты есть в локальном API, и вся вкладка из него доступна: создать датасет, заменить объявленные колонки, дописать строки, переписать или удалить их по идентификатору, запросить с фильтрами и агрегатами, провести через корзину. У каждой из этих операций есть и инструмент для агента, поэтому встроенный ассистент и ваш собственный код управляют одной и той же таблицей одинаково. Чтение идёт страницами, а не выгрузкой целиком: запрос просматривает ограниченный срез и сообщает, если датасет оказался больше, — так частичный ответ никогда не выдаётся за всю правду.

Чтение страницы без браузера

Шаг reach забирает страницу, не открывая её. Канал он выбирает по URL — или вы называете его сами:

autowebyoutuberedditrss

YouTube, Reddit и RSS отвечают структурированными строками — по одной на видео, пост или элемент, — а web отдаёт страницу как markdown. Ответ ложится в переменную, которую вы назвали, а превращает его в таблицу шаг saveRows, настроенный писать по строке на элемент. Два шага, без браузера и без профиля.

Всё, что забирает reach, уходит через собственное соединение лаунчера — не через прокси профиля и не с его cookie. Именно поэтому он быстрый и дешёвый, и в этом же его предел: страница за логином требует настоящего шага браузера, работающего от той личности, которая туда вошла.

Reach стоит рядом с остальными шагами данных на странице «Чтение и хранение данных», бок о бок с двумя, которые двигают строки туда и обратно.

Дайте результатам куда приземлиться

Вкладка «Данные» — в лаунчере. Датасет стоит больше всего тогда, когда его что-то наполняет, поэтому обычно сначала автоматизация — а календарь после неё.