Как удалить персональные данные из BigQuery по запросу пользователя

Если к вам обратился пользователь с просьбой удалить его персональные данные, используйте 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. Запрос покажет, за какие даты хранятся данные пользователя. Эти даты нужны для запроса для удаления данных:

Date_search_results.png

Исключения — partition tables в потоках SendGrid и UniOne. Здесь запрос нужно сделать 1 раз к одной партиционированной таблице.

3. В запросе для удаления данных укажите одну из полученных дат в формате «ГГГГММДД» и еще раз User ID или email.

Удаление данных нельзя применить сразу к нескольким таблицам — это нужно сделать для таблицы за каждую дату по очереди.

Обратите внимание: Функция DELETE относится к DML-функциям Standard SQL. Для использования необходимо убрать пометку Legacy SQL в разделе Options. Также BigQuery покажет, сколько строк было удалено в результате запроса:

image1.pngИспользование функции DELETE — ограничено, поэтому обязательно ознакомьтесь с лимитами и квотами BIgQuery.

Была ли эта статья полезной?
Пользователи, считающие этот материал полезным: 0 из 0
Еще есть вопросы? Отправить запрос

0 Комментарии

Войдите в службу, чтобы оставить комментарий.