ده تغییر بصری جدید در AWS Glue Studio

ده تغییر بصری جدید در AWS Glue Studio

گره منبع: 2641422

AWS Glue Studio یک رابط گرافیکی است که ایجاد، اجرا، و نظارت بر استخراج، تبدیل و بارگذاری (ETL) کارها را آسان می کند. چسب AWS. این به شما اجازه می دهد تا به صورت بصری جریان های کاری تبدیل داده را با استفاده از گره هایی که مراحل مختلف مدیریت داده را نشان می دهند، بسازید، که بعداً به طور خودکار به کد برای اجرا تبدیل می شوند.

AWS Glue Studio به تازگی منتشر شده 10 تغییر بصری دیگر برای ایجاد مشاغل پیشرفته تر به روش بصری بدون مهارت های کدنویسی. در این پست، موارد استفاده بالقوه را که نشان دهنده نیازهای رایج ETL است، مورد بحث قرار می دهیم.

تبدیل‌های جدیدی که در این پست نشان داده می‌شوند عبارتند از: Concatenate، Split String، Array To Columns، Add Current Stamp، Pivot Rows To Columns، Unpivot Columns to Rows، Lookup، Explode Array or Map Into Columns، ستون مشتق شده و پردازش تعادل خودکار .

بررسی اجمالی راه حل

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

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

داده های ورودی

داده ها از طرح زیر پیروی می کنند:

  • شماره سفارش - شناسه منحصر به فرد
  • نماد - کدی که عموماً بر اساس چند حرف برای شناسایی شرکتی که سهام اصلی را منتشر می کند.
  • سند - نامی که مشخص کننده گزینه خرید یا فروش خاص است
  • پول – کد ارز ISO که قیمت در آن بیان می شود
  • قیمت - مبلغی که برای خرید هر قرارداد اختیار معامله پرداخت شده است (در اکثر بورس ها، یک قرارداد به شما امکان خرید یا فروش 100 سهم را می دهد)
  • تبادل – کد مرکز مبادلات یا محل معامله که گزینه معامله شده است
  • فروخته شده - فهرستی از تعداد قراردادهایی که برای تکمیل سفارش فروش تخصیص داده شده است، زمانی که این معامله فروش است
  • خریداری شده – فهرستی از تعداد قراردادهایی که برای تکمیل سفارش خرید در زمانی که این معامله خرید اختصاص داده شده است

نمونه زیر نمونه ای از داده های مصنوعی تولید شده برای این پست است:

{"order_id": 1679931512485, "symbol": "AMZN", "instrument": "AMZN MAR 24 23 102 PUT", "currency": "usd", "price": 17.18, "exchange": "EDGX", "bought": [18, 38]}
{"order_id": 1679931512486, "symbol": "BMW.DE", "instrument": "BMW.DE MAR 24 23 96 PUT", "currency": "eur", "price": 2.98, "exchange": "XETR", "bought": [28]}
{"order_id": 1679931512487, "symbol": "BMW.DE", "instrument": "BMW.DE APR 28 23 101 CALL", "currency": "eur", "price": 14.71, "exchange": "XETR", "sold": [9, 59, 54]}
{"order_id": 1679931512489, "symbol": "JPM", "instrument": "JPM JUN 30 23 140 CALL", "currency": "usd", "price": 11.83, "exchange": "EDGX", "bought": [33, 42, 55, 67]}
{"order_id": 1679931512490, "symbol": "SIE.DE", "instrument": "SIE.DE MAR 24 23 149 CALL", "currency": "eur", "price": 13.68, "exchange": "XETR", "bought": [96, 89, 82]}
{"order_id": 1679931512491, "symbol": "NKE", "instrument": "NKE MAR 24 23 112 CALL", "currency": "usd", "price": 3.23, "exchange": "EDGX", "sold": [67]}
{"order_id": 1679931512492, "symbol": "AMZN", "instrument": "AMZN MAY 26 23 95 CALL", "currency": "usd", "price": 11.44, "exchange": "EDGX", "sold": [41, 62, 12]}
{"order_id": 1679931512493, "symbol": "JPM", "instrument": "JPM MAR 24 23 121 PUT", "currency": "usd", "price": 1.0, "exchange": "EDGX", "bought": [61, 34]}
{"order_id": 1679931512494, "symbol": "SAP.DE", "instrument": "SAP.DE MAR 24 23 132 CALL", "currency": "eur", "price": 15.9, "exchange": "XETR", "bought": [69, 33]}

