Детали профилирования CSV

English · Русский

Практический путь: первый CSV; поля профиля: профили и spec. Профиль описывает ограниченное свидетельство, а не разрешение повторно использовать source values.

  • Local-category opt-in допускает проверенный string enum до 20 значений длиной до 64 символов после content checks.
  • Повторяющиеся low-cardinality string IDs могут остаться категориями с синтетическими labels. Для identifier field bounded distinct count может задать размер синтетического key pool; исходные ключи и частоты не сохраняются.
  • Distinct tracker держит до 100000 SHA-256 fingerprints на столбец отдельно от bounded sample. После лимита count — lower_bound, а не доказательство уникальности или PK. Fingerprints в profile не пишутся.
  • String identifiers начинаются с synthetic_ и ASCII integer; это может менять seeded bytes относительно старого генератора без изменения schema_version.

Свидетельства для пула идентификаторов

Источник Возможности и ограничения
Один CSV или папка CSV Полный ограниченный distinct count может задать размер пула; усечённый счётчик или переполнение не могут.
Таблица PostgreSQL, профиль запроса PostgreSQL или Trino Агрегатный distinct count может задать пул повторяющихся идентификаторов. Объявленный первичный ключ PostgreSQL получает новые уникальные идентификаторы.
Агрегатный профиль Trino или старый JSON-профиль Переданный положительный distinct count повторяющегося поля может задать размер синтетического пула. Приближённое значение остаётся приближённым свидетельством об источнике.
Parquet Ограниченный проход даёт точную оценку уникальности скаляров либо нижнюю границу; неподдерживаемые значения сохраняют неизвестную оценку. По ней не выводятся пул или первичный ключ. Отсутствие статистики null также блокирует автоматическое получение spec.

Пул определяет доступный синтетический домен, а не частоты исходных ключей или соответствие исходным строкам. При меньшем числе выходных строк или наличии null часть пула может не использоваться. Независимые домены идентификаторов остаются раздельными; проверенные внешние ключи связывают созданные дочерние значения с созданными родительскими ключами.

Числовые свидетельства после исправлений main

Negative decimal с ненулевой дробной частью не получает phone semantics только из-за пунктуации. Positive phone-shaped decimal и integral decimal/exponent identifiers остаются потенциально чувствительными независимо от amount-like имени. Sensitive names и secrets сохраняют veto; sensitive profile не содержит ranges и исходных categories. Local-category не является declassification.

NaN, infinity и overflowing exponent text не являются конечной числовой статистикой. Столбец с ними не выводится как полное numeric distribution. Folder cache format 7 пересчитывает старые profiles. Standalone profile нужно получить заново и проверить новый spec; существующий approved plan не переписывается автоматически.

Это поддерживаемое описание текущего main после 1.6.0, а не утверждение, что старый PyPI wheel получил исправления. Версию пакета и documentation revision рассматривайте отдельно.

Оценка уникальности Parquet

Один ограниченный проход проверки содержимого также считает уникальные скаляры: не более 10 000 внутренних SHA-256 отпечатков на столбец. В профиль попадают только доля среди непустых значений и тип оценки exact либо lower_bound. Повторения на границе лимита сохраняют точную оценку; новое уникальное значение сверх лимита означает нижнюю границу. Для бинарных, составных и нечисловых NaN/Infinity значений оценка остаётся неизвестной. Исходные значения и отпечатки не сохраняются в артефактах. Все ограничения на ячейки, объём и время сохраняются. По этой оценке не создаются первичные ключи, пулы идентификаторов или связи. Отсутствующая или некорректная статистика null по группам строк по-прежнему блокирует автоматическое построение спецификации. Старые профили следует построить заново и проверить изменившиеся отпечатки; утверждённые планы автоматически не переписываются.

Восстановление после превышения лимита категорий

