داده های تراکنش کارت اعتباری را در Bigtable با استفاده از BigQuery و Looker تجزیه و تحلیل و تجسم کنید

۱. مرور کلی

این آزمایشگاه کد، شما را در تجزیه و تحلیل جریان داده‌های تراکنش کارت اعتباری که در Bigtable نوشته می‌شوند، راهنمایی می‌کند. شما یاد خواهید گرفت که چگونه از الگوی تغییر Bigtable به BigQuery برای خروجی گرفتن داده‌ها به صورت بلادرنگ استفاده کنید. سپس، تکنیک‌هایی را برای پرس و جو از گزارش جریان تغییر و نحوه قالب‌بندی مجدد داده‌ها برای ایجاد داشبورد با استفاده از Looker خواهید دید.

این آزمایشگاه کد برای کاربران فنی که با Bigtable، ابزارهای خط فرمان و سرویس‌های پخش رویداد آشنا هستند، در نظر گرفته شده است.

426dc59200875a20.png

این codelab به شما نشان می‌دهد که چگونه موارد زیر را انجام دهید:

  • یک جدول Bigtable با قابلیت فعال‌سازی جریان تغییر (change stream) ایجاد کنید.
  • یک مجموعه داده BigQuery ایجاد کنید.
  • الگوی Dataflow Bigtable change streams to BigQuery.
  • جریان رویداد را در BigQuery جستجو کنید.
  • جریان رویداد را با Looker تجسم کنید.

این نمودار معماری سیستمی را که شما مستقر خواهید کرد نشان می‌دهد.

336e940307d0e0a.png

۲. راه‌اندازی پروژه

  1. در کنسول گوگل کلود، در صفحه انتخاب پروژه، یک پروژه گوگل کلود را انتخاب یا ایجاد کنید .

eb5309715175de69.png

  1. مطمئن شوید که پرداخت برای پروژه Google Cloud شما فعال است .
  2. برای فعال کردن APIهای لازم برای Dataflow، Bigtable، BigQuery، Looker و Cloud Storage، از این صفحه فعال‌سازی API که از قبل پر شده است، دیدن کنید.

۳. ایجاد یک مجموعه داده BigQuery

شما بعداً در آزمایشگاه کد، داده‌ها را با استفاده از BigQuery تجزیه و تحلیل خواهید کرد. برای ایجاد مجموعه داده برای خروجی خط لوله داده خود، این دستورالعمل‌ها را دنبال کنید.

  1. در کنسول گوگل کلود، به صفحه BigQuery بروید.
  2. در پنل اکسپلورر ، نام پروژه خود را پیدا کنید و روی منوی سرریز (سه نقطه عمودی کنار شناسه پروژه) کلیک کنید.
  3. روی ایجاد مجموعه داده کلیک کنید.

۱۲۲bc1a411b8dc63.png

  1. در پنل ایجاد مجموعه داده ، موارد زیر را انجام دهید:
  • برای شناسه مجموعه داده ، bigtable_bigquery_tutorial را وارد کنید.
  • تنظیمات پیش‌فرض باقی‌مانده را همانطور که هستند، بگذارید بمانند.
  • روی ایجاد مجموعه داده کلیک کنید.

۴. یک جدول Bigtable با قابلیت فعال‌سازی جریان تغییر ایجاد کنید

بیگ‌تیبل یک سرویس پایگاه داده NoSQL با تأخیر کم و مقیاس‌پذیر افقی است و یکی از موارد استفاده رایج آن، ارائه داده‌های مالی است. در اینجا شما قصد دارید جدولی ایجاد کنید که بتواند تراکنش‌های کارت اعتباری را ذخیره کند. بیگ‌تیبل می‌تواند نوشتن‌های با توان عملیاتی بالا در تراکنش‌ها در سراسر جهان را مدیریت کند و حتی می‌تواند از این داده‌ها برای تشخیص کلاهبرداری در لحظه استفاده کند.

  1. در کنسول گوگل کلود، به صفحه Bigtable Instances بروید.
  2. روی شناسه نمونه‌ای که برای این آموزش استفاده می‌کنید کلیک کنید. اگر نمونه‌ای در دسترس ندارید، یک نمونه با نام دلخواه خود در منطقه‌ای نزدیک به خود ایجاد کنید. می‌توانید برای هر چیز دیگری از تنظیمات پیش‌فرض استفاده کنید.

