Связанные таблицы¶
English · Русский
Для чего это нужно¶
Разделите анализ входа и создание строк, чтобы проверить предположения до генерации. Для папки CSV это позволяет отдельно оценить найденные связи.
Что получится в результате¶
В out/ru-workflow появятся профиль, проверенная спецификация и набор таблиц customers/orders.
Предварительные требования¶
Установлен Python 3.11+ и пакет проекта. Терминал открыт в корне репозитория agent-paranoid-android; виртуальное окружение активно. Входы — только вымышленные файлы из репозитория. Папка назначения новая; есть права чтения входов и записи результата. Для команд ниже используйте macOS/Linux; в PowerShell вводите каждую команду одной строкой без \.
Пошаговое выполнение¶
Шаг 1. Постройте профиль¶
Что сделать: Прочитайте вымышленные связанные CSV без использования кеша.
Где выполнить: Корень checkout.
Команда или пример:
test-data-agent profile-example examples/relational_csv/input --no-cache --output out/ru-workflow/profile.json
Что должно произойти: Записаны метаданные двух сущностей и кандидаты зависимостей.
Как проверить: В JSON есть entities; исходные строки не возвращаются.
Если не получилось: Проверьте наличие папки и один CSV на сущность. При лимите уменьшите вход, не отключайте защиту.
Шаг 2. Составьте спецификацию¶
Что сделать: Задайте по 12 строк на сущность.
Где выполнить: Корень checkout.
Команда или пример:
test-data-agent infer-spec out/ru-workflow/profile.json --count 12 --output out/ru-workflow/dataset_spec.yaml
Что должно произойти: Создан редактируемый контракт генерации.
Как проверить: Файл YAML читается; сущности и поля совпадают с профилем.
Если не получилось: Если профиль отклонён, создайте его заново текущей версией.
Шаг 3. Проверьте контракт¶
Что сделать: Откройте YAML в текстовом редакторе; проверьте row_count, primary_key, sensitive, распределения, relationships и constraints.
Где выполнить: Локальный редактор; файл out/ru-workflow/dataset_spec.yaml.
Команда или пример:
row_count: 12
Что должно произойти: Вы понимаете, какие поля и связи будут созданы.
Как проверить: У каждой связи существуют оба поля; категории не содержат чувствительных значений; даты соответствуют задаче.
Если не получилось: Если смысл связи неизвестен, остановитесь и уточните у владельца домена. Не считайте confidence доказательством.
Шаг 4. Сгенерируйте новые значения¶
Что сделать: Используйте проверенный контракт и явный seed.
Где выполнить: Корень checkout.
Команда или пример:
test-data-agent generate out/ru-workflow/dataset_spec.yaml --seed 24680 --format csv --output out/ru-workflow/generated
Что должно произойти: Появятся customers.csv, orders.csv и отчёты.
Как проверить: В manifest synthetic=true, source_rows_copied=false, validation_valid=true.
Если не получилось: При противоречащих правилах исправьте spec; не выключайте validation.
Шаг 5. Проверьте папку повторно¶
Что сделать: Передайте папку данных, а не отдельный CSV.
Где выполнить: Корень checkout.
Команда или пример:
test-data-agent validate out/ru-workflow/dataset_spec.yaml out/ru-workflow/generated --output out/ru-workflow/revalidation.json
Что должно произойти: Выполнена независимая валидация по тому же контракту.
Как проверить: Код 0 и valid=true в отчёте.
Если не получилось: При коде 1 прочитайте секции отчёта; при коде 2 проверьте пути и параметры.
Проверка результата¶
Убедитесь, что обе таблицы содержат по 12 строк. Повторная валидация должна включать schema, relationships, constraints и privacy. Совпадение отчёта с контрактом не доказывает, что автоматически выведенный контракт верно отражает бизнес.
Типичные ошибки¶
| Ошибка | Причина | Решение |
|---|---|---|
unsafe filesystem path |
Небезопасный путь | Выберите обычный каталог без symlink-компонентов. |
| Код 1 при validate | Нарушен проверяемый контракт | Прочитайте errors соответствующей секции и исправьте spec или генерацию. |
Упрощённые способы¶
generate-from-example (синоним generate-from-csv-folder) выполняет весь процесс для папки: test-data-agent generate-from-example examples/relational_csv/input --count 12 --seed 24680 --format csv --no-cache --output out/ru-folder. Он создаёт profile.json, dataset_spec.yaml, файлы сущностей и отчёты. Этот сокращённый пример сверён с parser, но отдельно не запускался в аудите; для нового домена предпочтительны отдельные этапы с review.
Кеш папочных профилей хранит метаданные и учитывает имена, размеры, время изменения файлов, sampling и нормализованную local-category политику; при чтении разрешения перепроверяются. Это не криптографическое доказательство неизменности: после изменения входов используйте --no-cache. --rule-sample-rows по умолчанию 50 000; найденные правила описывают ограниченную выборку. См. профилирование.