BigQuery-তে Drive ইনভেন্টরি এক্সপোর্টের জন্য স্কিমা এবং উদাহরণ কোয়েরি

এই ফিচারের জন্য সমর্থিত সংস্করণগুলো হলো: ফ্রন্টলাইন প্লাস; এন্টারপ্রাইজ স্ট্যান্ডার্ড ও এন্টারপ্রাইজ প্লাস; এডুকেশন স্ট্যান্ডার্ড ও এডুকেশন প্লাস; এন্টারপ্রাইজ এসেনশিয়ালস প্লাস; ক্লাউড আইডেন্টিটি প্রিমিয়াম। আপনার সংস্করণটি তুলনা করুন।

ড্রাইভ ইনভেন্টরি এক্সপোর্ট সেট আপ করার পরে, আপনি BigQuery-তে ডেটাসেটটি বিশ্লেষণ করতে পারবেন। এই পৃষ্ঠায় টেবিল স্কিমা এবং BigQuery থেকে পাওয়া যায় এমন সাধারণ রিপোর্টগুলির জন্য উদাহরণ কোয়েরি বর্ণনা করা হয়েছে।

দ্রষ্টব্য: আপনাকে অবশ্যই আপনার গুগল ক্লাউড প্রজেক্টের জন্য বিলিং সেট আপ করতে হবে, কারণ BigQuery-তে আপনার ড্রাইভ ইনভেন্টরি এক্সপোর্ট এবং কোয়েরি করার জন্য খরচ রয়েছে। একটি প্রজেক্টের জন্য বিলিং সক্রিয় করুন

ইনভেন্টরি রপ্তানি স্কিমা চালান

পরিকল্পনা এবং সংজ্ঞা

ড্রাইভ ইনভেন্টরি এক্সপোর্টটি নিম্নলিখিত স্কিমা সহ BigQuery ডেটাসেটে যুক্ত করা হয়:

নাম স্কিমা ক্ষেত্র বর্ণনা
আইটেম আইডি id আইটেমটির অনন্য ড্রাইভ শনাক্তকারী।
সংস্করণ version ফাইলটির সর্বশেষ সংস্করণ নম্বর। ফাইল সংস্করণটি একটি ক্রমবর্দ্ধমান সংখ্যা। এটি সার্ভারে ফাইলটিতে করা প্রতিটি পরিবর্তনকে প্রতিফলিত করে, এমনকি ব্যবহারকারীর কাছে অদৃশ্য পরিবর্তনগুলোও।

মালিক

owner.user.id

কোনো ব্যবহারকারীর মালিকানাধীন আইটেমগুলির জন্য, ফাইল মালিকের ইউজার আইডি।

owner.user.email

ব্যবহারকারীর মালিকানাধীন আইটেমগুলির জন্য, ফাইল মালিকের ইমেল।

owner.shared_drive.id

শেয়ার করা ড্রাইভের আইটেমগুলোর জন্য, শেয়ার করা ড্রাইভ আইডি।

স্রষ্টা creator আইটেমটির নির্মাতার ইমেল এবং ইউজার আইডি। নির্মাতার যদি আইটেমটিতে আর অ্যাক্সেস না থাকে, তাহলে এই ফিল্ডটি পূরণ করা হয় না।
স্ন্যাপশট টাইমস্ট্যাম্প snapshot_start_time_micros এবং snapshot_end_time_micros রিপোর্ট তৈরি শুরু ও শেষ হওয়ার সময়সূচক।
পড়ার সময় read_time_micros ড্রাইভ আইটেমের মেটাডেটা পড়ার সময়কার টাইমস্ট্যাম্প।
শিরোনাম title

ব্যবহারকারী কর্তৃক নির্ধারিত ফাইলের শিরোনাম।

