Связанные таблицы

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; найденные правила описывают ограниченную выборку. См. профилирование.

Следующий шаг

Бизнес-правила.