الزامات ETL

این داده ها دارای تعدادی ویژگی منحصر به فرد هستند که اغلب در سیستم های قدیمی یافت می شوند که استفاده از داده ها را سخت تر می کند.

موارد زیر الزامات ETL هستند:

  • نام ابزار دارای اطلاعات ارزشمندی است که برای درک انسان در نظر گرفته شده است. ما می خواهیم آن را در ستون های جداگانه برای تجزیه و تحلیل آسان تر نرمال کنیم.
  • صفات bought و sold متقابل منحصر به فرد هستند. می‌توانیم آنها را در یک ستون با شماره‌های قرارداد ادغام کنیم و ستون دیگری داشته باشیم که نشان می‌دهد آیا قراردادها به این ترتیب خریداری یا فروخته شده‌اند.
  • ما می‌خواهیم اطلاعات مربوط به تخصیص قراردادهای فردی را حفظ کنیم اما به‌عنوان ردیف‌های جداگانه به جای اینکه کاربران را مجبور کنیم با مجموعه‌ای از اعداد سروکار داشته باشند. می‌توانیم اعداد را جمع کنیم، اما اطلاعات مربوط به نحوه تکمیل سفارش را از دست می‌دهیم (نشان دهنده نقدینگی بازار). در عوض، ما جدول را غیرعادی می کنیم تا هر سطر دارای یک تعداد قرارداد باشد و سفارشات با چندین شماره را به ردیف های جداگانه تقسیم کنیم. در یک قالب ستونی فشرده، اندازه مجموعه داده اضافی این تکرار اغلب زمانی که فشرده سازی اعمال می شود کوچک است، بنابراین قابل قبول است که پرس و جو از مجموعه داده آسان تر شود.
  • ما می خواهیم یک جدول خلاصه از حجم برای هر نوع گزینه (تماس و قرار دادن) برای هر سهام ایجاد کنیم. این نشانه ای از احساسات بازار برای هر سهم و بازار به طور کلی (طمع در مقابل ترس) ارائه می دهد.
  • برای فعال کردن خلاصه‌های کلی تجارت، می‌خواهیم کل کل را برای هر عملیات ارائه کنیم و با استفاده از یک مرجع تبدیل تقریبی، ارز را به دلار آمریکا استاندارد کنیم.
  • ما می‌خواهیم تاریخی را اضافه کنیم که این تحولات رخ داده است. این می‌تواند مفید باشد، برای مثال، برای ارجاع به زمان تبدیل ارز.

بر اساس آن الزامات، کار دو خروجی تولید می کند:

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

پیش نیازها

برای دنبال کردن این مورد، به سطل S3 خود نیاز دارید. برای ایجاد یک سطل جدید مراجعه کنید ایجاد یک سطل.

داده های مصنوعی تولید کنید

برای دنبال کردن این پست (یا آزمایش این نوع داده ها به تنهایی)، می توانید این مجموعه داده را به صورت مصنوعی تولید کنید. اسکریپت پایتون زیر را می توان در محیط پایتون با نصب Boto3 و دسترسی به آن اجرا کرد سرویس ذخیره سازی ساده آمازون (Amazon S3).

