برنامه نویسی

نحوه ادغام چندین پایگاه داده PostgreSQL در یک پایگاه داده با استفاده از Debezium، Kafka و Power BI برای تجزیه و تحلیل

Summarize this content to 400 words in Persian Lang
در دنیای داده محور امروزی، سازمان ها اغلب پایگاه های داده PostgreSQL متعددی را برای برنامه های کاربردی یا واحدهای تجاری مختلف اجرا می کنند. با این حال، ادغام داده‌ها از این پایگاه‌های اطلاعاتی متعدد در یک پایگاه داده واحد برای تجزیه و تحلیل و گزارش‌دهی، برای بینش‌های جامع، به ویژه هنگام استفاده از ابزارهایی مانند Power BI، بسیار مهم است. یکی از راه‌های کارآمد برای دستیابی به این یکپارچگی، استفاده از Debezium و Kafka برای انتقال داده‌ها از پایگاه‌های داده مختلف به یک پایگاه داده تلفیقی PostgreSQL است که می‌تواند برای گزارش‌های تحلیلی استفاده شود.

مروری بر معماری راه حل

1. منبع پایگاه های داده PostgreSQL: چندین پایگاه داده PostgreSQL وجود دارد که حاوی داده های عملیاتی است.2. دبزیوم: ابزاری که تغییرات بلادرنگ را از پایگاه های داده PostgreSQL ثبت می کند و داده ها را به عنوان رویداد ارسال می کند.3. کافکا: یک پلتفرم پخش رویداد توزیع شده که رویدادهای تغییر را از پایگاه داده های منبع PostgreSQL به یک پایگاه داده هدف منتقل می کند.4. پایگاه داده PostgreSQL را هدف بگیرید: یک پایگاه داده تلفیقی که در آن داده ها از چندین منبع ذخیره می شوند.5. Power BI: برای تجزیه و تحلیل و تجسم داده ها از پایگاه داده تلفیقی استفاده می شود.

مراحل یکپارچه سازی پایگاه های داده PostgreSQL

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

کافکا را نصب کنید: کافکا را دانلود و بر روی سرور خود نصب کنید. برای تنظیم انعطاف پذیرتر، استفاده از کافکا را در حالت توزیع شده در نظر بگیرید.

ایجاد موضوعات: موضوعات کافکا را برای هر جدول از پایگاه داده های منبع PostgreSQL خود ایجاد کنید. موضوعات کافکا تغییرات بلادرنگ هر پایگاه داده را در خود نگه می دارد. به عنوان مثال:

{kafka-topics.sh –create –topic db1_orders –bootstrap-server http://kafka-service:9092 –partitions 3 –replication-factor 1kafka-topics.sh –ایجاد –topic db2_customers –bootstrap-server http://kafka-service:9092 –partitions 3 –replication-factor 1}

مرحله 2: Debezium را برای Change Data Capture پیکربندی کنید

Debezium یک ابزار منبع باز قدرتمند است که از CDC برای انواع پایگاه های داده از جمله PostgreSQL پشتیبانی می کند. تغییرات پایگاه داده را در زمان واقعی با خواندن گزارش های تراکنش (ورودهای WAL در PostgreSQL) دنبال می کند و تغییرات کافکا را منتشر می کند.

1. Debezium را نصب کنید: Debezium را به عنوان یک اتصال دهنده کافکا با استفاده از Kafka Connect اجرا کنید. اگر قبلاً راه‌اندازی Kafka Connect ندارید، می‌توانید از تنظیم حالت توزیع‌شده استفاده کنید که مقیاس بهتری برای تولید دارد.

_curl -X POST -H “Content-Type: application/json” –data ‘{
“name”: “debezium-postgres-connector”,
“config”: {
“connector.class”: “io.debezium.connector.postgresql.PostgresConnector”,
“tasks.max”: “1”,
“database.hostname”: “db1_host”,
“database.port”: “5432”,
“database.user”: “db_user”,
“database.password”: “db_pass”,
“database.dbname”: “source_db1”,
“database.server.name”: “db1”,
“plugin.name”: “pgoutput”,
“database.whitelist”: “db1”,
“table.whitelist”: “public.orders”,
“slot.name”: “debezium_slot”,
“publication.autocreate.mode”: “filtered”
}
}’ http://localhost:8083/connectors
_

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

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

2. جریان داده Debezium: دبیزیوم تغییرات را ثبت می کند و آنها را در موضوعات کافکا منتشر می کند. هر تغییر جدول (درج، به روز رسانی، حذف) در موضوع کافکا مربوطه ثبت می شود.

مرحله 3: مصرف کنندگان کافکا و اتصالات سینکاکنون که کافکا رویدادهای داده‌های تغییر را دریافت می‌کند، باید این رویدادها را به پایگاه داده PostgreSQL هدف ارسال کنید تا در آنجا ادغام شوند.

1. کانکتور PostgreSQL Kafka Sink را نصب کنید: این رابط به شما امکان می دهد داده ها را از موضوعات کافکا در پایگاه داده PostgreSQL بنویسید.

curl -X POST -H “Content-Type: application/json” –data ‘{
“name”: “sink-postgres-connector”,
“config”: {
“connector.class”: “io.confluent.connect.jdbc.JdbcSinkConnector”,
“tasks.max”: “1”,
“connection.url”: “jdbc:postgresql://target_host:5432/target_db”,
“connection.user”: “db_user”,
“connection.password”: “db_pass”,
“auto.create”: “true”,
“topics”: “db1_orders, db2_customers”,
“insert.mode”: “upsert”,
“pk.mode”: “record_key”,
“pk.fields”: “id”
}
}’ http://localhost:8083/connectors

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

2. منطق Upsert: کانکتور سینک را برای انجام عملیات upsert پیکربندی کنید (در صورت عدم وجود رکورد، INSERT، در صورت وجود UPDATE) که تضمین می کند آخرین وضعیت داده ها همیشه در پایگاه داده PostgreSQL هدف منعکس می شود.

3. ادغام داده ها: رابط سینک داده ها را در جداول پایگاه داده هدف می نویسد. می توانید انتخاب کنید که داده ها را از چندین جدول در یک جدول ادغام کنید یا جداول را بر اساس نیازهای گزارش خود جدا نگه دارید.

مرحله 4: تبدیل و غنی سازی داده هادر برخی موارد، جریان داده از پایگاه‌های داده چند منبع ممکن است نیاز به تغییر شکل (به عنوان مثال، تراز طرح، تغییر نام فیلد) قبل از نوشتن در پایگاه داده هدف داشته باشد. کافکا ابزارهایی مانند Kafka Streams یا ksqlDB را برای تبدیل داده ها در زمان واقعی فراهم می کند.

Kafka Streams: از Kafka Streams برای پردازش و تبدیل داده ها قبل از فشار دادن به پایگاه داده هدف استفاده کنید.
ksqlDB: به شما امکان می دهد پرس و جوهای SQL مانند را در جریان های کافکا اجرا کنید تا تبدیل ها و تجمیع ها را انجام دهید.

مرحله 5: تجزیه و تحلیل با Power BIهنگامی که داده‌های شما در پایگاه داده PostgreSQL هدف ادغام شدند، می‌توانید Power BI را برای تجزیه و تحلیل و گزارش‌دهی بلادرنگ به این پایگاه داده متصل کنید.

اتصال Power BI به PostgreSQL: از کانکتور اصلی PostgreSQL در Power BI برای وارد کردن و تجسم داده ها استفاده کنید.
ساخت داشبورد: داشبوردها و گزارش های تعاملی را بر اساس داده های تلفیقی ایجاد کنید. شما می توانید تجسم هایی مانند تجزیه و تحلیل روند، پیش بینی، تقسیم بندی مشتری و غیره ایجاد کنید.

مرحله 6: نظارت و نگهداری

نظارت بر Kafka و Debezium: به طور منظم کلاستر Kafka و اتصالات Debezium خود را برای عملکرد و تنگناهای احتمالی زیر نظر بگیرید.
تکامل طرحواره: Debezium تغییرات طرحواره را کنترل می کند (به عنوان مثال، افزودن فیلدهای جدید به جداول)، اما باید اطمینان حاصل کنید که تکامل طرحواره توسط هر دو اتصال دهنده کافکا و پایگاه داده هدف پشتیبانی می شود.

با استفاده از Debezium برای ضبط داده های تغییر، کافکا برای جریان رویداد، و پایگاه داده تلفیقی PostgreSQL برای ذخیره سازی، می توانید یک سیستم قوی برای جمع آوری داده ها از چندین پایگاه داده PostgreSQL ایجاد کنید. این تنظیم، تجزیه و تحلیل بلادرنگ را با استفاده از Power BI فعال می‌کند و در عین حال اطمینان می‌دهد که داده‌ها در بین سیستم‌ها همگام می‌مانند.

در دنیای داده محور امروزی، سازمان ها اغلب پایگاه های داده PostgreSQL متعددی را برای برنامه های کاربردی یا واحدهای تجاری مختلف اجرا می کنند. با این حال، ادغام داده‌ها از این پایگاه‌های اطلاعاتی متعدد در یک پایگاه داده واحد برای تجزیه و تحلیل و گزارش‌دهی، برای بینش‌های جامع، به ویژه هنگام استفاده از ابزارهایی مانند Power BI، بسیار مهم است. یکی از راه‌های کارآمد برای دستیابی به این یکپارچگی، استفاده از Debezium و Kafka برای انتقال داده‌ها از پایگاه‌های داده مختلف به یک پایگاه داده تلفیقی PostgreSQL است که می‌تواند برای گزارش‌های تحلیلی استفاده شود.

مروری بر معماری راه حل

1. منبع پایگاه های داده PostgreSQL: چندین پایگاه داده PostgreSQL وجود دارد که حاوی داده های عملیاتی است.
2. دبزیوم: ابزاری که تغییرات بلادرنگ را از پایگاه های داده PostgreSQL ثبت می کند و داده ها را به عنوان رویداد ارسال می کند.
3. کافکا: یک پلتفرم پخش رویداد توزیع شده که رویدادهای تغییر را از پایگاه داده های منبع PostgreSQL به یک پایگاه داده هدف منتقل می کند.
4. پایگاه داده PostgreSQL را هدف بگیرید: یک پایگاه داده تلفیقی که در آن داده ها از چندین منبع ذخیره می شوند.
5. Power BI: برای تجزیه و تحلیل و تجسم داده ها از پایگاه داده تلفیقی استفاده می شود.

مراحل یکپارچه سازی پایگاه های داده PostgreSQL

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

کافکا را نصب کنید: کافکا را دانلود و بر روی سرور خود نصب کنید. برای تنظیم انعطاف پذیرتر، استفاده از کافکا را در حالت توزیع شده در نظر بگیرید.

ایجاد موضوعات: موضوعات کافکا را برای هر جدول از پایگاه داده های منبع PostgreSQL خود ایجاد کنید. موضوعات کافکا تغییرات بلادرنگ هر پایگاه داده را در خود نگه می دارد. به عنوان مثال:

{kafka-topics.sh –create –topic db1_orders –bootstrap-server http://kafka-service:9092 –partitions 3 –replication-factor 1
kafka-topics.sh –ایجاد –topic db2_customers –bootstrap-server http://kafka-service:9092 –partitions 3 –replication-factor 1
}

مرحله 2: Debezium را برای Change Data Capture پیکربندی کنید

Debezium یک ابزار منبع باز قدرتمند است که از CDC برای انواع پایگاه های داده از جمله PostgreSQL پشتیبانی می کند. تغییرات پایگاه داده را در زمان واقعی با خواندن گزارش های تراکنش (ورودهای WAL در PostgreSQL) دنبال می کند و تغییرات کافکا را منتشر می کند.

1. Debezium را نصب کنید: Debezium را به عنوان یک اتصال دهنده کافکا با استفاده از Kafka Connect اجرا کنید. اگر قبلاً راه‌اندازی Kafka Connect ندارید، می‌توانید از تنظیم حالت توزیع‌شده استفاده کنید که مقیاس بهتری برای تولید دارد.

_curl -X POST -H "Content-Type: application/json" --data '{
  "name": "debezium-postgres-connector",
  "config": {
    "connector.class": "io.debezium.connector.postgresql.PostgresConnector",
    "tasks.max": "1",
    "database.hostname": "db1_host",
    "database.port": "5432",
    "database.user": "db_user",
    "database.password": "db_pass",
    "database.dbname": "source_db1",
    "database.server.name": "db1",
    "plugin.name": "pgoutput",
    "database.whitelist": "db1",
    "table.whitelist": "public.orders",
    "slot.name": "debezium_slot",
    "publication.autocreate.mode": "filtered"
  }
}' http://localhost:8083/connectors
_
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

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