--local-category ENTITY.FIELD сохраняет только явно разрешённые безопасные перечисления: по умолчанию до 20 значений длиной не более 64 символов. Проверки имён, содержимого и идентификаторов сохраняются. При превышении лимита уберите этот параметр для поля и постройте профиль с синтетическими метками либо задайте независимое синтетическое перечисление в проверенной DatasetSpec. Не обрезайте реальное перечисление и не увеличивайте общий бюджет. privacy_settings.max_safe_categories в DatasetSpec не расширяет разрешения профилирования источника.

Валидатор прекращает чтение при первом значении сверх лимита. Пределы должны быть положительными целыми числами. Для SQL область и происхождение категории проверяются после запроса схемы без строк и до подсчёта строк и агрегатов. Некорректный запрос не публикует частичный доверенный профиль.

Явная синтетическая замена числового CSV-поля

Положительные числа могут выглядеть как телефон. Профиль сохраняет чувствительность и маскировку. Если все непустые значения проходят конечный числовой разбор, он добавляет numeric_storage_type: integer|float. Это сведения о хранении, без исходных значений, границ или доказательства финансовой точности. Поздний выброс, форматированный телефон, NaN, бесконечность или распознанный секрет не разрешают замену по числовому большинству.

Для настоящей меры используйте infer-spec profile.json --decimal-fields reviewed.json --output dataset_spec.yaml. В JSON/YAML сопоставьте ENTITY.FIELD с полным FieldSpec: совпадающее name, data_type: decimal, semantic_type: numeric_measure и distribution вида decimal_range с независимо заданными синтетическими precision, scale, min, max. Пример и ограничения приведены в английском справочнике. Исходные границы не извлекаются. Защищённые имена, идентификаторы, кандидаты первичного ключа и концы связей отклоняют замену. SQL/Parquet DECIMAL сохраняет прежнее требование совпадения объявленных precision/scale.

Проверьте спецификацию перед генерацией. Профиль остаётся чувствительным; советник не снимает классификацию автоматически. В ожидающем подтверждения agent-workspace создайте отдельную спецификацию через infer-spec, перенесите только проверенное поле в dataset_spec.yaml, сохраните настройки генерации плана, выполните agent-review и подтвердите новый отпечаток. Не заменяйте настройки плана значениями infer-spec по умолчанию. Формат кэша папки 8 требует перепрофилирования старого кэша. Старый неоднозначный профиль без сведений о хранении также нужно построить заново. Сохранённые планы не обновляются молча: изменение профиля или диапазона требует новой проверки. При отсутствии сведений поле не сериализуется; DatasetSpec остаётся версии 1.1.

Ограниченные группы SQL-агрегатов

profile-query объединяет сводки не более восьми полей в один доверенный SELECT. Для 48 полей после авторизации по метаданным это восемь запросов вместо пятидесяти: проверка схемы без строк, подсчёт строк и шесть групп сводок. Авторизация требует дополнительных запросов метаданных: обычно одного, а PostgreSQL wildcard-discovery может добавить ещё один. Обычный полный итог — девять вместо пятидесяти одного. Каждая явно разрешённая локальная категория требует отдельного ограниченного запроса. Обычное профилирование таблиц не меняется.

Сохраняются счётчики, числовая статистика, защита временных границ и проверки категорий. Исходный разрешённый запрос входит в каждую группу один раз; временные таблицы и возврат исходных строк не добавляются. Группа ограничена восемью полями, 72 ячейками сводки и 64 КиБ дополнительного SQL. Некорректная или неполная сводка отклоняется без доверенного частичного профиля.

Прежние лимиты запросов, результата, времени, столбцов и сканирования действуют раздельно и не увеличиваются. PostgreSQL учитывает реальные запросы и суммарные строки/ячейки результата; Trino — также байты результата и консервативную оценку сканирования на каждый выполненный запрос. При неизменных агрегатах профиль и его отпечаток не меняются; миграция схемы/кэша не требуется. Число запросов измерено fake-клиентами и не доказывает реальную задержку или физические сканы.