В вашем случае я бы предложил вам создать новую таблицу с соответствующими фильтрами для каждой. Вы можете использовать CREATE TABLE dataset.newtable AS SELECT x ОТ T , вы можете узнать больше об этом здесь . Таким образом, ваш синтаксис будет:
CREATE TABLE `your_new_table` AS SELECT *
FROM `source_table`
WHERE VALUES LIKE 'HEARTBEAT' AND VALUES LIKE '-7' AND VALUES LIKE '-77'
Я использовал одинарные кавычки в операторе WHERE , потому что я предполагал, что поле, которое вы фильтруете, является String . Другой вариант будет использовать функцию REGEXP_CONTAINS () , вы можете узнать больше об этом здесь . Ваш синтаксис для фильтра будет упрощен следующим образом:
WHERE REGEXP_CONTAINS(VALUES,"HEARTBEAT|STRING|STRING")
Обратите внимание, что значения, которые вы сравниваете с помощью вышеуказанного метода, должны быть строкой. Поэтому вы должны убедиться в этом преобразовании перед его использованием, в этом случае вы используете функцию CAST () .
Кроме того, если вы хотите удалить строки в исходной таблице, вы можете используйте DELETE . Синтаксис следующий:
DELETE `source_table` WHERE field_1 = 'HEARTBEAT'
Обратите внимание, что вы хотите удалять строки непосредственно из исходной таблицы.
Надеюсь, это поможет.
ОБНОВЛЕНИЕ
Создание новой таблицы с желаемыми строками и другой таблицы с "удаленными" строками.
#Table with the rows which match the filter and will be "deleted"
#Notice that you have to provide the path to you table
#`project.dataset.your_new_table`
CREATE TABLE `your_new_table` AS
SELECT field1, field2 #select the columns you want
FROM `source_table`
WHERE field1 LIKE 'HEARTBEAT' AND field1 LIKE '-7' AND field1 LIKE '-77'
Теперь вы получите строки, которые не прошли через фильтр на первом шаге. Они составят таблицу с нужными строками, как показано ниже:
CREATE TABLE `table_desired_rows` AS
SELECT field1, field2 #select the columns you want
FROM `source_table`
WHERE field1 NOT LIKE 'HEARTBEAT'
AND field1 NOT LIKE '-7'
AND field1 NOT LIKE '-77'
Теперь у вас есть исходная таблица с необработанными данными, другая таблица с нужными строками и таблица с игнорируемыми строками.
Второй вариант:
Если вам не нужны необработанные данные, это означает, что вы можете изменить исходную таблицу. Сначала вы можете создать таблицу с игнорируемыми строками, а затем удалить эти строки из исходных данных.
#creating the table with the rows which will be deleted
#notice that you create a new table with these rows
CREATE TABLE `table_ignored_rows` AS
SELECT field1, field2 #select the columns you want
FROM `source_table`
WHERE field1 LIKE 'HEARTBEAT'
AND field1 LIKE '-7'
AND field1 LIKE '-77';
#now deleting the rows from the source table
DELETE `source_table` WHERE field1 LIKE 'HEARTBEAT'
AND field1 LIKE '-7'
AND field1 LIKE '-77';