Bài viết này chứa các truy vấn mẫu cho những báo cáo phổ biến mà bạn có thể nhận được từ BigQuery. Các truy vấn mẫu này giả định SQL cũ. Hãy thay thế api_project_name.dataset_name bằng tên dự án và tên tập dữ liệu của riêng bạn.
Tìm hiểu thêm về cách truy vấn dữ liệu BigQuery.
Để biết các trường nhật ký Gmail và ý nghĩa của chúng, hãy chuyển đến phần Giản đồ cho nhật ký hoạt động của Gmail trong BigQuery.
Truy vấn mẫu
Tài khoản
Số lượng tài khoản quản trị viên và tài khoản được uỷ quyền, cũng như số lượng tài khoản bị vô hiệu hoá, bị khoá và bị tạm ngưng theo ngày
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;Quản trị viên
Các sự kiện thường xuyên nhất do quản trị viên thực hiện
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;Tìm số lượng quản trị viên cấp cao trong một miền nhất định
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;Lịch
Chỉ SQL chuẩn
Tỷ lệ giữa số người dùng hoạt động hằng ngày và số người dùng hoạt động trong 30 ngày qua trong Lịch Google. Truy vấn mẫu này trên nhiều bảng.
Số người dùng hoạt động hằng ngày
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 DESCSố người dùng hoạt động trong 30 ngày qua
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;Số lượng sự kiện trên lịch theo loại
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;Di chuyển dữ liệu
Tất cả các thao tác thiết lập và định cấu hình do quản trị viên thực hiện
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;Tất cả các sự kiện liên quan đến việc di chuyển cho một mã thực thi cụ thể
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;Tất cả các lỗi cho một mã thực thi cụ thể
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;Tất cả các sự kiện cho một loại nguồn cụ thể, chẳng hạn như 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;Tất cả các sự kiện cho một người dùng nguồn cụ thể trong tính năng Di chuyển Gmail cho doanh nghiệp
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;Tất cả các sự kiện cho một thư cụ thể có URI nguồn đã cho, chẳng hạn như mã RFC
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;Tất cả các sự kiện cho một loại dữ liệu nguồn cụ thể, chẳng hạn như Thư mục email 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;Số lượng sự kiện được nhóm theo trạng thái và tên sự kiện
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;Số lượng hằng ngày của tất cả các sự kiện được nhóm theo trạng thái và loại đối tượng
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
Số lượng mục được chia sẻ trên Google Drive, được nhóm theo phương thức chia sẻ
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;Mã tệp, tiêu đề, chủ sở hữu và loại. Các tệp được chia sẻ ra bên ngoài trong khoảng thời gian.
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;Các thay đổi về quyền chia sẻ và kết quả của các thay đổi đó. Cho phép bạn hiểu được những thay đổi về quyền nào đã dẫn đến sự thay đổi về khả năng hiển thị của tệp.
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";Các loại sự kiện được phân tích theo loại tệp. Hữu ích cho báo cáo về mức độ sử dụng theo loại tệp.
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;Loại sự kiện và tên cho từng bộ nhớ dùng chung
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;Thông tin về người dùng bên ngoài miền của bạ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;Những thay đổi về quyền nào và thời điểm nào đã được cấp cho người dùng bên ngoài
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;Thông tin về việc giám sát bộ nhớ
Hữu ích cho việc tạo báo cáo về những người dùng sử dụng nhiều hơn X bộ nhớ trên Drive, với một ngưỡng đã đặt (được xác định bằng mệnh đề AND accounts.drive_used_quota_in_mb > 0).
Bạn có thể xác định truy vấn này là một truy vấn đã lên lịch hoặc có thể gọi truy vấn này định kỳ bằng API.
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;Lưu ý:
- Bạn có thể sửa đổi giá trị này để khớp với bộ lọc mà khách hàng đang đặt. Ví dụ: trên 15 GB:
AND accounts.drive_used_quota_in_mb > 15000 - Việc so sánh ngày với
CAST(DATE_SUB(CURRENT_DATE(), INTERVAL x DAY) AS STRING)giúp bạn có thể so sánh ngày với định dạng có sẵn từ giá trị date. -
Truy vấn này cũng áp dụng cho Gmail, nơi bạn có thể tìm thấy một giá trị tương tự:
accounts.gmail_used_quota_in_mb
Gmail
Các phương pháp hay nhất cho Gmail với BigQuery
- Chỉ truy vấn dữ liệu bạn cần. Các ví dụ này có giới hạn là 1.000 kết quả trùng khớp,nhưng bạn có thể đặt giới hạn riêng.
- Đặt khung thời gian cho các truy vấn. Một ngày là khung thời gian điển hình.
Kết quả trùng khớp theo chủ đề
Chế độ xem tóm tắt thư cho tối đa 1.000 bản ghi trùng khớp với một chủ đề đã chỉ định
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 1000Kết quả trùng khớp theo người nhận
Đếm số lượng thư riêng biệt cho một người nhận đã chỉ định
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")Kết quả trùng khớp theo trạng thái và người nhận
Chế độ xem tóm tắt thư cho tối đa 1.000 bản ghi trùng khớp với cả hai:
- Một trạng thái đã chỉ định (Sửa đổi, Từ chối, Cách ly)
- Một người nhận đã chỉ định
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 1000Mô tả quy tắc được kích hoạt
Chế độ xem tóm tắt thư cho tối đa 1.000 bản ghi đã kích hoạt mô tả quy tắc đã chỉ định
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 1000Bị đánh dấu là thư rác
Chế độ xem tóm tắt thư cho tối đa 1.000 bản ghi:
- Bị đánh dấu là thư rác
- Cho một người nhận đã chỉ định
- Cho tất cả lý do
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 1000Giao thức mã hoá – không được mã hoá
Chế độ xem tóm tắt thư theo giao thức mã hoá – không được mã hoá
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 1000Giao thức mã hoá – chỉ TLS
Chế độ xem tóm tắt thư theo giao thức mã hoá – chỉ 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 1000Kết quả trùng khớp theo mã thư
Chế độ xem chi tiết thư cho một mã thư đã cho (bao gồm "<>" xung quanh mã thư)
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 1000Trạng thái – Từ chối gửi thư
Từ chối gửi thư:
- Quy tắc nào gây ra việc từ chối?
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 1000Trạng thái – Sửa đổi thư
Sửa đổi thư:
- Quy tắc nào gây ra việc sửa đổi?
- Danh mục phụ sửa đổi nào (ví dụ: tiêu đề hoặc chủ đề)?
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 1000Cách ly thư
Quy tắc nào đã cách ly một thư?
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 1000Truy vấn phức hợp
Đếm tất cả các thư bị một quy tắc cụ thể (có tên là "mô tả quy tắc") phát hiện trong 30 ngày qua:
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"Liệt kê tất cả các thư đã nhận mà không có mã hoá TLS trong ngày qua:
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 = 0Liệt kê 10 miền hàng đầu mà tài khoản của tôi đã trao đổi thư trong 30 ngày qua:
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 10Tỷ lệ giữa số người dùng hoạt động hằng ngày và số người dùng hoạt động trong 30 ngày qua trong Gmail
Số người dùng hoạt động hằng ngày:
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;Số người dùng hoạt động trong 7 ngày qua:
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;Số người dùng hoạt động trong 30 ngày qua:
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;100 sự kiện trong nhật ký Gmail gần đây nhất có ít nhất một nhãn phân loại được liên kết với nội dung email
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;Tất cả các sự kiện trong nhật ký có sẵn cho một nội dung email cụ thể
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;Nhóm
Các thay đổi về tư cách thành viên trong Nhóm Google và hành vi của người dùng
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
1000Nếu bạn muốn có dấu thời gian YYYY-MM-DD, thì bạn có thể thay thế phần tử câu lệnh SELECT đầu tiên bằng:
EXTRACT(DATE FROM TIMESTAMP_MICROS(time_usec)) AS date,
Bạn có thể lọc ngày trong mệnh đề WHERE theo một trong những cách sau:
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
Số lượng cuộc gọi video và tổng số phút gọi theo ngày
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 ASCSố người dùng hoạt động hằng ngày
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 DESCSố người dùng hoạt động trong 30 ngày qua
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 DESCQuy tắc
Các quy tắc DLP được kích hoạt theo tên, ứng dụng được so khớp và hành động
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;Mã thông báo
Số lần ứng dụng bên thứ ba được bật để truy cập vào 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;Số lần đăng nhập vào Bảng điều khiển dành cho quản trị viên
Thông tin chi tiết về các lần đăng nhập không thành công vào Bảng điều khiển dành cho quản trị viên của Google
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;Giản đồ cho bảng sử dụng
Giản đồ có thể thay đổi. Bạn có thể xem danh sách đầy đủ và mới nhất về các tham số và trường trong tài liệu về API Báo cáo.
Lọc theo ngày
Bạn có thể lọc theo ngày khi truy vấn bảng activity hoặc bảng usage. Cả hai đều có định dạng riêng biệt khi trình bày ngày:
- Bảng activity lưu trữ dấu thời gian ở định dạng micro giây của Unix. Đây là một giá trị số nguyên (một số) có thể được chuyển đổi thành ngày bằng hàm TIMESTAMP_MICROS().
- Bảng usage hiển thị các giá trị date ở định dạng ngày, vì vậy, bạn không cần chuyển đổi.
Đối với một trong hai bảng, bạn có thể chọn lọc theo một ngày cụ thể (hoặc phạm vi ngày) bằng một trong những phương thức sau.
Bảng hoạt động
Để lọc theo một ngày cụ thể bằng cấu trúc Micro giây của Unix (bảng activity), bạn có thể xác định mệnh đề WHERE và hàm TIMESTAMP() để thực hiện so sánh đơn giản với các toán tử lớn hơn (>) và nhỏ hơ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 1000Khái niệm ở đây là đặt giới hạn trong giá trị đầu vào time_usec bằng cách so sánh giá trị trả về của giá trị đó từ hàm TIMESTAMP_MICROS() với giá trị trả về của hàm TIMESTAMP() có thêm ngày dưới dạng tham số kiểu chuỗi. Điều này tuân theo các tiêu chuẩn trong Hàm dấu thời gian trong SQL chuẩn và sử dụng các toán tử so sánh đơn giản (>) và (<), cùng với phần mở rộng AND của mệnh đề WHERE để đóng một khung thời gian cụ thể.
Bảng sử dụng
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;Chúng ta có thể truyền giá trị date kiểu chuỗi có trong bảng vào hàm TIMESTAMP() và sử dụng các toán tử so sánh (>) và (<) giống như trong ví dụ đầu tiên.
Lọc theo bí danh miền và miền con: Loại trừ và bao gồm
Để loại trừ hoặc bao gồm một số miền khỏi kết quả truy vấn, hãy áp dụng bộ lọc cho địa chỉ email trên mệnh đề WHERE bằng ký tự đại diện (%) để lọc các miền.
Cách bạn sử dụng câu lệnh AND hoặc OR phụ thuộc vào việc bạn đang lọc ra (loại trừ) hay chỉ bao gồm một số kết quả nhất định.
Loại trừ một số miền khỏi kết quả
WHERE email NOT LIKE ("%@sub.%")
AND email NOT LIKE ("%@test.%")Chỉ bao gồm một số miền trong kết quả
WHERE email LIKE ("%@sub.%")
OR email LIKE ("%@test.%")Nhật ký kiểm tra quy tắc
Sử dụng truy vấn này để theo dõi nỗ lực của người dùng nhằm chia sẻ dữ liệu nhạy cảm
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;Chủ đề có liên quan
Google, Google Workspace và những nhãn hiệu cũng như biểu tượng có liên quan là các nhãn hiệu của Google LLC. Tất cả các tên sản phẩm và công ty khác là nhãn hiệu của những công ty mà chúng liên kết.