a2e8de7b66dc42e.png

  1. در پنل ناوبری سمت چپ، روی جداول (Tables) کلیک کنید.
  2. روی ایجاد جدول کلیک کنید.

9c267c00f93747c4.png

  • نام جدول را retail-database قرار دهید.
  • یک خانواده ستون به نام transactions اضافه کنید.
  • فعال کردن جریان تغییر را انتخاب کنید.
  • سیاست جمع‌آوری زباله و دوره نگهداری را با مقادیر پیش‌فرض خود رها کنید.
  • روی ایجاد کلیک کنید.

696cd1399c354816.png

۵. یک خط لوله داده را برای ثبت جریان تغییرات، مقداردهی اولیه کنید

عملکرد Bigtable برای خواندن نقطه‌ای و اسکن محدوده ردیف بهینه است، اما تجزیه و تحلیل در سطح جدول می‌تواند بر ظرفیت سرویس‌دهی و منابع CPU فشار وارد کند. BigQuery برای تجزیه و تحلیل در سطح جدول عالی است، بنابراین راه‌حلی که در اینجا استفاده خواهید کرد، نوشتن دوگانه است. این بدان معناست که شما داده‌های خود را در Bigtable و BigQuery می‌نویسید که یک تکنیک رایج است. این کار نیازی به کدنویسی اضافی ندارد زیرا از Bigtable change streams to BigQuery Dataflow استفاده خواهید کرد: وقتی داده‌ها در Bigtable نوشته می‌شوند، خط لوله یک رکورد تغییر در BigQuery می‌نویسد. هنگامی که داده‌ها در BigQuery قرار دارند، می‌توانید پرس‌وجوهای بهینه‌ای را روی کل مجموعه داده‌های خود انجام دهید که بر عملکرد داده‌های سرویس‌دهی شما در Bigtable تأثیری نخواهد گذاشت.

f4c9d8faf10ce77.png

  1. در صفحه جداول Bigtable، جدول retail-database خود را پیدا کنید.
  2. در ستون تغییر جریان ، روی اتصال کلیک کنید.
  3. در پنجره‌ی «اتصال با جریان داده» ، BigQuery را انتخاب کنید.
  4. روی ایجاد کار Dataflow کلیک کنید.
  5. در فیلدهای پارامتر ارائه شده، مقادیر پارامتر خود را وارد کنید. نیازی به ارائه هیچ پارامتر اختیاری نیست.
  • شناسه پروفایل برنامه Cloud Bigtable را روی default تنظیم کنید.
  • مجموعه داده BigQuery را روی bigtable_bigquery_tutorial تنظیم کنید.
  1. روی اجرای کار کلیک کنید.
  2. قبل از ادامه، صبر کنید تا وضعیت کار به «شروع» یا «در حال اجرا» برسد. قرار گرفتن کار در صف می‌تواند حدود پنج دقیقه طول بکشد. صفحه به طور خودکار به‌روزرسانی می‌شود. این الگو یک کار جاری ایجاد می‌کند، بنابراین می‌تواند به طور مداوم داده‌های جدید نوشته شده در Bigtable را پردازش کند تا زمانی که کار به صورت دستی متوقف شود.

a04908b37c6fe96b.png

۶. مقداری داده در Bigtable بنویسید

حالا، شما تراکنش‌های کارت اعتباری یک سال را در جدول Bigtable خود خواهید نوشت. این مجموعه داده‌ی نمونه شامل اطلاعاتی مانند شماره کارت اعتباری، نام و شناسه‌ی فروشنده و مبلغ است. در یک برنامه‌ی پردازش کارت اعتباری واقعی، این داده‌ها به صورت بلادرنگ و همزمان با وقوع هر تراکنش، به پایگاه داده‌ی شما ارسال می‌شوند.

  1. با کلیک روی دکمه‌ای که در گوشه سمت راست بالای کنسول ابری قرار دارد، Cloud Shell را باز کنید.

f6395329b04ecb64.png

  1. در صورت درخواست، درخواست را برای تأیید Cloud Shell بپذیرید.
  2. مجموعه داده را دانلود کنید.
gsutil cp gs://cloud-bigtable-public-datasets/change-streams-tutorial/cc-transactions-2023.csv .
  1. متغیرهای محیطی خود را در خط فرمان تنظیم کنید