বর্ণনা description পণ্যটির একটি সংক্ষিপ্ত বিবরণ।
ট্র্যাশড স্ট্যাটাস trashed আইটেমটি ট্র্যাশে সরানো হলেও এখনো মুছে ফেলা হয়নি কি না।
মূকাভিনয়ের ধরন mime_type আইটেমটির MIME টাইপ। Google Workspace এবং Google Drive দ্বারা সমর্থিত MIME টাইপগুলো দেখুন।
ফাইল এক্সটেনশন file_extension সম্পূর্ণ ফাইল এক্সটেনশনের শেষ অংশ, যা নেম ফিল্ড থেকে নেওয়া হয়। এটি শুধুমাত্র গুগল ড্রাইভে বাইনারি কন্টেন্টযুক্ত আইটেমগুলোর জন্য উপলব্ধ।
সৃষ্টির সময় create_time_micros আইটেমটি তৈরি হওয়ার সময়সূচক।
শেষ পরিবর্তনের সময় last_modified_time_micros সর্বশেষ কখন কোনো ব্যক্তি আইটেমটি পরিবর্তন করেছিল, তার সময়সূচক।
আকার বাইট size_bytes ব্লব এবং ডক্স এডিটর ফাইলগুলির আকার বাইটে পরিমাপ করা হয়। যেসব আইটেমের কোনো আকার নেই, যেমন শর্টকাট এবং ফোল্ডার, সেগুলোর ক্ষেত্রে এটি রিপোর্ট করা হয় না।
ব্যবহৃত কোটা consumed_quota_bytes আইটেমটি দ্বারা ব্যবহৃত স্টোরেজ কোটা বাইটের সংখ্যা। এর মধ্যে হেড রিভিশনের পাশাপাশি সংরক্ষিত পূর্ববর্তী রিভিশনগুলোও অন্তর্ভুক্ত।
সাংগঠনিক ইউনিট org_unit_path আইটেমটির মালিকের সাংগঠনিক ইউনিট।
চেকসাম md5_checksum আইটেমটির বিষয়বস্তুর MD5 চেকসাম।
ক্লায়েন্ট-সাইড এনক্রিপশন client_side_encrypted আইটেমটি ক্লায়েন্ট-সাইড এনক্রিপ্টেড কিনা তা নির্দেশকারী একটি বুলিয়ান।
মূল ফোল্ডার parent আইটেমটির মূল ফোল্ডারের আইডি।

নিম্নলিখিত ক্ষেত্রে প্যারেন্ট ফোল্ডারটি পূরণ করা হবে না:

  1. ফাইলটি ব্যবহারকারীর 'মাই ড্রাইভ' শীর্ষ-স্তরের ফোল্ডারে অবস্থিত।
  2. প্যারেন্ট ফোল্ডারটি ডোমেইনের মালিকানাধীন নয়।
প্রয়োগকৃত লেবেল* applied_labels.id পণ্যটিতে লাগানো লেবেলের আইডি।
applied_labels.title আইটেমটিতে প্রয়োগ করা লেবেলের রিসোর্স নাম।
applied_labels.field_values.id

একটি ফিল্ডের আইডি, যা একটি লেবেল বা লাইব্রেরির মধ্যে অনন্য।

applied_labels.field_values.type

ক্ষেত্রের ধরণ। নিম্নলিখিতগুলির মধ্যে একটি হতে পারে:

applied_labels.field_values.display_name

ফিল্ডটিকে শনাক্তকারী যে লেখাটি UI-তে দেখানো হবে।
শর্টকাট টার্গেট আইডি shortcut_target_id এই শর্টকাটটি যে ফাইল বা ফোল্ডারকে নির্দেশ করে, তার আইডি।
অনুমতি access.permissions.permission_id

এই অনুমতির আইডি। এটি অনুমোদনগ্রহীতার একটি অনন্য শনাক্তকারী।

দ্রষ্টব্য: পারমিশন আইডি এবং ইউজার আইডি এক নয়।

access.permissions.name

অনুমতির মানের সুন্দর নাম। নিচে প্রতিটি ধরণের অনুমতির কিছু উদাহরণ দেওয়া হলো:

  • user - ব্যবহারকারীর পুরো নাম, যা তার গুগল অ্যাকাউন্টে সংজ্ঞায়িত করা আছে, যেমন 'ডানা ক্রুজ'।
  • group - গ্রুপের নাম, যেমন "উদাহরণ অ্যাডমিন"
  • domain - স্ট্রিং ডোমেইন নাম, যেমন "example.com"
  • anyone - কোনো নাম জানানো হয়নি
access.permissions.type

অনুমতির ধরণ। বৈধ মানগুলো হলো:

  • user
  • group
  • domain
  • anyone
access.permissions.role

এই অনুমতি দ্বারা প্রদত্ত ভূমিকা। বৈধ মানগুলি হলো:

  • owner
  • organizer
  • fileOrganizer
  • writer
  • commenter
  • reader

দ্রষ্টব্য: প্রকার সম্পর্কে বিস্তারিত জানতে ভূমিকা ও অনুমতি দেখুন।

access.permissions.view

যদি অনুমতিটি কোনো ভিউ-এর অন্তর্গত হয়, তাহলে মানটি published হয়।

access.permissions.allow_file_discovery

