Оптимизация большой таблицы BigQuery для стоимости и производительности запросов.
→Разделите таблицу по часто фильтруемому столбцу единицы времени (например, дата транзакции). Кластеризуйте таблицу по другим часто фильтруемым столбцам с высокой кардинальностью (например, `customer_id`).
Почему: Разделение — наиболее эффективный способ снижения стоимости и задержки за счет сокращения объема сканируемых данных. Кластеризация дополнительно улучшает производительность за счет сортировки данных внутри разделов.
Источник↗
Предотвращение копирования данных из конфиденциального набора данных BigQuery в неавторизованное место назначения (например, в публичный сегмент GCS), даже пользователем с действительными учетными данными.
→Используйте VPC Service Controls для создания периметра безопасности вокруг проекта, содержащего набор данных BigQuery.
Почему: VPC Service Controls действуют как "виртуальный брандмауэр" для сервисов GCP, предотвращая выход данных за пределы периметра. Это критически важный многоуровневый контроль против утечки данных.
Источник↗
Ограничить доступ к конфиденциальным столбцам (например, PII) в таблице BigQuery для авторизованных групп, позволяя другим запрашивать остальные столбцы.
→Используйте Data Catalog для создания таксономии и тегов политик. Примените теги политик к конфиденциальным столбцам и предоставьте роль "Fine-Grained Reader" авторизованным группам.
Почему: Это нативный, масштабируемый метод обеспечения безопасности на уровне столбцов в BigQuery. Он обеспечивает централизованное управление без необходимости создавать и управлять отдельными представлениями.
Отфильтровать таблицу таким образом, чтобы пользователи могли видеть только те строки, которые относятся к ним (например, менеджеры по продажам видят только данные своего региона).
→Создайте политику безопасности на уровне строк для таблицы, которая фильтрует строки на основе `SESSION_USER()` или другого критерия.
Почему: Обеспечивает динамическую фильтрацию на основе предикатов во время выполнения запроса. Это более безопасно и управляемо, чем создание авторизованного представления для каждого пользователя или роли.
Автоматическое удаление данных из таблицы BigQuery по истечении указанного срока хранения для соблюдения нормативных требований (например, удаление данных старше 7 лет).
→Для временных рядов данных установите срок действия раздела для таблицы, разделенной по времени. Для других таблиц установите срок действия таблицы по умолчанию.
Почему: Это встроенная функция "настроил и забыл", которая обеспечивает соответствие требованиям без ручных скриптов очистки или внешней оркестрации.
Таблица BigQuery была случайно изменена или удалена.
→Используйте BigQuery Time Travel для запроса таблицы в том виде, в каком она существовала в определенный момент времени до инцидента, используя `FOR SYSTEM_TIME AS OF`.
Почему: BigQuery автоматически сохраняет 7-дневную историю данных таблицы. Это позволяет мгновенно восстанавливать данные в пределах окна Time Travel без необходимости восстановления из резервных копий.
Источник↗
Обнаружение, управление, защита и мониторинг информационных активов (BigQuery, GCS) в рамках всей организации.
→Используйте Dataplex.
Почему: Dataplex действует как интеллектуальная фабрика данных, предоставляя единую панель для управления данными, обеспечения качества, отслеживания происхождения, обнаружения и управления жизненным циклом данных в различных разрозненных хранилищах.
Понимание и визуализация того, как данные проходят от исходных систем через задания преобразования до конечных отчетных таблиц.
→Используйте Dataplex Data Lineage.
Почему: Автоматически собирает информацию о происхождении данных из BigQuery, Data Fusion и журналов Composer, чтобы предоставить интерактивное, графовое представление зависимостей данных для анализа воздействия и аудита.
Обеспечение предсказуемой производительности запросов и стоимости для критически важных рабочих нагрузок, избегая "конкуренции за слоты" со стороны других пользователей.
→Приобретите BigQuery Editions (ценообразование на основе мощности). Создайте резервации, чтобы выделить пул слотов для конкретных проектов или папок.
Почему: Переход от общего пула по требованию к выделенной вычислительной мощности, гарантирующий ресурсы для критически важных задач и обеспечивающий предсказуемое выставление счетов.
Сканирование всех информационных активов в BigQuery и Cloud Storage для автоматического выявления и классификации PII и других конфиденциальных данных.
→Настройте задание сканирования обнаружения Cloud Data Loss Prevention (DLP).
Почему: Cloud DLP использует сотни предопределенных детекторов для обнаружения конфиденциальных данных в масштабе. Он может интегрироваться с Data Catalog для автоматического применения тегов политик для управления.
Контейнерному приложению (в GKE или Cloud Run) требуется безопасная аутентификация в BigQuery без управления ключами учетных записей служб.
→Используйте Workload Identity.
Почему: Рекомендуемая лучшая практика для аутентификации между службами. Она сопоставляет учетную запись службы Kubernetes с учетной записью службы GCP IAM, используя кратковременные, автоматически ротируемые токены.
Для обеспечения соответствия требованиям, сгенерируйте отчет обо всех пользователях, которые запрашивали конфиденциальную таблицу BigQuery за последние 90 дней.
→Включите и запросите журналы аудита BigQuery Data Access, которые могут быть направлены в набор данных BigQuery для анализа.
Почему: Журналы Data Access предоставляют неизменяемую запись о том, кто, когда и к каким данным обращался. Они необходимы для аудита безопасности и соответствия требованиям, но должны быть явно включены.
Определите, какие пользователи или запросы являются причиной высоких затрат в BigQuery.
→Запросите представление `INFORMATION_SCHEMA.JOBS`.
Почему: Это представление метаданных содержит подробную информацию о каждом выполненном запросе, включая пользователя, оплаченные байты и потребленные слоты, что позволяет точно атрибутировать и анализировать затраты.