Den här artikeln innehåller exempelfrågor för vanliga rapporter som du kan få från BigQuery. Dessa exempel på sökfrågor förutsätter äldre SQL. Ersätt api_project_name.dataset_name med ditt projektnamn och datasetnamn.
Läs mer om att söka i BigQuery-data.
Information om Gmail-loggfält och deras betydelse finns i Schema för Gmail-aktivitetsloggar i BigQuery.
Exempelsökningar
Konton
Antalet administratörskonton och delegerade konton samt antalet konton som är inaktiverade, utelåsta och avstängda efter datum
SELECT date,
accounts.num_locked_users,
accounts.num_disabled_accounts,
accounts.num_delegated_admins,
accounts.num_super_admins,
accounts.num_suspended_users,
accounts.num_users
FROM api_project_name.dataset_name.usage
WHERE accounts.num_users IS NOT NULL
ORDER BY date ASC;Administratörer
De vanligaste händelserna som utförs av en administratör
SELECT count(*) as admin_actions, event_name
FROM api_project_name.dataset_name.activity
WHERE email IN (
SELECT user_email
FROM api_project_name.dataset_name.usage
WHERE accounts.is_super_admin = TRUE
)
GROUP BY 2
ORDER BY 1 DESC;Hitta antalet avancerade administratörer på en viss domän
SELECT COUNT(DISTINCT user_email) as number_of_super_admins, date
FROM api_project_name.dataset_name.usage
WHERE accounts.is_super_admin = TRUE
GROUP BY 2
ORDER BY 2 DESC;Kalender
Endast standard-SQL
Förhållandet mellan antalet aktiva användare per dag och antalet användare som har varit aktiva under de senaste 30 dagarna i Google Kalender. Frågan i detta exempel omfattar flera tabeller.
Aktiva användare per dag
SELECT date, calendar.num_1day_active_users
FROM api_project_name.dataset_name.usage
WHERE calendar.num_1day_active_users IS NOT NULL
ORDER BY date DESCAktiva användare under 30 dagar
SELECT date, calendar.num_30day_active_users
FROM api_project_name.dataset_name.usage
WHERE calendar.num_30day_active_users IS NOT NULL
ORDER BY date DESC;Antal kalenderhändelser efter typ
SELECT COUNT(DISTINCT calendar.calendar_id) AS count, event_name
FROM api_project_name.dataset_name.activity
WHERE calendar.calendar_id IS NOT NULL
GROUP BY 2 ORDER BY 1 DESC;Datamigrering
Logghändelser för datamigrering lanseras gradvis från och med den 26 maj 2025. Logghändelsedata före detta datum kanske inte är korrekt.
Alla konfigurationsåtgärder som utförs av en administratör
SELECT TIMESTAMP_MICROS(time_usec) as timestamp, email, status.*, event_type, event_name, data_migration.* FROM api_project_name.dataset_name.activity WHERE record_type = 'data_migration' AND event_type = 'MIGRATION_SETUP' AND email = 'admin@example.com' ORDER BY timestamp desc LIMIT 1000;Alla migreringsrelaterade händelser för ett visst körnings-id
SELECT TIMESTAMP_MICROS(time_usec) as timestamp, email, event_type, status.*, event_name, data_migration.* FROM api_project_name.dataset_name.activity WHERE record_type = 'data_migration' AND event_type = 'MIGRATION' AND data_migration.execution_id = 'execution_id' ORDER BY timestamp desc LIMIT 1000;Alla fel för ett visst körnings-id
SELECT TIMESTAMP_MICROS(time_usec) as timestamp, email, event_type, status.*, event_name, data_migration.* FROM api_project_name.dataset_name.activity WHERE record_type = 'data_migration' AND event_type = 'MIGRATION' AND data_migration.execution_id = 'execution_id' AND status.event_status = 'FAILED' ORDER BY timestamp desc LIMIT 1000;Alla händelser för en viss källtyp, till exempel Microsoft Exchange Online
SELECT TIMESTAMP_MICROS(time_usec) as timestamp, email, event_type, status.*, event_name, data_migration.* FROM api_project_name.dataset_name.activity WHERE record_type = 'data_migration' AND data_migration.migration_type = 'Exchange Online Migration' ORDER BY timestamp desc LIMIT 1000;Alla händelser för en viss källanvändare i Enterprise Gmail Migration
SELECT TIMESTAMP_MICROS(time_usec) as timestamp, email, event_type, status.*, event_name, data_migration.* FROM api_project_name.dataset_name.activity WHERE record_type = 'data_migration' AND data_migration.migration_type = 'Enterprise Gmail Migration' AND data_migration.source_identifier like '%user@example.com%' ORDER BY timestamp desc LIMIT 1000;Alla händelser för ett visst meddelande med angiven käll-URI, till exempel ett RFC-id
SELECT TIMESTAMP_MICROS(time_usec) as timestamp, email, event_type, status.*, event_name, data_migration.* FROM api_project_name.dataset_name.activity WHERE record_type = 'data_migration' AND data_migration.source_uri = 'rfc822Id' ORDER BY timestamp desc LIMIT 1000;Alla händelser för en viss källdatatyp, till exempel e-postmapp i Exchange Online
SELECT TIMESTAMP_MICROS(time_usec) as timestamp, email, event_type, status.*, event_name, data_migration.* FROM api_project_name.dataset_name.activity WHERE record_type = 'data_migration' AND data_migration.source_type = 'Exchange Online Email Folder' ORDER BY timestamp desc LIMIT 1000;Antal händelser grupperade efter status och händelsenamn
SELECT status.event_status as status, event_name, count(*) AS count FROM api_project_name.dataset_name.activity WHERE record_type = 'data_migration' GROUP BY 1,2 ORDER BY 1,2 limit 1000;Dagligt antal händelser grupperade efter status och objekttyp
SELECT EXTRACT(DATE FROM TIMESTAMP_MICROS(time_usec)) AS date, status.event_status as status, data_migration.source_type, count(*) AS count FROM api_project_name.dataset_name.activity WHERE record_type = 'data_migration' GROUP BY 1,2,3 ORDER BY 1,2,3 limit 1000;Drive
Antal delade Google Drive-objekt, grupperade efter delningsmetod
SELECT COUNT(DISTINCT drive.doc_id) AS count, drive.visibility
FROM api_project_name.dataset_name.activity
WHERE drive.doc_id IS NOT NULL
GROUP BY 2 ORDER BY 1 DESC;Fil-id, titel, ägare och typ. Filer som har delats externt inom tidsperioden.
SELECT TIMESTAMP_MICROS(time_usec) AS date, drive.doc_id, drive.doc_title,
drive.owner, drive.doc_type
FROM api_project_name.dataset_name.activity
WHERE drive.visibility = "shared_externally"
ORDER BY 1 DESC
LIMIT 100;Ändringar av delningsbehörighet och deras resultat. Du kan se vilka behörighetsändringar som ledde till ändringen av filsynligheten.
SELECT TIMESTAMP_MICROS(time_usec) AS date, drive.doc_title,
drive.visibility_change,drive.old_visibility, drive.visibility,
FROM api_project_name.dataset_name.activity
WHERE record_type = "drive"
AND drive.old_visibility IS NOT NULL
AND drive.old_visibility != "unknown";Händelsetyper uppdelade efter filtyp. Användbart för användningsrapport efter filtyp.
SELECT drive.doc_type, event_type, count(*)
FROM api_project_name.dataset_name.activity
WHERE record_type = "DRIVE"
GROUP by 1,2 ORDER BY 3 desc;Händelsetyp och namn för varje delad enhet
SELECT drive.shared_drive_id, event_type, event_name, record_type,
count(distinct drive.doc_id) AS count
FROM api_project_name.dataset_name.activity
WHERE record_type = "drive"
AND drive.shared_drive_id IS NOT NULL
GROUP BY 1,2,3,4 ORDER BY 5 DESC;Information om användare utanför domänen
SELECT email, event_name, count(*) AS count
FROM api_project_name.dataset_name.activity
WHERE email != ""
AND email NOT LIKE "%mydomain.com%"
GROUP BY 1,2 ORDER BY 3 DESC;Vilka behörighetsändringar som har beviljats externa användare och när
SELECT drive.target_user, event_name, count(*) AS count
FROM api_project_name.dataset_name.activity
WHERE drive.target_user IS NOT NULL
AND drive.target_user NOT LIKE "%mydomain.com%"
GROUP BY 1,2 ORDER BY 3 DESC;Information om övervakning av lagringsutrymme
Användbart för att skapa rapporter om användare som förbrukar mer än X lagringsutrymme på Drive, med en angiven gräns (definieras med AND accounts.drive_used_quota_in_mb > 0-satsen).
Den här sökfrågan kan definieras som en schemalagd sökfråga eller till exempel anropas regelbundet med API:et.
SELECT date,
user_email,
accounts.drive_used_quota_in_mb,
FROM api_project_name.dataset_name.usage
WHERE accounts.drive_used_quota_in_mb IS NOT NULL
AND accounts.drive_used_quota_in_mb > 0
AND user_email != ""
AND date = CAST(DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY) AS STRING)
ORDER BY 3,1 DESC;Obs!
- Detta värde kan ändras så att det matchar filtret som kunden ställer in. Exempel: över 15 GB:
AND accounts.drive_used_quota_in_mb > 15000 - Datumjämförelsen med
CAST(DATE_SUB(CURRENT_DATE(), INTERVAL x DAY) AS STRING)gör det möjligt att göra en datumjämförelse med det tillgängliga formatet från värdet date. -
Den här sökfrågan gäller även för Gmail, där vi kan hitta ett liknande värde:
accounts.gmail_used_quota_in_mb
Gmail
Metodtips för Gmail med BigQuery
- Sök enbart efter de data du behöver. I de här exemplen används en gräns på 1 000 matchningar, men du kan ange en egen gräns.
- Ange en tidsram för sökfrågorna. En dag är en vanlig tidsram.
Ämnesmatchning
Meddelandeöversikt för upp till 1 000 objekt som matchar ett angivet ämne
SELECT TIMESTAMP_MICROS(gmail.event_info.timestamp_usec) as timestamp,
gmail.message_info.subject,
gmail.message_info.source.address,
gmail.message_info.rfc2822_message_id
FROM your_dataset_id.activity
WHERE gmail.message_info.subject LIKE "%test%"
LIMIT 1000Mottagarmatchning
Räkna antalet distinkta meddelanden för en angiven mottagare
SELECT COUNT(DISTINCT gmail.message_info.rfc2822_message_id)
FROM your_dataset_id.activity d
WHERE
EXISTS(
SELECT 1 FROM d.gmail.message_info.destination WHERE destination.address = "recipient@example.com")Matchning av disposition och mottagare
Meddelandeöversikt för upp till 1 000 objekt som matchar båda:
- En angiven disposition (Modifiera, Avvisa, Karantänplacera)
- En angiven mottagare
SELECT TIMESTAMP_MICROS(gmail.event_info.timestamp_usec) as timestamp,
gmail.message_info.subject,
gmail.message_info.source.address as source,
destination.address as destination,
gmail.message_info.rfc2822_message_id
FROM your_dataset_id.activity d, d.gmail.message_info.destination
WHERE
destination.address = "recipient@example.com" AND
EXISTS(SELECT 1 FROM d.gmail.message_info.triggered_rule_info ri, ri.consequence
WHERE consequence.action = 17)
LIMIT 1000Regelbeskrivning som aktiverades
Meddelandeöversikt för upp till 1 000 objekt som aktiverade den angivna regelbeskrivningen
SELECT TIMESTAMP_MICROS(gmail.event_info.timestamp_usec) as timestamp,
gmail.message_info.subject,
gmail.message_info.source.address as source,
destination.address as destination,
gmail.message_info.rfc2822_message_id
FROM your_dataset_id.activity d, d.gmail.message_info.destination
WHERE
EXISTS(SELECT 1 FROM d.gmail.message_info.triggered_rule_info ri, ri.consequence
WHERE consequence.reason LIKE '%description%')
LIMIT 1000Markerat som skräppost
Meddelandeöversikt för upp till 1 000 objekt:
- Markerat som spam
- För en angiven mottagare
- Av alla orsaker
SELECT TIMESTAMP_MICROS(gmail.event_info.timestamp_usec) as timestamp,
gmail.message_info.subject,
gmail.message_info.source.address as source,
destination.address as destination,
gmail.message_info.rfc2822_message_id
FROM your_dataset_id.activity d, d.gmail.message_info.destination
WHERE gmail.message_info.is_spam AND
destination.address = "recipient@example.com"
LIMIT 1000Krypteringsprotokoll – inte krypterat
Vy över meddelandeöversikt efter krypteringsprotokoll – inte krypterat
SELECT TIMESTAMP_MICROS(gmail.event_info.timestamp_usec) as timestamp,
gmail.message_info.subject,
gmail.message_info.source.address as source,
destination.address as destination,
gmail.message_info.rfc2822_message_id
FROM your_dataset_id.activity d, d.gmail.message_info.destination
WHERE gmail.message_info.connection_info.smtp_tls_state = 0
LIMIT 1000Krypteringsprotokoll – endast TLS
Vy över meddelandeöversikt efter krypteringsprotokoll – endast TLS
SELECT TIMESTAMP_MICROS(gmail.event_info.timestamp_usec) as timestamp,
gmail.message_info.subject,
gmail.message_info.source.address as source,
destination.address as destination,
gmail.message_info.rfc2822_message_id
FROM your_dataset_id.activity d, d.gmail.message_info.destination
WHERE gmail.message_info.connection_info.smtp_tls_state = 1
LIMIT 1000Matchning av meddelande-id
Detaljerad meddelandevy för ett visst meddelande-id (inkludera <> runt meddelande-id:t)
SELECT TIMESTAMP_MICROS(gmail.event_info.timestamp_usec) as timestamp,
gmail.event_info.success,
gmail.event_info.elapsed_time_usec,
gmail.message_info.subject,
gmail.message_info.source.address as source,
gmail.message_info.source.service as source_service,
gmail.message_info.source.selector as source_selector,
destination.address as destination,
destination.service,
destination.selector as destination_selector,
gmail.message_info.rfc2822_message_id,
gmail.message_info.payload_size,
gmail.message_info.num_message_attachments,
gmail.message_info.connection_info.smtp_tls_state,
gmail.message_info.description
FROM your_dataset_id.activity d, d.gmail.message_info.destination
WHERE gmail.message_info.rfc2822_message_id = "<message id>"
LIMIT 1000Disposition – Avvisa meddelande
Avvisa meddelande:
- Vilken regel orsakade avvisandet?
SELECT TIMESTAMP_MICROS(gmail.event_info.timestamp_usec) as timestamp,
gmail.message_info.subject,
gmail.message_info.source.address as source,
destination.address as destination,
gmail.message_info.rfc2822_message_id,
(SELECT ARRAY_AGG(consequence.reason)
FROM d.gmail.message_info.triggered_rule_info ri, ri.consequence)
FROM your_dataset_id.activity d, d.gmail.message_info.destination
WHERE gmail.message_info.rfc2822_message_id = "<message id>" AND
EXISTS(SELECT 1 FROM d.gmail.message_info.triggered_rule_info ri, ri.consequence
WHERE consequence.action = 17)
LIMIT 1000Disposition – Ändra meddelande
Ändra meddelande:
- Vilken regel orsakade modifieringen?
- Vilken underkategori av modifiering (exempelvis rubriker, ämne)?
SELECT TIMESTAMP_MICROS(gmail.event_info.timestamp_usec) as timestamp,
gmail.message_info.subject,
gmail.message_info.source.address as source,
destination.address as destination,
gmail.message_info.rfc2822_message_id,
(SELECT ARRAY_AGG((consequence.action, consequence.reason))
FROM d.gmail.message_info.triggered_rule_info ri, ri.consequence)
FROM your_dataset_id.activity d, d.gmail.message_info.destination
WHERE gmail.message_info.rfc2822_message_id = "<message id>" AND
EXISTS(SELECT 1 FROM d.gmail.message_info.triggered_rule_info ri, ri.consequence
WHERE consequence.action NOT IN (0, 17, 3))
LIMIT 1000Karantänplacera meddelande
Vilken regel placerade ett meddelande i karantän?
SELECT TIMESTAMP_MICROS(gmail.event_info.timestamp_usec) as timestamp,
gmail.message_info.subject,
gmail.message_info.source.address as source,
destination.address as destination,
gmail.message_info.rfc2822_message_id,
(SELECT ARRAY_AGG(consequence.reason)
FROM d.gmail.message_info.triggered_rule_info ri, ri.consequence)
FROM your_dataset_id.activity d, d.gmail.message_info.destination
WHERE gmail.message_info.rfc2822_message_id = "<message id>" AND
EXISTS(SELECT 1 FROM d.gmail.message_info.triggered_rule_info ri, ri.consequence
WHERE consequence.action = 3)
LIMIT 1000Sammansatta sökningar
Räkna alla meddelanden som fångats av en specifik regel (rule description) under de senaste 30 dagarna:
SELECT
COUNT(gmail.message_info.rfc2822_message_id) AS message_cnt
FROM
`your_dataset_id.activity`,
UNNEST (gmail.message_info.triggered_rule_info) AS triggered_rule
WHERE
_PARTITIONTIME >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 30 DAY)
AND triggered_rule.rule_name LIKE "rule description"Lista alla meddelanden som tagits emot utan TLS-kryptering under det senaste dygnet:
SELECT gmail.message_info.subject,
gmail.message_info.rfc2822_message_id
FROM `your_dataset_id.activity`
WHERE
_PARTITIONTIME >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 30 DAY) AND
gmail.message_info.connection_info.smtp_tls_state = 0Lista de 10 toppdomänerna som mitt konto har utbytt e-post med under de senaste 30 dagarna:
SELECT
COUNT(DISTINCT gmail.message_info.rfc2822_message_id) as message_cnt,
IF(gmail.message_info.is_policy_check_for_sender,
REGEXP_EXTRACT(gmail.message_info.source.address , "(@.*)"),
REGEXP_EXTRACT(destination.address , "(@.*)")) AS domain
FROM `your_dataset_id.activity` d, d.gmail.message_info.destination
WHERE
_PARTITIONTIME >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 30 DAY)
GROUP BY domain
ORDER BY message_cnt desc
LIMIT 10Förhållandet mellan antalet aktiva användare per dag och antalet användare som varit aktiva under de senaste 30 dagarna i Gmail
Dagliga aktiva användare:
SELECT date,
gmail.num_1day_active_users
FROM api_project_name.dataset_name.usage
WHERE gmail.num_1day_active_users > 0
ORDER BY 1 DESC;Aktiva användare under 7 dagar:
SELECT date,
gmail.num_7day_active_users
FROM api_project_name.dataset_name.usage
WHERE gmail.num_7day_active_users > 0
ORDER BY 1 DESC;Aktiva användare under 30 dagar:
SELECT date,
gmail.num_30day_active_users
FROM api_project_name.dataset_name.usage
WHERE gmail.num_30day_active_users > 0
ORDER BY 1 DESC;De senaste 100 Gmail-logghändelserna med minst en klassificeringsetikett som är kopplad till e-postmeddelandet
SELECT
resource_details[OFFSET(0)].id AS MESSAGE_ID,
gmail.message_info.subject AS SUBJECT,
gmail.event_info.mail_event_type AS MAIL_EVENT_TYPE,
gmail.message_info.source.address AS SENDER,
resource_details[OFFSET(0)].applied_labels AS LABELS
FROM workspace_audit_logs.activity
WHERE gmail.event_info.mail_event_type > 0 and ARRAY_LENGTH(resource_details) > 0
ORDER by time_usec desc
LIMIT 100;Alla tillgängliga logghändelser för ett specifikt e-postmeddelande
SELECT
gmail.event_info,
gmail.message_info,
resource_details
FROM workspace_audit_logs.activity
WHERE gmail.message_info.rfc2822_message_id = "<XYZ>"
ORDER by time_usec desc;Grupper
Ändringar av medlemskap i Google Grupper och användarbeteende
SELECT TIMESTAMP_MICROS(time_usec) AS date,
event_name,
admin.group_email,
event_type,
email,
record_type,
admin.user_email,
admin.new_value,
admin.old_value,
admin.setting_name
FROM project_name.dataset_name.activity
WHERE `admin`.group_email IS NOT NULL
AND CONCAT(TIMESTAMP_MICROS(time_usec)) LIKE "%YYYY-MM-DD%"
ORDER BY 1 DESC
LIMIT
1000Om du vill ha en tidsstämpel i formatet ÅÅÅÅ-MM-DD kan du ersätta det första elementet i SELECT-satsen med följande:
EXTRACT(DATE FROM TIMESTAMP_MICROS(time_usec)) AS date,
Datumen kan filtreras i WHERE-satsen på något av följande sätt:
SELECT TIMESTAMP_MICROS(time_usec) AS date,
event_name,
admin.group_email,
event_type,
email,
record_type,
admin.user_email,
admin.new_value,
admin.old_value,
admin.setting_name
FROM project_name.dataset_name.activity
WHERE `admin`.group_email IS NOT NULL
AND EXTRACT(DATE FROM TIMESTAMP_MICROS(time_usec)) > "2020-06-30"
AND EXTRACT(DATE FROM TIMESTAMP_MICROS(time_usec)) < "2020-08-31"
ORDER BY 1 DESC
LIMIT
1000SELECT TIMESTAMP_MICROS(time_usec) AS date,
event_name,
admin.group_email,
event_type,
email,
record_type,
admin.user_email,
admin.new_value,
admin.old_value,
admin.setting_name
FROM project_name.dataset_name.activity
WHERE `admin`.group_email IS NOT NULL
AND TIMESTAMP_MICROS(time_usec) > TIMESTAMP("2020-07-21")
AND TIMESTAMP_MICROS(time_usec) < TIMESTAMP("2020-07-23")
ORDER BY 1 DESC
LIMIT
1000Google Meet
Antal videosamtal och totalt antal samtalsminuter efter datum
SELECT date, meet.num_calls, meet.total_call_minutes
FROM `api_project_name.dataset_name.usage`
WHERE meet.num_calls IS NOT NULL
ORDER BY date ASCAktiva användare per dag
SELECT date, meet.num_1day_active_users
FROM `api_project_name.dataset_name.usage`
WHERE meet.num_1day_active_users IS NOT NULL
ORDER BY date DESCAktiva användare under 30 dagar
SELECT date, meet.num_30day_active_users
FROM `api_project_name.dataset_name.usage`
WHERE meet.num_30day_active_users IS NOT NULL
ORDER BY date DESCRegler
Utlösta DLP-regler efter namn, matchad app och åtgärder
SELECT TIMESTAMP_MICROS(time_usec) AS date, rules.rule_name, rules.application,
rules.resource_title, rules.actions, rules.resource_owner_email,
rules.data_source, rules.matched_trigger
FROM api_project_name.dataset_name.activity
WHERE rules.rule_name IS NOT NULL
ORDER BY 1 DESC LIMIT 1000;Token
Antalet gånger en app från tredje part har aktiverats för åtkomst till Google Drive
SELECT token.client_id, scope, token.app_name, count(*) AS count
FROM api_project_name.dataset_name.activity
LEFT JOIN UNNEST(token.scope) AS scope
WHERE scope LIKE "%drive%"
GROUP BY 1,2,3 ORDER BY 4 DESC;Inloggningsförsök på administratörskonsolen
Detaljerad information om misslyckade inloggningar i Googles administratörskonsol
SELECT TIMESTAMP_MICROS(time_usec) AS date, email, ip_address,
event_name, login.login_type, login.login_failure_type
FROM api_project_name.dataset_name.activity
WHERE login.login_type IS NOT NULL
AND login.login_failure_type IS NOT NULL
AND event_type = "login"
ORDER BY date DESC;Schema för användningstabeller
Schemat kan ändras. Du kan se en uppdaterad och fullständig lista över parametrar och fält i dokumentationen för Reports API.
Filtrera efter datum
Du kan filtrera efter datum när du söker i tabellerna activity eller usage. De har olika format när datumet presenteras:
- I tabellen activity lagras tidsstämplarna i Unix-mikrosekunder. Detta är ett heltal (en siffra) som kan konverteras till ett datum med funktionen TIMESTAMP_MICROSS().
- Tabellen usage visar date-värden med ett datumformat, så denna konvertering är inte nödvändig.
För båda tabellerna kan du välja att filtrera efter ett visst datum (eller datumintervall) med hjälp av en av följande metoder.
Aktivitetstabellen
Om du vill filtrera efter ett visst datum med strukturen Unix Micros (tabellen activity) kan du definiera WHERE-satsen och funktionen TIMESTAMP() för att göra en enkel jämförelse med operatorerna större än (>) och mindre än (<):
SELECT TIMESTAMP_MICROS(time_usec) as date, record_type
FROM api_project_name.dataset_name.activity
WHERE TIMESTAMP_MICROS(time_usec) > TIMESTAMP("2020-07-01")
AND TIMESTAMP_MICROS(time_usec) < TIMESTAMP("2020-07-07")
ORDER BY 1 DESC LIMIT 1000Konceptet här är att sätta gränser för indatavärdet time_usec genom att jämföra dess returvärde från funktionen TIMESTAMP_MICROS() med returvärdet för funktionen TIMESTAMP() med ett datum som läggs till som en parameter av strängtyp. Detta följer standarderna i Tidsstämpelfunktioner i standard-SQL och använder enkla jämförelseoperatorer (>) och (<) tillsammans med AND-tillägget i WHERE-satsen för att stänga ett tidsfönster i synnerhet.
Användningstabellen
SELECT date, meet.num_calls,
FROM api_project_name.dataset_name.usage
WHERE meet.num_calls IS NOT NULL
AND TIMESTAMP(date) > TIMESTAMP("2020-07-01")
AND TIMESTAMP(date) < TIMESTAMP("2020-07-07")
ORDER BY date DESC;Vi kan skicka strängtypen date i tabellen till funktionen TIMESTAMP() och använda jämförelseoperatorerna (>) och (<) på samma sätt som i det första exemplet.
Filtrera efter domänalias och underdomäner: Uteslut och inkludera
Inkludera eller exkludera vissa domäner från dina sökresultat genom att använda ett filter för e-postadressen på WHERE-satsen med hjälp av jokertecken (%) för att filtrera domänerna.
Hur du använder uttrycken AND eller OR beror på om du filtrerar bort (utesluter) eller endast inkluderar vissa resultat.
Utesluta vissa domäner från resultat
WHERE email NOT LIKE ("%@sub.%")
AND email NOT LIKE ("%@test.%")Inkludera enbart vissa domäner i resultaten
WHERE email LIKE ("%@sub.%")
OR email LIKE ("%@test.%")Granskningsloggar för regler
Använd den här sökfrågan för att spåra användarnas försök att dela känslig data
SELECT TIMESTAMP_MICROS(time_usec) AS Date,
rules.resource_owner_email AS User,
rules.rule_name AS ruleName,
rules.rule_type AS ruleType,
rules.rule_resource_name AS ruleResourceName,
rules.resource_id AS resourceId,
rules.resource_title AS resourceTitle,
rules.resource_type AS resourceType,
rules.resource_owner_email AS resourceOwner,
CAST(recipients AS STRING) AS Recipients,
rules.data_source AS dataSource,
rules.actor_ip_address AS actorIpAddress,
rules.severity AS severity,
rules.scan_type AS scanType,
rules.matched_trigger AS matchedTriggers,
detect.display_name AS matchedDetectorsName,
detect.detector_id AS matchedDetectorsId,
detect.detector_type AS matchedDetectorsType,
triggers.action_type AS triggeredActions,
suppressors.action_type AS suppressedActions,
FROM api_project_name.dataset_name.activity
LEFT JOIN UNNEST(rules.resource_recipients) as recipients
LEFT JOIN UNNEST(rules.matched_detectors) as detect
LEFT JOIN UNNEST(rules.triggered_actions) as triggers
LEFT JOIN UNNEST(rules.suppressed_actions) as suppressors
WHERE rules.rule_name IS NOT NULL
AND triggers.action_type != "ALERT"
ORDER BY 1 DESC
LIMIT 1000;Relaterat ämne
Google, Google Workspace och tillhörande märken och logotyper är varumärken som tillhör Google LLC. Alla andra företags- och produktnamn är varumärken som tillhör de företag som de är kopplade till.