برای تولید داده ها مراحل زیر را انجام دهید:

  1. در AWS Glue Studio، یک کار جدید با این گزینه ایجاد کنید ویرایشگر اسکریپت پوسته پایتون.
  2. به کار یک نام و بر روی جزئیات شغل برگه، a را انتخاب کنید نقش مناسب و نامی برای اسکریپت پایتون.
  3. در جزئیات شغل بخش، گسترش خواص پیشرفته و رفتن به پایین پارامترهای شغلی.
  4. پارامتری به نام وارد کنید --bucket و نام سطلی را که می خواهید برای ذخیره داده های نمونه استفاده کنید به عنوان مقدار اختصاص دهید.
  5. اسکریپت زیر را در ویرایشگر پوسته AWS Glue وارد کنید:
    import argparse
    import boto3
    from datetime import datetime
    import io
    import json
    import random
    import sys # Configuration
    parser = argparse.ArgumentParser()
    parser.add_argument('--bucket')
    args, ignore = parser.parse_known_args()
    if not args.bucket: raise Exception("This script requires an argument --bucket with the value specifying the S3 bucket where to store the files generated") data_bucket = args.bucket
    data_path = "transformsblog/inputdata"
    samples_per_file = 1000 # Create a single file with synthetic data samples
    s3 = boto3.client('s3')
    buff = io.BytesIO() sample_stocks = [("AMZN", 95, "usd"), ("NKE", 120, "usd"), ("JPM", 130, "usd"), ("KO", 130, "usd"), ("BMW.DE", 95, "eur"), ("SIE.DE", 140, "eur"), ("SAP.DE", 115, "eur")]
    option_type = ["PUT", "CALL"]
    operations = ["sold", "bought"]
    dates = ["MAR 24 23", "APR 28 23", "MAY 26 23", "JUN 30 23"]
    for i in range(samples_per_file): stock = random.choice(sample_stocks) symbol = stock[0] ref_price = stock[1] currency = stock[2] strike_price = round(ref_price * 0.9 + ref_price * random.uniform(0.01, 0.3)) sample = { "order_id": int(datetime.now().timestamp() * 1000) + i, "symbol": stock[0], "instrument":f"{symbol} {random.choice(dates)} {strike_price} {random.choice(option_type)}", "currency": currency, "price": round(random.uniform(0.5, 20.1), 2), "exchange": "EDGX" if currency == "usd" else "XETR" } sample[random.choice(operations)] = [random.randrange(1,100) for i in range(random.randrange(1,5))] buff.write(json.dumps(sample).encode()) buff.write("n".encode()) s3.put_object(Body=buff.getvalue(), Bucket=data_bucket, Key=f"{data_path}/{int(datetime.now().timestamp())}.json")

  6. کار را اجرا کنید و منتظر بمانید تا در تب Runs با موفقیت کامل شده باشد (فقط چند ثانیه طول بکشد).

هر اجرا یک فایل JSON با 1,000 ردیف در زیر سطل و پیشوند مشخص شده تولید می کند. transformsblog/inputdata/. اگر می‌خواهید با فایل‌های ورودی بیشتری آزمایش کنید، می‌توانید کار را چندین بار اجرا کنید.
هر خط در داده های مصنوعی یک ردیف داده است که یک شی JSON مانند زیر را نشان می دهد:

{ "order_id":1681986991888, "symbol":"AMZN", "instrument":"AMZN APR 28 23 100 PUT", "currency":"usd", "price":2.89, "exchange":"EDGX", "sold":[88,49]
}

کار تصویری AWS Glue را ایجاد کنید