PROJECT_ID=your-project-id
BIGTABLE_INSTANCE_ID=your-bigtable-instance-id
  1. از رابط خط فرمان cbt برای نوشتن تعدادی تراکنش کارت اعتباری در جدول retail-database استفاده کنید.
cbt -instance=$BIGTABLE_INSTANCE_ID -project=$PROJECT_ID import \
retail-database cc-transactions-2023.csv  column-family=transactions

خروجی خواهد گفت

Done importing 10000 rows.

۷. مشاهده گزارش تغییرات در BigQuery

  1. در کنسول گوگل کلود، به صفحه BigQuery بروید.
  2. در پنجره اکسپلورر ، پروژه خود و مجموعه داده bigtable_bigquery_tutorial باز کنید.
  3. روی جدول retail-database_changelog کلیک کنید. اگر جدول موجود نباشد، ممکن است لازم باشد مجموعه داده‌ها را به‌روزرسانی کنید.
  4. برای مشاهده‌ی گزارش تغییرات، روی پیش‌نمایش کلیک کنید.

aa97ff01f944832.png

چند پرس‌وجو را امتحان کنید

اکنون، می‌توانید چند پرس‌وجو روی این مجموعه داده اجرا کنید تا به بینش‌هایی دست یابید. پرس‌وجوهای SQL در اینجا ارائه شده‌اند، اما بخش «پرس‌وجوی یک گزارش تغییر Bigtable» در مستندات BigQuery اطلاعات بیشتری در مورد نحوه نوشتن پرس‌وجو برای داده‌های گزارش تغییرات دارد.

یک تراکنش را جستجو کنید

برای جستجوی داده‌های مربوط به یک تراکنش خاص، از کوئری زیر استفاده کنید.

SELECT *
FROM `bigtable_bigquery_tutorial.retail-database_changelog`
WHERE row_key="3034-442694-3052#2023-03-03T14:50:46.824Z"

خواهید دید که هر ستون نوشته شده در BigQuery به یک ردیف جداگانه تبدیل شده است.

تعداد خریدها را در هر دسته پیدا کنید

برای شمارش تعداد خریدها در هر دسته، از کوئری زیر استفاده کنید.

SELECT value as category, count(*) as `number of sales`
FROM `bigtable_bigquery_tutorial.retail-database_changelog`
WHERE column="category"
GROUP BY category

داده‌ها را دوباره قالب‌بندی کنید

برای بازسازی هر تراکنش در یک ردیف جدول BigQuery، داده‌ها را تغییر داده و نتیجه را در یک جدول جدید ذخیره می‌کنید. این فرمت، پرس‌وجو را قابل مدیریت‌تر می‌کند.

CREATE VIEW bigtable_bigquery_tutorial.retail_transactions_view AS (
    SELECT *, parse_numeric(amount) as sales_dollars FROM (
      SELECT row_key, timestamp, column, value
      FROM `bigtable_bigquery_tutorial.retail-database_changelog`
      )
      PIVOT (
      MAX(value)
      FOR column in ("merchant", "amount", "category", "transaction_date")
    )
)

یک داشبورد Looker ایجاد کنید

  1. برای رفتن به صفحه جزئیات نمای جدید، روی «برو به مشاهده» کلیک کنید.
  2. روی «صادر کردن» کلیک کنید.
  3. با Looker Studio کاوش را انتخاب کنید

bb45482e9101b0f.png

۸. نمودارها را به داشبورد اضافه کنید

حالا می‌توانید اطلاعات را نمودار کنید تا راحت‌تر بتوانید آنها را درک کنید و به عنوان یک گزارش به اشتراک بگذارید. شما سه نمودار به داشبورد خود اضافه خواهید کرد:

  • مبالغ تراکنش‌ها در طول زمان
  • کل تراکنش‌های هر فروشنده
  • درصد تراکنش‌ها به ازای هر دسته

426dc59200875a20.png

صفحه را تنظیم کنید

  1. روی هر نمودار موجود کلیک کنید و برای حذف آنها، دکمه حذف را فشار دهید.
  2. گزینه Properties را در سمت راست صفحه انتخاب کنید تا بتوانید داده‌های نمودار را تغییر دهید.

نمودارها را اضافه کنید

مبالغ تراکنش‌ها در طول زمان

  1. روی افزودن نمودار کلیک کنید و یک نمودار سری زمانی ایجاد کنید.
  2. مقدار Dimension را روی transaction_date تنظیم کنید.
  1. معیار را روی sales_dollars تنظیم کنید.