2. جریان داده Debezium: دبیزیوم تغییرات را ثبت می کند و آنها را در موضوعات کافکا منتشر می کند. هر تغییر جدول (درج، به روز رسانی، حذف) در موضوع کافکا مربوطه ثبت می شود.

مرحله 3: مصرف کنندگان کافکا و اتصالات سینک
اکنون که کافکا رویدادهای داده‌های تغییر را دریافت می‌کند، باید این رویدادها را به پایگاه داده PostgreSQL هدف ارسال کنید تا در آنجا ادغام شوند.

1. کانکتور PostgreSQL Kafka Sink را نصب کنید: این رابط به شما امکان می دهد داده ها را از موضوعات کافکا در پایگاه داده PostgreSQL بنویسید.

curl -X POST -H "Content-Type: application/json" --data '{
  "name": "sink-postgres-connector",
  "config": {
    "connector.class": "io.confluent.connect.jdbc.JdbcSinkConnector",
    "tasks.max": "1",
    "connection.url": "jdbc:postgresql://target_host:5432/target_db",
    "connection.user": "db_user",
    "connection.password": "db_pass",
    "auto.create": "true",
    "topics": "db1_orders, db2_customers",
    "insert.mode": "upsert",
    "pk.mode": "record_key",
    "pk.fields": "id"
  }
}' http://localhost:8083/connectors

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

