برنامه نویسی

منابع داده قسمت 2: AWS S3 به Postgres Data Sync با استفاده از Singer

TLDR

AWS S3 یک گزینه پرکاربرد برای دریاچه داده است، بیایید ببینیم چگونه سینگر به مهندسان داده کمک می کند تا داده ها را از AWS S3 (منبع) با پایگاه داده Postgres (مقصد) همگام کنند.

طرح کلی

  • AWS S3 چیست؟
  • چرا از Singer برای همگام سازی داده ها از منابع داده های مختلف استفاده کنیم؟
  • فرآیند گام به گام برای همگام سازی داده ها از AWS S3 (منبع) با پایگاه داده Postgres (مقصد)
  • نتیجه

AWS S3 چیست؟

سرویس‌های وب آمازون (AWS) S3 یا سرویس ذخیره‌سازی ساده، یک سرویس ذخیره‌سازی شی مقیاس‌پذیر، بادوام و بسیار در دسترس است. (سیستم فایل) ارائه شده توسط خدمات وب آمازون. این برای ذخیره و بازیابی هر مقدار داده از هر نقطه در اینترنت طراحی شده است، و آن را به گزینه ای ایده آل برای موارد استفاده مختلف، از جمله پشتیبان گیری از داده ها، بایگانی، تجزیه و تحلیل داده های بزرگ، توزیع محتوا و موارد دیگر تبدیل می کند.

S3 یک رابط سرویس وب ساده ارائه می دهد که به کاربران امکان می دهد داده ها را با استفاده از تماس های API ذخیره و بازیابی کنند. این سرویس به صورت سازماندهی شده است “سطل” که در اصل محفظه هایی برای اشیا (فایل ها) هستند. این اشیاء با کلیدهای منحصر به فرد شناسایی می شوند و می توان آنها را با ابرداده، کنترل دسترسی و نسخه سازی مدیریت کرد.

ویژگی های کلیدی AWS S3 عبارتند از:

  • مقیاس پذیری: S3 می‌تواند حجم نامحدودی از داده‌ها را ذخیره کند و با افزایش نیازهای ذخیره‌سازی شما، به‌طور خودکار مقیاس می‌شود.
  • ماندگاری: دوام 99.999999999٪ را ارائه می دهد، به این معنی که خطر از دست دادن داده ها بسیار کم است.
  • دسترسی: S3 99.99% در دسترس بودن اشیا را در طول یک سال معین فراهم می کند.
  • امنیت: از ویژگی های امنیتی مختلف مانند رمزگذاری، کنترل دسترسی و ثبت نام پشتیبانی می کند.
  • مقرون به صرفه: با مدل قیمت گذاری پرداختی آن، شما فقط هزینه ذخیره سازی و انتقال داده مورد استفاده خود را پرداخت می کنید.


توضیحات تصویرمنبع: gfycat

چرا از Singer برای همگام سازی داده ها از منابع داده های مختلف استفاده کنیم؟

Singer یک چارچوب منبع باز برای جذب داده است که یک روش استاندارد برای انتقال داده ها بین منابع و مقصدهای مختلف داده ارائه می کند.مانند پایگاه های داده، API ها و انبارهای داده). سینگر یک رویکرد مدولار برای استخراج و بارگذاری داده ها با استفاده از دو مؤلفه اصلی ارائه می دهد: Taps (استخراج کننده های داده) و اهداف (لودرهای داده). این طراحی به چند دلیل آن را به گزینه ای جذاب برای جذب داده تبدیل می کند:

  • توسعه پذیری: کتابخانه رو به رشد Taps و Targets از پیش ساخته شده، توانایی توسعه اجزای سفارشی
  • انعطاف پذیری: شیرها و اهداف را برای خطوط لوله داده سفارشی شده مخلوط و مطابقت دهید
  • استاندارد سازی: فرمت مبتنی بر JSON را برای ارتباط ثابت بین اجزاء اعمال می کند
  • راحتی در استفاده: راه اندازی و پیکربندی ساده با فایل های پیکربندی
  • جامعه محور: مزایای مشارکت و بهبود توسط یک جامعه بزرگ
  • غیر وابسته به زبان: از ایجاد Taps و Target در زبان های برنامه نویسی مختلف پشتیبانی می کند


توضیحات تصویرمنبع: Giphy

فرآیند گام به گام برای همگام سازی داده ها از AWS S3 (منبع) با پایگاه داده Postgres (مقصد)

برای همگام سازی داده ها از AWS S3 با سیستم های پایین دستی با استفاده از Singer، باید از Singer Tap برای AWS S3 و Singer Target برای سیستم پایین دستی خاص خود استفاده کنید. در اینجا یک راهنمای گام به گام در مورد نحوه راه اندازی خط لوله داده با استفاده از Singer آورده شده است:

1. Singer را نصب کنید:
ابتدا باید Singer را نصب کنید. توصیه می شود از یک محیط مجازی برای پروژه پایتون خود استفاده کنید. می توانید Singer را با استفاده از pip نصب کنید:

pip install singer-python
وارد حالت تمام صفحه شوید

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

2. یک ضربه برای AWS S3 انتخاب کنید:
در زمان نگارش این مقاله، Singer Tap رسمی برای AWS S3 وجود ندارد. با این حال، برخی از شیرهای کمکی توسط جامعه وجود دارند که ممکن است برای موارد استفاده شما کار کنند. یک مثال این است “روی-s3-csv ضربه بزنید” که فایل های CSV را از S3 می خواند:

pip install tap-s3-csv
وارد حالت تمام صفحه شوید

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

برای سایر قالب‌های فایل یا Taps سفارشی، می‌توانید انجمن خواننده را جستجو کنید یا Tap خود را ایجاد کنید.

3. یک هدف خواننده را انتخاب کنید:
یک هدف خواننده مناسب برای سیستم پایین دست خود انتخاب کنید. به عنوان مثال، اگر می خواهید داده ها را با پایگاه داده PostgreSQL همگام سازی کنید، می توانید از “target-postgres” استفاده کنید:

pip install target-postgres
وارد حالت تمام صفحه شوید

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

4. Tap را پیکربندی کنید:
یک فایل پیکربندی برای Tap ایجاد کنید (مثلا tap_config.json). این فایل باید حاوی AWS S3 و جزئیات فایل منبع باشد:

{
  "aws_access_key_id": "your_aws_access_key_id",
  "aws_secret_access_key": "your_aws_secret_access_key",
  "bucket": "your_s3_bucket_name",
  "start_date": "2023-01-01T00:00:00Z",
  "file_format": "csv"
}
وارد حالت تمام صفحه شوید

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

مکان‌ها را با اعتبار AWS واقعی، نام سطل و سایر جزئیات جایگزین کنید.

5. هدف را پیکربندی کنید:
یک فایل پیکربندی برای Target ایجاد کنید (مثلا target_config.json). این فایل باید شامل جزئیات اتصال سیستم پایین دست شما باشد. به عنوان مثال، برای target-postgres، به نظر می رسد:

{
  "postgres_host": "your_postgres_host",
  "postgres_port": 5432,
  "postgres_database": "your_postgres_database",
  "postgres_username": "your_postgres_username",
  "postgres_password": "your_postgres_password",
  "postgres_schema": "your_postgres_schema"
}
وارد حالت تمام صفحه شوید

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

مکان‌ها را با جزئیات واقعی اتصال PostgreSQL خود جایگزین کنید.

6. Tap and Target را اجرا کنید:
در نهایت، Tap و Target را با هم در ترمینال خود اجرا کنید و ورودی و خروجی آنها را با استفاده از یک لوله وصل کنید:

    tap-s3-csv -c tap_config.json | target-postgres -c target_config.json
وارد حالت تمام صفحه شوید

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

این دستور S3 Tap را با پیکربندی ارائه شده اجرا می کند، داده ها را از سطل S3 مشخص شده می خواند و به PostgreSQL Target ارسال می کند که داده ها را در پایگاه داده مشخص شده بارگذاری می کند.

به یاد داشته باشید که پیکربندی دقیق و دستورات اجرا ممکن است بسته به Tap و Target خاصی که انتخاب می کنید متفاوت باشد. برای دستورالعمل های دقیق و گزینه های موجود، همیشه به مستندات اجزای انتخاب شده مراجعه کنید.


توضیحات تصویرمنبع: Giphy

نتیجه

در نتیجه، استفاده از Singer برای دریافت داده‌ها از AWS S3 به PostgreSQL یک راه‌حل انعطاف‌پذیر، قابل توسعه و پیاده‌سازی آسان برای ایجاد خط لوله داده ارائه می‌دهد. با ترکیب یک S3 Tap مناسب با یک هدف PostgreSQL و پیکربندی آنها با فایل های JSON، کاربران می توانند به طور موثر داده ها را بین این سیستم ها انتقال و همگام سازی کنند. این رویکرد از اکوسیستم رو به رشد Taps و Targets Singer سود می‌برد و آن را به یک انتخاب مؤثر برای رسیدگی به نیازهای مختلف دریافت داده تبدیل می‌کند.

در قسمت 3 از مجموعه منابع داده، نحوه استفاده از Mage را برای جذب داده ها خواهیم دید.

پیوند به وبلاگ اصلی: https://www.mage.ai/blog/data-sources-ep-2-aws-s3-to-postgres-data-sync-using-singer

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

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

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

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