Если к вам обратился пользователь с просьбой удалить его персональные данные, используйте Standard SQL-запросы в Google BigQuery для удаления собранных в потоках данных по конкретному User ID или email.
Ниже представлены таблицы в Google BigQuery, в которые потоки OWOX BI собирают персональные данные пользователей, и примеры запросов для поиска и удаления этих данных:
Таблицы BigQuery с персональными данными из источников | Запрос для поиска таблицы | Запрос для удаления данных |
---|---|---|
Источник: Google Analytics Таблица: streaming_ |
SELECT date FROM `project.dataset.streaming_*` WHERE userEmail = 'user@email.com' OR userId = '0000' GROUP BY date ORDER BY date | DELETE FROM `project.dataset.streaming_YYYYMMDD` WHERE userEmail = 'user@email.com' OR userid = '0000' |
Источник: Google Analytics Таблица: session_streaming_ |
SELECT date FROM `project.dataset.session_streaming_*` WHERE user.email = 'user@email.com' OR user.id = '0000' GROUP BY date ORDER BY date | DELETE FROM `project.dataset.session_streaming_YYYYMMDD` WHERE user.email = 'user@email.com' OR user.id = '0000' |
Источник: Google Analytics Таблица: owoxbi_sessions_ |
SELECT date FROM `project.dataset.owoxbi_sessions_*` WHERE user.email = 'user@email.com' OR user.id = '0000' GROUP BY date ORDER BY date | DELETE FROM `project.dataset.owoxbi_sessions_YYYYMMDD` WHERE user.email = 'user@email.com' OR user.id = '0000' |
Источник: AppsFlyer Таблица: android_events_ |
SELECT FORMAT_DATE("%G%m%d", DATE(TIMESTAMP(event_time))) AS date FROM `project.OWOXBI_AppsFlyerEvents.android_events_*` WHERE appsflyer_device_id = '0000' OR advertising_id = 'xxxx' GROUP BY date ORDER BY date | DELETE FROM `project.OWOXBI_AppsFlyerEvents.android_events_YYYYMMDD` WHERE appsflyer_device_id = '0000' OR advertising_id = 'xxxx' |
Источник: AppsFlyer Таблица: ios_events_ |
SELECT FORMAT_DATE("%G%m%d", DATE(TIMESTAMP(event_time))) AS date FROM `project.OWOXBI_AppsFlyerEvents.ios_events_*` WHERE appsflyer_device_id = '0000' OR idfa = 'xxxx' GROUP BY date ORDER BY date | DELETE FROM `project.OWOXBI_AppsFlyerEvents.ios_events_YYYYMMDD` WHERE appsflyer_device_id = '0000' OR idfa = 'xxxx' |
Источник: AppsFlyer Таблица: windows_phone_events_ |
SELECT FORMAT_DATE("%G%m%d", DATE(TIMESTAMP(event_time))) AS date FROM `project.OWOXBI_AppsFlyerEvents.windows_phone_events_*` WHERE appsflyer_device_id = '0000' GROUP BY date ORDER BY date | DELETE FROM `project.OWOXBI_AppsFlyerEvents.windows_phone_events_*` WHERE appsflyer_device_id = '0000' |
Источник: SendGrid Таблица: events_ |
SELECT FORMAT_DATE("%G%m%d", DATE(_PARTITIONTIME)) FROM `project.dataset.events` WHERE email = ‘user@email.com’ GROUP BY date ORDER BY date |
DELETE FROM `project.dataset.events` WHERE email = ‘user@email.com’ |
Источник: Mandrill Таблица: events_ |
SELECT FORMAT_DATE("%G%m%d", DATE(ts)) as date FROM `project.dataset.events_*` WHERE msg.email = 'user@email.com' GROUP BY date ORDER BY date |
DELETE FROM `project.dataset.events_YYYYMMDD` WHERE msg.email = 'user@email.com' |
Источник: Sparkpost Таблица: owoxbi_sparkpost |
SELECT FORMAT_DATE("%G%m%d", DATE(timestamp)) FROM `project.dataset.events_*` WHERE message_event.rcpt_to = 'user@email.com' OR message_event.raw_rcpt_to = 'user@email.com' GROUP BY date ORDER BY date | DELETE FROM `project.dataset.events_YYYYMMDD` WHERE message_event.rcpt_to = 'user@email.com' OR message_event.raw_rcpt_to = 'user@email.com' |
Источник: UniOne Таблица: email_status_events_ |
SELECT FORMAT_DATE("%G%m%d", DATE(_PARTITIONTIME)) as date FROM `project.dataset.email_status_events` WHERE email = ‘user@email.com’ GROUP BY date ORDER BY date | DELETE FROM DELETE FROM `project.dataset.email_status_events` WHERE email = ‘user@email.com’ |
Жирным выделены переменные, которые нужно заменить переменными, которые соответствуют вашим проектам и пользователям.
В запросах замените эти переменные:
- project на название проекта
- dataset на название набора данных
- YYYYMMDD на дату, за которую хранятся данные в таблице
Как удалить данные из таблиц
Удалять данные из таблиц можно только с помощью Standard SQL-запросов.
1. В запросе для поиска таблицы нужно ввести User ID ИЛИ email пользователя.
2. Запрос покажет, за какие даты хранятся данные пользователя. Эти даты нужны для запроса для удаления данных:
Исключения — partition tables в потоках SendGrid и UniOne. Здесь запрос нужно сделать 1 раз к одной партиционированной таблице.
3. В запросе для удаления данных укажите одну из полученных дат в формате «ГГГГММДД» и еще раз User ID или email.
Удаление данных нельзя применить сразу к нескольким таблицам — это нужно сделать для таблицы за каждую дату по очереди.
Обратите внимание: Функция DELETE относится к DML-функциям Standard SQL. Для использования необходимо убрать пометку Legacy SQL в разделе Options. Также BigQuery покажет, сколько строк было удалено в результате запроса:
Использование функции DELETE — ограничено, поэтому обязательно ознакомьтесь с лимитами и квотами BIgQuery.
0 Комментарии