অনুমতিটি ফাইলটিকে অনুসন্ধানযোগ্য করে তোলে কিনা। এটি শুধুমাত্র domain বা anyone ধরনের অনুমতির ক্ষেত্রেই রিপোর্ট করা হয়।
access.permissions.email যে ব্যবহারকারী বা গোষ্ঠীর জন্য এই অনুমতিটি প্রযোজ্য, তাদের ইমেল ঠিকানা।
access.permissions.domain এই অনুমতিটি যে সত্তার জন্য প্রযোজ্য, তার ডোমেইন নাম। অনুমতির ধরন যখন user , group বা domain হয়, তখন এটি উপস্থিত থাকে।
access.permissions.user_id অনুমতি সংক্রান্ত ইমেইলের সাথে যুক্ত ইউজার আইডি।
access.permissions.permission_details
.permission_type
ব্যবহারকারীর জন্য অনুমতির ধরণ।
access.permissions.permission_details.role ব্যবহারকারীর প্রধান ভূমিকা।
access.permissions.permission_details
.inherited_from
যে আইটেম থেকে এই অনুমতিটি উত্তরাধিকারসূত্রে প্রাপ্ত হয়, তার আইডি। এটি শুধুমাত্র শেয়ার্ড ড্রাইভের আইটেমগুলোর জন্য পূরণ করা হয়।
access.permissions.permission_details
.inherited
অনুমতিটি উত্তরাধিকারসূত্রে প্রাপ্ত হবে কিনা তা নির্দেশকারী একটি বুলিয়ান।
access.permissions.inherited_permissions
_disabled
এই আইটেমটির জন্য উত্তরাধিকারসূত্রে প্রাপ্ত অনুমতি নিষ্ক্রিয় করা আছে কিনা। এটি শুধুমাত্র সীমিত অ্যাক্সেসযুক্ত ফোল্ডারগুলির জন্য প্রযোজ্য।

* ড্রাইভে থাকা আইটেমগুলিতে প্রয়োগ করা লেবেলগুলিকে বোঝায়।

শেয়ার্ড ড্রাইভ স্কিমা

শেয়ার করা ড্রাইভ টেবিল

সারণিটিতে ড্রাইভ ইনভেন্টরি এক্সপোর্টে শেয়ার্ড ড্রাইভ-নির্দিষ্ট ফিল্ডগুলির স্কিমা বিস্তারিতভাবে বর্ণনা করা হয়েছে।

নাম স্কিমা ক্ষেত্র বর্ণনা
শেয়ার্ড ড্রাইভ আইডি shared_drive_id অনন্য শেয়ার্ড ড্রাইভ শনাক্তকারী।
শেয়ার করা ড্রাইভের নাম name ব্যবহারকারীর দেওয়া শেয়ার্ড ড্রাইভের নাম।
পড়ার সময় read_time_micros শেয়ার্ড ড্রাইভের মেটাডেটা পড়ার সময়কার টাইমস্ট্যাম্প, মাইক্রোসেকেন্ডে।

কোয়েরির উদাহরণ

এই কোয়েরি উদাহরণগুলো লিগ্যাসি SQL ধরে নেওয়া হয়েছে। BigQuery ডেটা কোয়েরি করা সম্পর্কে আরও জানুন।

project_name.dataset_name-এর জায়গায় আপনার প্রোজেক্টের নাম এবং ডেটাসেটের নাম বসান।

এই কোয়েরিটি ফাইল আইডি, শিরোনাম, মালিকের ইমেল এবং ধরন সহ একটি টেবিল ফেরত দেয়।

SELECT id, title, mime_type, owner.user.email
FROM project_name.dataset_name
WHERE EXISTS (
  SELECT 1
  FROM UNNEST(access.permissions) AS permission
  WHERE permission.allow_file_discovery = true
)

একটি নির্দিষ্ট লেবেলযুক্ত আইটেমগুলি খুঁজুন

project_name.dataset_name-এর জায়গায় আপনার প্রোজেক্টের নাম এবং ডেটাসেটের নাম বসান। label_id-এর জায়গায় আপনার লেবেল আইডি বসান, যা আপনি লেবেল ম্যানেজার থেকে পেতে পারেন।

এই কোয়েরিটি ফাইল আইডি, শিরোনাম, মালিকের ইমেল এবং ধরন সহ একটি টেবিল ফেরত দেয়।

SELECT id, title, mime_type, owner.user.email
FROM project_name.dataset_name
WHERE EXISTS (
  SELECT 1
  FROM UNNEST(applied_labels) AS label
  WHERE label.id = label_id
)