372bdf2a2bcdb817.png

کل تراکنش‌های هر فروشنده

  1. روی «افزودن نمودار» کلیک کنید و یک جدول ایجاد کنید.
  2. ابعاد را روی merchant تنظیم کنید.
  3. متریک را روی sales_dollars تنظیم کنید

درصد تراکنش‌ها به ازای هر دسته

  1. روی «افزودن نمودار» کلیک کنید و یک نمودار دایره‌ای ایجاد کنید.
  2. ابعاد را روی category تنظیم کنید.
  3. متریک را روی sales_dollars تنظیم کنید

مشاهده تغییرات در لحظه

کمی وقت بگذارید و مقادیر موجود در نمودارها را بررسی کنید. می‌توانید روی بازرگانان خاص در جدول یا دسته‌های خاص در جدول کلیک کنید که باعث می‌شود تمام نمودارها بر اساس آن مقادیر خاص فیلتر شوند و بینش بیشتری به شما می‌دهد. در مرحله بعد، می‌توانید داده‌های بیشتری بنویسید و ببینید که چگونه این نمودار به صورت بلادرنگ به‌روزرسانی می‌شود.

  1. به پوسته ابری خود برگردید.
  2. مجموعه داده دوم را دانلود و بنویسید.
gsutil cp gs://cloud-bigtable-public-datasets/change-streams-tutorial/cc-transactions-2024-jan.csv .

cbt -instance=$BIGTABLE_INSTANCE_ID -project=$PROJECT_ID import \
retail-database cc-transactions-2024-jan.csv  column-family=transactions
  1. به داشبورد Looker خود برگردید و داده‌ها را با دستور Ctrl+Shift+E به‌روزرسانی کنید یا در منوی view روی Refresh data کلیک کنید. اکنون باید داده‌های ژانویه ۲۰۲۴ را در نمودارها مشاهده کنید.

فراتر از این، انواع مختلفی از نمودارها و معیارهایی وجود دارد که می‌توانید ایجاد کنید. برای اطلاعات بیشتر به مستندات Looker مراجعه کنید.

۹. تمیز کردن

برای جلوگیری از تحمیل هزینه به حساب گوگل کلود خود برای منابع استفاده شده در این آموزش، یا پروژه‌ای که شامل منابع است را حذف کنید، یا پروژه را نگه دارید و منابع تکی را حذف کنید.

خط لوله جریان تغییر را متوقف کنید

  1. در کنسول گوگل کلود، به صفحه Dataflow Jobs بروید.
  2. شغل استریمینگ خود را از لیست مشاغل انتخاب کنید.
  3. در نوار ناوبری، روی «توقف» کلیک کنید.
  4. در پنجره‌ی «توقف کار»، گزینه‌ی «لغو» را انتخاب کنید و سپس روی «توقف کار» کلیک کنید.

منابع Bigtable را حذف کنید

اگر برای این آموزش یک نمونه Bigtable ایجاد کرده‌اید، می‌توانید آن را حذف کنید، یا می‌توانید جدولی را که ایجاد کرده‌اید، مرتب کنید.

  1. در کنسول گوگل کلود، به صفحه Bigtable Instances بروید.
  2. روی شناسه نمونه‌ای که برای این آموزش استفاده می‌کنید کلیک کنید.
  3. در پنل ناوبری سمت چپ، روی جداول (Tables) کلیک کنید.
  4. جدول retail-database را پیدا کنید.
  5. روی ویرایش کلیک کنید.
  6. پاک کردن فعال کردن جریان تغییر .
  7. روی ذخیره کلیک کنید.
  8. منوی سرریز جدول را باز کنید.
  9. برای تأیید، روی حذف کلیک کنید و نام جدول را وارد کنید.
  10. اختیاری: اگر برای این آموزش نمونه جدیدی ایجاد کرده‌اید، آن را حذف کنید.

مجموعه داده BigQuery را حذف کنید

  1. در کنسول گوگل کلود، به صفحه BigQuery بروید.
  2. در پنل اکسپلورر ، مجموعه داده bigtable_bigquery_tutorial پیدا کرده و روی آن کلیک کنید.
  3. روی حذف کلیک کنید، عبارت delete را تایپ کنید و سپس برای تأیید، روی حذف کلیک کنید.

قدم بعدی چیست؟