برای ایجاد کار تصویری AWS Glue، مراحل زیر را انجام دهید:

  1. به AWS Glue Studio بروید و با استفاده از این گزینه یک کار ایجاد کنید تصویری با بوم خالی.
  2. ویرایش Untitled job نام گذاری و اختصاص دادن به آن نقشی مناسب برای چسب AWS در جزئیات شغل تب.
  3. یک منبع داده S3 اضافه کنید (می توانید آن را نام ببرید JSON files source) و URL S3 را که فایل ها در آن ذخیره می شوند وارد کنید (به عنوان مثال، s3://<your bucket name>/transformsblog/inputdata/)، سپس انتخاب کنید JSON به عنوان فرمت داده
  4. انتخاب کنید استنباط طرحواره بنابراین طرح واره خروجی را بر اساس داده ها تنظیم می کند.

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

اگر والد مناسبی را انتخاب نکرده‌اید، همیشه می‌توانید با انتخاب آن و انتخاب والد دیگری در صفحه پیکربندی، آن را ویرایش کنید.

پیکربندی والد گره

برای هر گره اضافه شده، یک نام خاص به آن می دهید (بنابراین هدف گره در نمودار نشان داده می شود) و پیکربندی روی گره دگرگون کردن تب.

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

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

استخراج اطلاعات ابزار

بیایید با پرداختن به اطلاعات روی نام ابزار شروع کنیم تا آن را به ستون هایی تبدیل کنیم که دسترسی آسان تر در جدول خروجی به دست آمده است.

  1. اضافه کردن رشته را تقسیم کنید گره و نام گذاری کنید Split instrument، که ستون ابزار را با استفاده از یک regex فضای خالی نشانه گذاری می کند: s+ (یک فضای واحد در این مورد انجام می دهد، اما این راه انعطاف پذیرتر و از نظر بصری واضح تر است).
  2. ما می خواهیم اطلاعات ابزار اصلی را همانطور که هست نگه داریم، بنابراین یک نام ستون جدید برای آرایه تقسیم شده وارد کنید: instrument_arr.
    پیکربندی تقسیم
  3. اضافه کردن آرایه به ستون گره و نام گذاری کنید Instrument columns برای تبدیل ستون آرایه ایجاد شده به فیلدهای جدید، به جز برای symbol، که قبلاً یک ستون برای آن داریم.
  4. ستون را انتخاب کنید instrument_arr، اولین نشانه را رد کنید و به آن بگویید که ستون های خروجی را استخراج کند month, day, year, strike_price, type با استفاده از شاخص ها 2, 3, 4, 5, 6 (فضاهای بعد از کاما برای خوانایی هستند، روی پیکربندی تأثیری ندارند).
    پیکربندی آرایه

سال استخراج شده تنها با دو رقم بیان می شود. اگر فقط از دو رقم استفاده می کنند، اجازه دهید یک نقطه توقف ایجاد کنیم تا فرض کنیم در این قرن است.

  1. اضافه کردن ستون مشتق شده گره و نام گذاری کنید Four digits year.
  2. وارد year به عنوان ستون مشتق شده، آن را باطل می کند، و عبارت SQL زیر را وارد کنید:
    CASE WHEN length(year) = 2 THEN ('20' || year) ELSE year END
    پیکربندی ستون برگرفته از سال

برای راحتی، ما یک expiration_date فیلدی که کاربر می تواند به عنوان مرجع آخرین تاریخ داشته باشد، این گزینه می تواند اعمال شود.

  1. اضافه کردن به هم پیوستن ستون ها گره و نام گذاری کنید Build expiration date.
  2. ستون جدید را نامگذاری کنید expiration_date، ستون ها را انتخاب کنید year, monthو day (به ترتیب)، و خط فاصله به عنوان فاصله.
    پیکربندی تاریخ پیوسته

نمودار تا اینجا باید مانند مثال زیر باشد.

DAG

پیش نمایش داده های ستون های جدید تا کنون باید مانند تصویر زیر باشد.

پیش نمایش داده ها

تعداد قراردادها را عادی کنید

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

ابتدا، بیایید مقادیر را در یک ستون ادغام کنیم.

  1. اضافه کردن ستون ها را به ردیف باز کنید گره و نام گذاری کنید Unpivot actions.
  2. ستون ها را انتخاب کنید bought و sold برای برداشتن و ذخیره نام ها و مقادیر در ستون های نامگذاری شده action و contractsبود.
    Unpivot config
    در پیش نمایش توجه کنید که ستون جدید contracts هنوز هم آرایه ای از اعداد پس از این تبدیل است.
  1. اضافه کردن منفجر کردن آرایه یا نقشه به ردیف ردیف به نام Explode contracts.
  2. انتخاب contracts ستون و وارد کنید contracts به عنوان ستون جدید برای لغو آن (نیازی به نگه داشتن آرایه اصلی نداریم).

اکنون پیش‌نمایش نشان می‌دهد که هر ردیف دارای یک تک است contracts مقدار و بقیه فیلدها یکسان است.

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

اسکرین شات زیر نمونه ای از شکل ظاهری ستون های جدید پس از تحولات تاکنون است.
پیش نمایش داده ها

یک جدول خلاصه ایجاد کنید

اکنون یک جدول خلاصه با تعداد قراردادهای معامله شده برای هر نوع و هر نماد سهام ایجاد می کنید.

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

  1. اضافه کردن زمینه ها را انتخاب کنید گره را انتخاب کنید و ستون های زیر را برای حفظ خلاصه انتخاب کنید: symbol, typeو contracts.
    زمینه های انتخاب شده
  2. اضافه کردن ردیف‌ها را به ستون‌ها بپیچید گره و نام گذاری کنید Pivot summary.
  3. تجمع بر روی contracts ستون با استفاده از sum و تبدیل آن را انتخاب کنید type ستون.
    پیکربندی Pivot

به طور معمول، شما آن را در یک پایگاه داده یا فایل خارجی برای مرجع ذخیره می کنید. در این مثال، ما آن را به عنوان یک فایل CSV در آمازون S3 ذخیره می کنیم.

  1. اضافه کردن پردازش تعادل خودکار گره و نام گذاری کنید Single output file.
  2. اگرچه این نوع تبدیل معمولاً برای بهینه‌سازی موازی‌سازی استفاده می‌شود، در اینجا ما از آن برای کاهش خروجی به یک فایل استفاده می‌کنیم. بنابراین، وارد شوید 1 در پیکربندی تعداد پارتیشن ها
    پیکربندی تعادل خودکار
  3. یک هدف S3 اضافه کنید و نام آن را بگذارید CSV Contract summary.
  4. CSV را به عنوان قالب داده انتخاب کنید و یک مسیر S3 را وارد کنید که در آن نقش شغل مجاز به ذخیره فایل‌ها است.

قسمت آخر کار اکنون باید مانند مثال زیر باشد.
DAG

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

ستون های موقت را تمیز کنید

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

  1. اضافه کردن فیلدها را رها کنید گره با Explode contracts گره به عنوان والد انتخاب شده است (ما در حال انشعاب خط لوله داده برای تولید یک خروجی جداگانه هستیم).
  2. فیلدهایی را که قرار است حذف شوند را انتخاب کنید: instrument_arr, month, dayو year.
    بقیه را که می‌خواهیم نگه داریم تا در جدول تاریخی که بعداً ایجاد خواهیم کرد، ذخیره شوند.
    فیلدها را رها کنید

استانداردسازی ارز

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

استفاده می کنیم آمازون آتنا برای شبیه‌سازی جدولی با تبدیل‌های تقریبی ارز که به‌طور دوره‌ای به‌روزرسانی می‌شود (در اینجا فرض می‌کنیم که سفارش‌ها را به‌اندازه کافی پردازش می‌کنیم که تبدیل نماینده معقولی برای مقاصد مقایسه باشد).

  1. کنسول Athena را در همان منطقه ای که از چسب AWS استفاده می کنید باز کنید.
  2. پرس و جوی زیر را برای ایجاد جدول با تنظیم یک مکان S3 که در آن نقش Athena و AWS Glue شما می توانند بخوانند و بنویسند، اجرا کنید. همچنین، ممکن است بخواهید جدول را در پایگاه داده دیگری ذخیره کنید default (اگر این کار را انجام می دهید، نام واجد شرایط جدول را مطابق با مثال های ارائه شده به روز کنید).
    CREATE EXTERNAL TABLE default.exchange_rates(currency string, exchange_rate double)
    ROW FORMAT DELIMITED
    FIELDS TERMINATED BY ','
    STORED AS TEXTFILE
    LOCATION 's3://<enter some bucket>/exchange_rates/';

  3. چند تبدیل نمونه را در جدول وارد کنید:
    INSERT INTO default.exchange_rates VALUES ('usd', 1.0), ('eur', 1.09), ('gbp', 1.24);
  4. اکنون باید بتوانید جدول را با پرس و جو زیر مشاهده کنید:
    SELECT * FROM default.exchange_rates
  5. به کار بصری چسب AWS، یک را اضافه کنید گرین کارت آمریکا گره (به عنوان فرزند Drop Fields) و نام ببرید Exchange rate.
  6. نام با کیفیت جدولی را که به تازگی ایجاد کرده اید، با استفاده از آن وارد کنید currency به عنوان کلید و انتخاب کنید exchange_rate زمینه برای استفاده
    از آنجایی که نام فیلد هم در داده ها و هم در جدول جستجو یکسان است، فقط می توانیم نام را وارد کنیم currency و نیازی به تعریف نقشه نیست.تنظیمات جستجو
    در زمان نوشتن این مقاله، تبدیل Lookup در پیش نمایش داده ها پشتیبانی نمی شود و خطای عدم وجود جدول را نشان می دهد. این فقط برای پیش نمایش داده است و مانع از اجرای صحیح کار نمی شود. چند مرحله باقی مانده از پست نیازی به به روز رسانی طرحواره ندارد. اگر نیاز به اجرای پیش نمایش داده روی گره های دیگر دارید، می توانید گره جستجو را به طور موقت حذف کرده و سپس آن را دوباره برگردانید.
  7. اضافه کردن ستون مشتق شده گره و نام گذاری کنید Total in usd.
  8. ستون مشتق شده را نام ببرید total_usd و از عبارت SQL زیر استفاده کنید:
    round(contracts * price * exchange_rate, 2)
    پیکربندی تبدیل ارز
  9. اضافه کردن مُهر زمانی فعلی را اضافه کنید گره و نام ستون ingest_date.
  10. از قالب استفاده کنید %Y-%m-%d برای مهر زمانی شما (برای اهداف نمایشی، ما فقط از تاریخ استفاده می کنیم؛ اگر بخواهید می توانید آن را دقیق تر کنید).
    پیکربندی مهر زمان

جدول سفارشات تاریخی را ذخیره کنید

برای ذخیره جدول سفارشات تاریخی، مراحل زیر را انجام دهید:

  1. یک گره هدف S3 اضافه کنید و آن را نامگذاری کنید Orders table.
  2. قالب پارکت را با فشرده سازی سریع پیکربندی کنید و یک مسیر هدف S3 برای ذخیره نتایج (جدا از خلاصه) در زیر آن ارائه دهید.
  3. انتخاب کنید ایجاد یک جدول در کاتالوگ داده و در اجراهای بعدی، به روز رسانی طرح و اضافه کردن پارتیشن های جدید.
  4. یک پایگاه داده هدف و یک نام برای جدول جدید وارد کنید، به عنوان مثال: option_orders.
    پیکربندی سینک رومیزی

بخش آخر نمودار اکنون باید شبیه به شکل زیر باشد، با دو شاخه برای دو خروجی مجزا.
DAG

پس از اجرای موفقیت آمیز کار، می توانید از ابزاری مانند Athena برای بررسی داده هایی که کار تولید کرده است با جستجو در جدول جدید استفاده کنید. می توانید جدول را در لیست آتنا پیدا کنید و انتخاب کنید پیش نمایش جدول یا فقط یک کوئری SELECT (به روز رسانی نام جدول به نام و کاتالوگ مورد استفاده خود) اجرا کنید:

SELECT * FROM default.option_orders limit 10

محتوای جدول شما باید شبیه تصویر زیر باشد.
محتوای جدول

پاک کردن

اگر نمی‌خواهید این مثال را حفظ کنید، دو شغلی که ایجاد کرده‌اید، دو جدول در آتنا و مسیرهای S3 که فایل‌های ورودی و خروجی در آن ذخیره شده‌اند را حذف کنید.

نتیجه

در این پست نشان دادیم که چگونه تبدیل‌های جدید در AWS Glue Studio می‌تواند به شما کمک کند تا تحولات پیشرفته‌تری را با حداقل پیکربندی انجام دهید. این بدان معنی است که می توانید موارد استفاده بیشتری از ETL را بدون نیاز به نوشتن و نگهداری کد پیاده سازی کنید. تبدیل‌های جدید در حال حاضر در AWS Glue Studio موجود است، بنابراین می‌توانید از تبدیل‌های جدید امروز در کارهای بصری خود استفاده کنید.


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

گونزالو هرروس یک معمار ارشد داده های بزرگ در تیم AWS Glue است.

تمبر زمان:

بیشتر از داده های بزرگ AWS