এই নিবন্ধে BigQuery থেকে পাওয়া সাধারণ রিপোর্টের জন্য উদাহরণ কোয়েরি রয়েছে। এই কোয়েরি উদাহরণগুলি লিগ্যাসি SQL ধরে নেয়। api_project_name.dataset_name আপনার নিজস্ব প্রোজেক্টের নাম এবং ডেটাসেটের নাম দিয়ে প্রতিস্থাপন করুন।
BigQuery ডেটা কোয়েরি করার বিষয়ে আরও জানুন।
জিমেইল লগ ফিল্ড এবং তাদের অর্থের জন্য, BigQuery-তে জিমেইল অ্যাক্টিভিটি লগের জন্য স্কিমাতে যান।
উদাহরণ কোয়েরি
হিসাব
অ্যাডমিন এবং ডেলিগেট করা অ্যাকাউন্টের সংখ্যা, এবং তারিখ অনুসারে অক্ষম, লক আউট এবং স্থগিত করা অ্যাকাউন্টের সংখ্যা
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;প্রশাসকগণ
একজন প্রশাসক দ্বারা সর্বাধিক ঘন ঘন সম্পাদিত ইভেন্ট
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;একটি নির্দিষ্ট ডোমেনে সুপার অ্যাডমিনের সংখ্যা খুঁজুন
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;ক্যালেন্ডার
শুধুমাত্র স্ট্যান্ডার্ড SQL
গুগল ক্যালেন্ডারে দৈনিক সক্রিয় ব্যবহারকারীদের ৩০ দিনের সক্রিয় ব্যবহারকারীদের অনুপাত। এই উদাহরণটি একাধিক টেবিল জুড়ে অনুসন্ধান করে।
দৈনিক সক্রিয় ব্যবহারকারী
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 DESC৩০ দিনের সক্রিয় ব্যবহারকারী
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;ধরণ অনুসারে ক্যালেন্ডার ইভেন্টের সংখ্যা
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;ডেটা মাইগ্রেশন
একজন প্রশাসক দ্বারা সম্পাদিত সমস্ত সেটআপ এবং কনফিগারেশন ক্রিয়া
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;একটি নির্দিষ্ট এক্সিকিউশন আইডির জন্য সমস্ত মাইগ্রেশন-সম্পর্কিত ইভেন্ট
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;একটি নির্দিষ্ট এক্সিকিউশন আইডির জন্য সমস্ত ব্যর্থতা
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;একটি নির্দিষ্ট উৎস ধরণের জন্য সমস্ত ইভেন্ট, যেমন মাইক্রোসফ্ট এক্সচেঞ্জ অনলাইন
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;এন্টারপ্রাইজ জিমেইল মাইগ্রেশনে একটি নির্দিষ্ট উৎস ব্যবহারকারীর জন্য সমস্ত ইভেন্ট
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;প্রদত্ত উৎস URI সহ একটি নির্দিষ্ট বার্তার জন্য সমস্ত ইভেন্ট, যেমন একটি 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;একটি নির্দিষ্ট উৎস ডেটা টাইপের জন্য সমস্ত ইভেন্ট, যেমন এক্সচেঞ্জ অনলাইন ইমেল ফোল্ডার
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;স্থিতি এবং ইভেন্টের নাম অনুসারে গোষ্ঠীভুক্ত ইভেন্টের সংখ্যা
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;স্ট্যাটাস এবং অবজেক্টের ধরণ অনুসারে গোষ্ঠীভুক্ত সমস্ত ইভেন্টের দৈনিক সংখ্যা
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;ড্রাইভ
শেয়ার করার পদ্ধতি অনুসারে গোষ্ঠীভুক্ত, শেয়ার করা Google ড্রাইভ আইটেমের সংখ্যা
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;ফাইল আইডি, শিরোনাম, মালিক এবং প্রকার। নির্দিষ্ট সময়ের মধ্যে বাইরে থেকে শেয়ার করা ফাইল।
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;অনুমতির পরিবর্তন এবং তাদের ফলাফল ভাগ করে নেওয়া। কোন অনুমতির পরিবর্তনের ফলে ফাইলের দৃশ্যমানতা পরিবর্তন হয়েছে তা বোঝার ক্ষমতা আপনাকে দেয়।
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";ফাইলের ধরণ অনুসারে ইভেন্টের ধরণগুলি বিভক্ত। ফাইলের ধরণ অনুসারে গ্রহণ প্রতিবেদনের জন্য কার্যকর।
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;প্রতিটি শেয়ার্ড ড্রাইভের ইভেন্টের ধরণ এবং নাম
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;আপনার ডোমেনের বাইরের ব্যবহারকারীদের তথ্য
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;বহিরাগত ব্যবহারকারীদের জন্য কখন এবং কখন অনুমতি পরিবর্তন করা হয়েছে
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;স্টোরেজ পর্যবেক্ষণ সম্পর্কিত তথ্য
X ড্রাইভের বেশি স্টোরেজ ব্যবহারকারী ব্যবহারকারীদের উপর রিপোর্ট তৈরির জন্য কার্যকর, একটি সেট থ্রেশহোল্ড সহ ( AND accounts.drive_used_quota_in_mb > 0 ধারা দিয়ে সংজ্ঞায়িত)।
এই কোয়েরিকে একটি নির্ধারিত কোয়েরি হিসেবে সংজ্ঞায়িত করা যেতে পারে অথবা, উদাহরণস্বরূপ, 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;নোট:
- গ্রাহক যে ফিল্টারটি সেট করছেন তার সাথে মেলে এই মানটি পরিবর্তন করা যেতে পারে। উদাহরণস্বরূপ, ১৫ গিগাবাইটের বেশি:
AND accounts.drive_used_quota_in_mb > 15000 -
CAST(DATE_SUB(CURRENT_DATE(), INTERVAL x DAY) AS STRING)এর সাথে তারিখের তুলনা তারিখের মান থেকে উপলব্ধ বিন্যাসের সাথে একটি তারিখের তুলনা করা সম্ভব করে তোলে। এই কোয়েরিটি Gmail-এর ক্ষেত্রেও প্রযোজ্য, যেখানে আমরা একই রকম মান খুঁজে পেতে পারি:
accounts.gmail_used_quota_in_mb
জিমেইল
BigQuery-এর সাথে Gmail-এর জন্য সেরা পদ্ধতি
- শুধুমাত্র আপনার প্রয়োজনীয় তথ্যের জন্য অনুসন্ধান করুন। এই উদাহরণগুলির সীমা ১,০০০ মিলের মধ্যে, তবে আপনি নিজের সীমা নির্ধারণ করতে পারেন।
- আপনার প্রশ্নের জন্য একটি সময়সীমা নির্ধারণ করুন। একদিন একটি সাধারণ সময়সীমা।
বিষয় মিল
একটি নির্দিষ্ট বিষয়ের সাথে মিলে যাওয়া সর্বোচ্চ ১,০০০ রেকর্ডের জন্য বার্তার সারাংশ দৃশ্য
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 1000প্রাপকের মিল
নির্দিষ্ট প্রাপকের জন্য স্বতন্ত্র বার্তার সংখ্যা গণনা করুন
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")স্বভাব এবং প্রাপকের মিল
উভয়ের সাথে মিলে যাওয়া ১,০০০টি রেকর্ডের জন্য বার্তার সারাংশ ভিউ:
- একটি নির্দিষ্ট স্বভাব (পরিবর্তন, প্রত্যাখ্যান, কোয়ারেন্টাইন)
- একটি নির্দিষ্ট প্রাপক
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 1000নিয়মের বিবরণ চালু করা হয়েছে
১,০০০টি রেকর্ড পর্যন্ত বার্তার সারাংশ দেখা, যা নির্দিষ্ট নিয়মের বর্ণনাকে ট্রিগার করেছে
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 1000স্প্যাম হিসেবে চিহ্নিত করা হয়েছে
১,০০০টি রেকর্ড পর্যন্ত বার্তার সারাংশ দেখা:
- স্প্যাম হিসেবে চিহ্নিত করা হয়েছে
- নির্দিষ্ট প্রাপকের জন্য
- সকল কারণেই
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 1000এনক্রিপশন প্রোটোকল—এনক্রিপ্ট করা হয়নি
এনক্রিপশন প্রোটোকল দ্বারা বার্তার সারাংশ দেখা—এনক্রিপ্ট করা হয়নি
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 1000এনক্রিপশন প্রোটোকল—শুধুমাত্র TLS
এনক্রিপশন প্রোটোকল দ্বারা বার্তার সারাংশ দেখা—শুধুমাত্র 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 1000মেসেজ আইডি মিল
প্রদত্ত বার্তা আইডির জন্য বার্তার বিশদ দৃশ্য (বার্তা আইডির চারপাশে "<>" অন্তর্ভুক্ত করুন)
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 1000স্বভাব—বার্তা প্রত্যাখ্যান করুন
বার্তা প্রত্যাখ্যান করুন:
- কোন নিয়ম প্রত্যাখ্যানের কারণ হয়েছিল?
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 1000স্বভাব—বার্তা পরিবর্তন করুন
বার্তা পরিবর্তন করুন:
- কোন নিয়মের কারণে এই পরিবর্তন এসেছে?
- কোন পরিবর্তন উপবিষয়শ্রেণী (উদাহরণস্বরূপ, শিরোনাম বা বিষয়)?
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 1000কোয়ারেন্টাইন বার্তা
কোন নিয়ম কোন বার্তাকে পৃথক করে রেখেছে?
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 1000যৌগিক প্রশ্ন
গত 30 দিনে একটি নির্দিষ্ট নিয়ম ("নিয়ম বর্ণনা" নামে পরিচিত) দ্বারা ধরা সমস্ত বার্তা গণনা করুন:
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"গত দিনে TLS এনক্রিপশন ছাড়াই প্রাপ্ত সমস্ত বার্তা তালিকাভুক্ত করুন:
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 = 0গত ৩০ দিনের মধ্যে আমার অ্যাকাউন্টে যে ১০টি মেইল আদান-প্রদান করা হয়েছে তার তালিকা তৈরি করুন:
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 10জিমেইলে দৈনিক সক্রিয় ব্যবহারকারীদের ৩০ দিনের সক্রিয় ব্যবহারকারীদের অনুপাত
দৈনিক সক্রিয় ব্যবহারকারী:
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;৭ দিনের সক্রিয় ব্যবহারকারী:
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;৩০ দিনের সক্রিয় ব্যবহারকারী:
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;ইমেল বার্তার সাথে কমপক্ষে একটি শ্রেণীবিভাগ লেবেল যুক্ত সাম্প্রতিক ১০০টি Gmail লগ ইভেন্ট
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;একটি নির্দিষ্ট ইমেল বার্তার জন্য সমস্ত উপলব্ধ লগ ইভেন্ট
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;গোষ্ঠী
গুগল গ্রুপের সদস্যপদ পরিবর্তন এবং ব্যবহারকারীর আচরণ
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
1000যদি আপনি একটি YYYY-MM-DD টাইমস্ট্যাম্প রাখতে চান, তাহলে প্রথম SELECT স্টেটমেন্ট উপাদানটি নিম্নলিখিত দিয়ে প্রতিস্থাপন করা যেতে পারে:
EXTRACT(DATE FROM TIMESTAMP_MICROS(time_usec)) AS date,
WHERE ধারায় তারিখগুলি নিম্নলিখিত যেকোনো একটি উপায়ে ফিল্টার করা যেতে পারে:
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
1000গুগল মিট
তারিখ অনুসারে ভিডিও কলের সংখ্যা এবং মোট কল মিনিট
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 ASCদৈনিক সক্রিয় ব্যবহারকারী
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 DESC৩০ দিনের সক্রিয় ব্যবহারকারী
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 DESCনিয়ম
নাম, মিলে যাওয়া অ্যাপ্লিকেশন এবং ক্রিয়া অনুসারে DLP নিয়মগুলি ট্রিগার করা হয়েছে
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;টোকেন
কোনও থার্ড-পার্টি অ্যাপ কতবার 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;অ্যাডমিন কনসোল সাইন-ইন প্রচেষ্টা
গুগল অ্যাডমিন কনসোলে ব্যর্থ সাইন-ইন সম্পর্কে বিস্তারিত তথ্য
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;ব্যবহারের টেবিলের জন্য স্কিমা
স্কিমা পরিবর্তন হতে পারে। আপনি Reports API ডকুমেন্টেশনে প্যারামিটার এবং ফিল্ডের একটি আপডেটেড এবং সম্পূর্ণ তালিকা দেখতে পাবেন।
তারিখ অনুসারে ফিল্টার করুন
কার্যকলাপ অথবা ব্যবহারের টেবিল অনুসন্ধান করার সময় আপনি তারিখ অনুসারে ফিল্টার করতে পারেন। তারিখ উপস্থাপনের সময় উভয়েরই আলাদা ফর্ম্যাট রয়েছে:
- অ্যাক্টিভিটি টেবিলটি ইউনিক্স মাইক্রোসেকেন্ডে টাইমস্ট্যাম্প সংরক্ষণ করে। এটি একটি পূর্ণসংখ্যার মান (একটি সংখ্যা) যা TIMESTAMP_MICROS() ফাংশনের সাহায্যে একটি তারিখে রূপান্তর করা যেতে পারে।
- ব্যবহারের টেবিলটি তারিখের বিন্যাস সহ তার তারিখের মানগুলি প্রদর্শন করে, তাই এই রূপান্তরটির প্রয়োজন নেই।
যেকোনো টেবিলের জন্য, আপনি নিম্নলিখিত পদ্ধতিগুলির মধ্যে একটি ব্যবহার করে একটি নির্দিষ্ট তারিখ (অথবা তারিখ পরিসর) দ্বারা ফিল্টার করতে পারেন।
কার্যকলাপ টেবিল
Unix Micros ( activity table) কাঠামোর সাহায্যে একটি নির্দিষ্ট তারিখ অনুসারে ফিল্টার করার জন্য, আপনি WHERE ক্লজ এবং TIMESTAMP() ফাংশনটি সংজ্ঞায়িত করতে পারেন যাতে greater than (>) এবং lesser than (<) অপারেটরগুলির সাথে একটি সহজ তুলনা করা যায়:
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 1000এখানে ধারণাটি হল টাইম_ইউসেক ইনপুট মানের সীমা নির্ধারণ করা, TIMESTAMP_MICROS() ফাংশন থেকে এর রিটার্ন মানের সাথে TIMESTAMP() ফাংশনের রিটার্ন মানের তুলনা করে, যেখানে স্ট্রিং-টাইপ প্যারামিটার হিসেবে একটি তারিখ যোগ করা হয়েছে। এটি স্ট্যান্ডার্ড SQL এর টাইমস্ট্যাম্প ফাংশনের মান অনুসরণ করে এবং সহজ তুলনা অপারেটর (>) এবং (<) ব্যবহার করে, বিশেষ করে একটি টাইম উইন্ডো বন্ধ করার জন্য WHERE ক্লজের AND এক্সটেনশন সহ।
ব্যবহারের সারণী
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;আমরা টেবিলে উপস্থিত স্ট্রিং-টাইপ তারিখের মানটি TIMESTAMP() ফাংশনে পাস করতে পারি এবং প্রথম উদাহরণের মতো একইভাবে তুলনা অপারেটর (>) এবং (<) ব্যবহার করতে পারি।
ডোমেন উপনাম এবং সাবডোমেন অনুসারে ফিল্টার করুন: বাদ দিন এবং অন্তর্ভুক্ত করুন
আপনার কোয়েরি ফলাফল থেকে নির্দিষ্ট ডোমেন বাদ দিতে বা অন্তর্ভুক্ত করতে, WHERE ধারায় ইমেল ঠিকানার জন্য একটি ফিল্টার প্রয়োগ করুন, ডোমেনগুলি ফিল্টার করতে ওয়াইল্ডকার্ড (%) ব্যবহার করুন।
আপনি AND অথবা OR স্টেটমেন্ট কিভাবে ব্যবহার করবেন তা নির্ভর করে আপনি ফিল্টার আউট করছেন (বাদ দিচ্ছেন) নাকি শুধুমাত্র নির্দিষ্ট ফলাফল অন্তর্ভুক্ত করছেন তার উপর।
ফলাফল থেকে নির্দিষ্ট ডোমেন বাদ দিন
WHERE email NOT LIKE ("%@sub.%")
AND email NOT LIKE ("%@test.%")ফলাফলে শুধুমাত্র নির্দিষ্ট কিছু ডোমেন অন্তর্ভুক্ত করুন
WHERE email LIKE ("%@sub.%")
OR email LIKE ("%@test.%")নিয়ম নিরীক্ষা লগ
ব্যবহারকারীদের সংবেদনশীল তথ্য শেয়ার করার প্রচেষ্টা ট্র্যাক করতে এই কোয়েরিটি ব্যবহার করুন।
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;সম্পর্কিত বিষয়
Google, Google Workspace, এবং সম্পর্কিত চিহ্ন এবং লোগো হল Google LLC-এর ট্রেডমার্ক। অন্যান্য সমস্ত কোম্পানি এবং পণ্যের নাম হল সেই কোম্পানিগুলির ট্রেডমার্ক যার সাথে তারা যুক্ত।