Den här artikeln innehåller exempelfrågor för vanliga rapporter som du kan hämta från BigQuery. Dessa frågeexempel förutsätter äldre SQL. Ersätt api_project_name.dataset_name med ditt eget projektnamn och datasetnamn.
Läs mer om att fråga BigQuery-data .
För Gmail-loggfält och deras betydelser, gå till Schema för Gmail-aktivitetsloggar i BigQuery .
Exempelfrågor
Konton
Antal administratörs- och delegerade konton, samt antal inaktiverade, utelåsta och avstängda konton per 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 superadministratörer i en given 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 dagligen aktiva användare och 30-dagars aktiva användare i Google Kalender. Detta exempel söker över flera tabeller.
Dagligen aktiva användare
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 DESC30 dagars aktiva användare
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 kommer gradvis att lanseras från och med den 26 maj 2025. Logghändelsedata före det datumet kanske inte är korrekta.
Alla installations- och 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 given käll-URI, såsom 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 Exchange Online-e-postmapp
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;Köra
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 delades externt inom tidsfönstret.
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;Dela behörighetsändringar och deras resultat. Ger dig möjlighet att förstå vilka behörighetsändringar som ledde till ändringen i filsynlighet.
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 implementeringsrapporter 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 din domän
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 och när behörighetsändringar har beviljats externa användare
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 lagringsövervakning
Användbart för att skapa rapporter om användare som förbrukar mer än X-disklagring, med ett fast tröskelvärde (definierat med AND accounts.drive_used_quota_in_mb > 0 -klausulen).
Denna fråga kan definieras som en schemalagd fråga eller till exempel anropas regelbundet med hjälp av 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;Anteckningar:
- Det här värdet kan ändras så att det matchar det filter som kunden ställer in. Till 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 datumvärdet . Den här frågan gäller även för Gmail, där vi kan hitta ett liknande värde:
accounts.gmail_used_quota_in_mb
Gmail
Bästa praxis för Gmail med BigQuery
- Sök bara efter den data du behöver. Dessa exempel har en gräns på 1 000 träffar, men du kan ställa in din egen gräns.
- Sätt en tidsram för dina frågor. En dag är en typisk tidsram.
Ämnesmatchning
Meddelandesammanfattningsvy för upp till 1 000 poster 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")Disposition och mottagare matchning
Meddelandesammanfattningsvy för upp till 1 000 poster som matchar båda:
- En specificerad disposition (Ändra, Avvisa, Karantän)
- En specificerad 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 utlöst
Meddelandesammanfattningsvy för upp till 1 000 poster, som utlöste en specifik regelbeskrivning
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 1000Markerad som skräppost
Meddelandesammanfattningsvy för upp till 1 000 poster:
- Markerad som skräppost
- För en specificerad mottagare
- Av alla anledningar
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
Meddelandesammanfattningsvy efter krypteringsprotokoll – inte krypterad
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
Meddelandesammanfattningsvy 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 1000Meddelande-ID-matchning
Meddelandedetaljervy för ett givet 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 avslag?
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 ändringen?
- Vilken underkategori för modifiering (till exempel rubriker eller ä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änmeddelande
Vilken regel satte 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 frågor
Räkna alla meddelanden som fångats upp av en specifik regel (med namnet "regelbeskrivning") 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 mottagits 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 vanligaste domänerna som mitt konto utbytte 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 dagligen aktiva användare och 30-dagars aktiva användare i Gmail
Dagligen 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;7 dagars aktiva användare:
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;30 dagars aktiva användare:
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 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 i 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 YYYY-MM-DD kan det första SELECT -satselementet ersättas med:
EXTRACT(DATE FROM TIMESTAMP_MICROS(time_usec)) AS date,
Datumen kan filtreras i WHERE- klausulen 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 per 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 ASCDagligen aktiva användare
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 DESC30 dagars aktiva användare
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, matchande applikation 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;Polletter
Antal gånger en tredjepartsapp 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 till 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 komplett lista över parametrar och fält i dokumentationen för Reports API .
Filtrera efter datum
Du kan filtrera efter datum när du frågar efter antingen aktivitets- eller användningstabellerna . Båda har olika format när datumet presenteras:
- Aktivitetstabellen lagrar tidsstämplarna i Unix-mikrosekunder. Detta är ett heltal (ett tal) som kan konverteras till ett datum med funktionen TIMESTAMP_MICROS() .
- Användningstabellen visar sina datumvä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 specifikt datum (eller datumintervall) med hjälp av någon av följande metoder.
Aktivitetstabellen
För att filtrera efter ett specifikt datum med Unix Micros ( aktivitetstabell )-strukturen kan du definiera WHERE- klausulen och TIMESTAMP()- funktionen för att utfö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 inmatningsvärdet time_usec genom att jämföra dess returvärde från funktionen TIMESTAMP_MICROS() med returvärdet för TIMESTAMP() -funktionen med ett datum tillagt som en strängtypsparameter. Detta följer standarderna för Timestamp-funktioner i Standard SQL och använder enkla jämförelseoperatorer (>) och (<), tillsammans med AND- tillägget av WHERE- klausulen 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ängtypsdatumvärdet som finns i tabellen till TIMESTAMP()- funktionen och använda jämförelseoperatorerna (>) och (<) på samma sätt som i det första exemplet.
Filtrera efter domänalias och underdomäner: Exkludera och inkludera
För att exkludera eller inkludera vissa domäner från dina frågeresultat, använd ett filter för e-postadressen i WHERE- klausulen och filtrera domänerna med jokertecken (%).
Hur du använder AND- eller OR- satserna beror på om du filtrerar bort (exkluderar) eller bara inkluderar vissa resultat.
Uteslut vissa domäner från resultaten
WHERE email NOT LIKE ("%@sub.%")
AND email NOT LIKE ("%@test.%")Inkludera endast vissa domäner i resultaten
WHERE email LIKE ("%@sub.%")
OR email LIKE ("%@test.%")Regelgranskningsloggar
Använd den här frågan för att spåra användares försök att dela känsliga uppgifter
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 relaterade varumä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 associerade med.