2. منطق Upsert: کانکتور سینک را برای انجام عملیات upsert پیکربندی کنید (در صورت عدم وجود رکورد، INSERT، در صورت وجود UPDATE) که تضمین می کند آخرین وضعیت داده ها همیشه در پایگاه داده PostgreSQL هدف منعکس می شود.

3. ادغام داده ها: رابط سینک داده ها را در جداول پایگاه داده هدف می نویسد. می توانید انتخاب کنید که داده ها را از چندین جدول در یک جدول ادغام کنید یا جداول را بر اساس نیازهای گزارش خود جدا نگه دارید.

مرحله 4: تبدیل و غنی سازی داده ها
در برخی موارد، جریان داده از پایگاه‌های داده چند منبع ممکن است نیاز به تغییر شکل (به عنوان مثال، تراز طرح، تغییر نام فیلد) قبل از نوشتن در پایگاه داده هدف داشته باشد. کافکا ابزارهایی مانند Kafka Streams یا ksqlDB را برای تبدیل داده ها در زمان واقعی فراهم می کند.

  1. Kafka Streams: از Kafka Streams برای پردازش و تبدیل داده ها قبل از فشار دادن به پایگاه داده هدف استفاده کنید.
  2. ksqlDB: به شما امکان می دهد پرس و جوهای SQL مانند را در جریان های کافکا اجرا کنید تا تبدیل ها و تجمیع ها را انجام دهید.

مرحله 5: تجزیه و تحلیل با Power BI
هنگامی که داده‌های شما در پایگاه داده PostgreSQL هدف ادغام شدند، می‌توانید Power BI را برای تجزیه و تحلیل و گزارش‌دهی بلادرنگ به این پایگاه داده متصل کنید.

  1. اتصال Power BI به PostgreSQL: از کانکتور اصلی PostgreSQL در Power BI برای وارد کردن و تجسم داده ها استفاده کنید.
  2. ساخت داشبورد: داشبوردها و گزارش های تعاملی را بر اساس داده های تلفیقی ایجاد کنید. شما می توانید تجسم هایی مانند تجزیه و تحلیل روند، پیش بینی، تقسیم بندی مشتری و غیره ایجاد کنید.

مرحله 6: نظارت و نگهداری

  1. نظارت بر Kafka و Debezium: به طور منظم کلاستر Kafka و اتصالات Debezium خود را برای عملکرد و تنگناهای احتمالی زیر نظر بگیرید.
  2. تکامل طرحواره: Debezium تغییرات طرحواره را کنترل می کند (به عنوان مثال، افزودن فیلدهای جدید به جداول)، اما باید اطمینان حاصل کنید که تکامل طرحواره توسط هر دو اتصال دهنده کافکا و پایگاه داده هدف پشتیبانی می شود.

با استفاده از Debezium برای ضبط داده های تغییر، کافکا برای جریان رویداد، و پایگاه داده تلفیقی PostgreSQL برای ذخیره سازی، می توانید یک سیستم قوی برای جمع آوری داده ها از چندین پایگاه داده PostgreSQL ایجاد کنید. این تنظیم، تجزیه و تحلیل بلادرنگ را با استفاده از Power BI فعال می‌کند و در عین حال اطمینان می‌دهد که داده‌ها در بین سیستم‌ها همگام می‌مانند.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا