Детали профилирования 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-клиентами и не доказывает реальную задержку или физические сканы.