যেসব ব্যবহারকারী ড্রাইভ স্টোরেজ ব্যবহারের নির্ধারিত সীমা অতিক্রম করেছেন, তাদের খুঁজুন।

project_name.dataset_name-এর জায়গায় আপনার প্রোজেক্টের নাম এবং ডেটাসেটের নাম লিখুন। threshold-এর জায়গায় আপনার নির্ধারিত থ্রেশহোল্ড (MB-তে) লিখুন। উদাহরণস্বরূপ, যেসব ব্যবহারকারী ১৫ জিবি-র বেশি ড্রাইভ স্টোরেজ ব্যবহার করেন, তাদের খুঁজে বের করার জন্য শেষের আগের লাইনটি হবে HAVING total_storage_mb > 15000

এই কোয়েরিটি ব্যবহারকারীর ইমেল টেবিল এবং মোট ড্রাইভ স্টোরেজ ব্যবহারের পরিমাণ (এমবি-তে) অবরোহী ক্রমে ফেরত দেয়।

SELECT owner.user.email AS user_email,
  SUM(size_bytes) / (1000000) AS total_storage_mb
FROM project_name.dataset_name
GROUP BY user_email
HAVING total_storage_mb > threshold
ORDER BY total_storage_mb DESC

কোন ধরনের আইটেম সবচেয়ে বেশি জায়গা ব্যবহার করে তা খুঁজে বের করুন।

project_name.dataset_name-এর জায়গায় আপনার প্রোজেক্টের নাম এবং ডেটাসেটের নাম বসান।

এই কোয়েরিটি আকারের অবরোহী ক্রমে আইটেমের প্রকারভেদের একটি সারণী ফেরত দেয়।

SELECT mime_type, SUM(consumed_quota_bytes) AS total_consumed
FROM project_name.dataset_name
GROUP BY mime_type
ORDER BY total_consumed DESC

ক্লায়েন্ট-সাইড এনক্রিপশন (CSE) দিয়ে এনক্রিপ্ট করা আইটেমগুলি খুঁজুন

project_name.dataset_name-এর জায়গায় আপনার প্রোজেক্টের নাম এবং ডেটাসেটের নাম বসান।

SELECT id, owner.user.email, title
FROM project_name.dataset_name
WHERE mime_type LIKE '%.encrypted'

একজন নির্দিষ্ট ব্যবহারকারীর সাথে শেয়ার করা আইটেমগুলি খুঁজুন

project_name.dataset_name-এর জায়গায় আপনার প্রোজেক্টের নাম এবং ডেটাসেটের নাম বসান। user@example.com-এর জায়গায় আপনার নির্দিষ্ট ব্যবহারকারীকে বসান।

দ্রষ্টব্য: এই কোয়েরিটি গ্রুপ বা টার্গেট অডিয়েন্স মেম্বারশিপের মাধ্যমে ব্যবহারকারীর জন্য শেয়ারিং খুঁজে পায় না।

SELECT id, title, mime_type, owner.user.email as owner_email
FROM project_name.dataset_name
WHERE EXISTS (
  SELECT 1
  FROM UNNEST(access.permissions) AS permissions
  WHERE permissions.email = user@example.com
)

শেয়ার করা ড্রাইভের নাম দিয়ে আইটেম খুঁজুন

project_name.dataset_name-এর জায়গায় আপনার প্রোজেক্টের নাম এবং ডেটাসেটের নাম বসান।

এই কোয়েরিটি ড্রাইভ আইটেমের শিরোনাম এবং শেয়ার্ড ড্রাইভের নাম সহ একটি টেবিল ফেরত দেয়।

SELECT i.title, s.name
FROM project_name.dataset_name.inventory AS i
JOIN project_name.dataset_name.shared_drives AS s
ON i.owner.shared_drive.id = s.shared_drive_id;

শেয়ার্ড ড্রাইভে আইটেমের সংখ্যা খুঁজুন

project_name.dataset_name-এর জায়গায় আপনার প্রোজেক্টের নাম এবং ডেটাসেটের নাম বসান।

এই কোয়েরিটি শেয়ার্ড ড্রাইভের নাম এবং আইটেমের সংখ্যাসহ একটি টেবিল ফেরত দেয়।

SELECT  s.name as shared_drive, count(*) as item_count
FROM project_name.dataset_name.inventory AS i
JOIN project_name.dataset_name.shared_drives AS s
ON i.owner.shared_drive.id = s.shared_drive_id
GROUP BY shared_drive;