Mười chuyển đổi trực quan mới trong AWS Glue Studio

Mười chuyển đổi trực quan mới trong AWS Glue Studio

Nút nguồn: 2641422

Xưởng keo AWS là một giao diện đồ họa giúp dễ dàng tạo, chạy và giám sát các công việc trích xuất, chuyển đổi và tải (ETL) trong Keo AWS. Nó cho phép bạn soạn các quy trình chuyển đổi dữ liệu một cách trực quan bằng cách sử dụng các nút đại diện cho các bước xử lý dữ liệu khác nhau, sau đó các bước này sẽ tự động được chuyển đổi thành mã để chạy.

Xưởng keo AWS Mới ra mắt Thêm 10 biến đổi trực quan để cho phép tạo các công việc nâng cao hơn theo cách trực quan mà không cần kỹ năng viết mã. Trong bài đăng này, chúng tôi thảo luận về các trường hợp sử dụng tiềm năng phản ánh các nhu cầu chung về ETL.

Các phép biến đổi mới sẽ được trình bày trong bài đăng này là: Ghép nối, Tách chuỗi, Mảng thành cột, Thêm dấu thời gian hiện tại, Xoay hàng thành cột, Bỏ xoay cột thành hàng, Tra cứu, Khai thác mảng hoặc ánh xạ vào cột, Cột dẫn xuất và Xử lý tự động cân bằng .

Tổng quan về giải pháp

Trong trường hợp sử dụng này, chúng tôi có một số tệp JSON với các hoạt động tùy chọn chứng khoán. Chúng tôi muốn thực hiện một số phép biến đổi trước khi lưu trữ dữ liệu để dễ phân tích hơn và chúng tôi cũng muốn tạo một bản tóm tắt tập dữ liệu riêng.

Trong bộ dữ liệu này, mỗi hàng đại diện cho một giao dịch hợp đồng quyền chọn. Quyền chọn là công cụ tài chính cung cấp quyền—chứ không phải nghĩa vụ—mua hoặc bán cổ phiếu ở một mức giá cố định (được gọi là  giá đình công) trước ngày hết hạn xác định.

Dữ liệu đầu vào

Dữ liệu tuân theo lược đồ sau:

  • order_id – ID duy nhất
  • biểu tượng – Một mã thường dựa trên một vài chữ cái để xác định công ty phát hành cổ phiếu cơ sở
  • cụ – Tên xác định tùy chọn cụ thể được mua hoặc bán
  • tiền tệ – Mã tiền tệ ISO trong đó giá được thể hiện
  • giá – Số tiền đã được trả cho việc mua từng hợp đồng quyền chọn (trên hầu hết các sàn giao dịch, một hợp đồng cho phép bạn mua hoặc bán 100 cổ phiếu)
  • Sàn giao dịch – Mã của trung tâm trao đổi hoặc địa điểm nơi quyền chọn được giao dịch
  • bán – Danh sách số lượng hợp đồng được phân bổ để thực hiện lệnh bán khi đây là giao dịch bán
  • mua – Danh sách số lượng hợp đồng được phân bổ để thực hiện lệnh mua khi đây là giao dịch mua

Sau đây là một mẫu dữ liệu tổng hợp được tạo cho bài đăng này:

{"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]}

Yêu cầu ETL

Dữ liệu này có một số đặc điểm riêng, như thường thấy trên các hệ thống cũ, khiến dữ liệu khó sử dụng hơn.

Sau đây là các yêu cầu ETL:

  • Tên công cụ có thông tin có giá trị dành cho con người hiểu; chúng tôi muốn chuẩn hóa nó thành các cột riêng biệt để phân tích dễ dàng hơn.
  • Các thuộc tính boughtsold loại trừ lẫn nhau; chúng tôi có thể hợp nhất chúng thành một cột duy nhất với số hợp đồng và có một cột khác cho biết liệu các hợp đồng được mua hoặc bán theo thứ tự này.
  • Chúng tôi muốn giữ thông tin về phân bổ hợp đồng riêng lẻ nhưng dưới dạng các hàng riêng lẻ thay vì buộc người dùng xử lý một dãy số. Chúng tôi có thể cộng các con số, nhưng chúng tôi sẽ mất thông tin về cách thức thực hiện lệnh (cho thấy tính thanh khoản của thị trường). Thay vào đó, chúng tôi chọn không chuẩn hóa bảng để mỗi hàng có một số hợp đồng duy nhất, chia các đơn đặt hàng có nhiều số thành các hàng riêng biệt. Ở định dạng cột được nén, kích thước tập dữ liệu bổ sung của lần lặp lại này thường nhỏ khi áp dụng nén, do đó, việc làm cho tập dữ liệu dễ truy vấn hơn có thể chấp nhận được.
  • Chúng tôi muốn tạo một bảng tóm tắt khối lượng cho từng loại tùy chọn (gọi và đặt) cho mỗi cổ phiếu. Điều này cung cấp một dấu hiệu về tâm lý thị trường đối với từng cổ phiếu và thị trường nói chung (tham lam so với sợ hãi).
  • Để cho phép tóm tắt giao dịch tổng thể, chúng tôi muốn cung cấp cho mỗi hoạt động tổng số tiền lớn và chuẩn hóa đơn vị tiền tệ sang đô la Mỹ, sử dụng tham chiếu chuyển đổi gần đúng.
  • Chúng tôi muốn thêm ngày khi các chuyển đổi này diễn ra. Ví dụ, điều này có thể hữu ích để có tham chiếu về thời điểm chuyển đổi tiền tệ được thực hiện.

Dựa trên những yêu cầu đó, công việc sẽ tạo ra hai đầu ra:

  • Tệp CSV có tóm tắt số lượng hợp đồng cho từng ký hiệu và loại
  • Một bảng danh mục để lưu giữ lịch sử của đơn hàng, sau khi thực hiện các phép biến đổi được chỉ định
    Lược đồ dữ liệu

Điều kiện tiên quyết

Bạn sẽ cần bộ chứa S3 của riêng mình để thực hiện theo trường hợp sử dụng này. Để tạo một nhóm mới, hãy tham khảo Tạo một thùng.

Tạo dữ liệu tổng hợp

Để theo dõi bài đăng này (hoặc tự mình thử nghiệm loại dữ liệu này), bạn có thể tạo tập dữ liệu này một cách tổng hợp. Tập lệnh Python sau có thể chạy trên môi trường Python đã cài đặt Boto3 và truy cập vào Dịch vụ lưu trữ đơn giản của Amazon (Amazon S3).

Để tạo dữ liệu, hãy hoàn thành các bước sau:

  1. Trên AWS Glue Studio, tạo một công việc mới với tùy chọn Trình chỉnh sửa tập lệnh shell Python.
  2. Đặt tên cho công việc và trên Chi tiết công việc tab, chọn một vai trò phù hợp và tên cho tập lệnh Python.
  3. Trong tạp chí Chi tiết công việc phần, mở rộng Thuộc tính nâng cao và cuộn xuống Thông số công việc.
  4. Nhập một tham số có tên --bucket và chỉ định tên của bộ chứa mà bạn muốn sử dụng để lưu trữ dữ liệu mẫu làm giá trị.
  5. Nhập tập lệnh sau vào trình chỉnh sửa trình bao 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. Chạy công việc và đợi cho đến khi nó hiển thị là đã hoàn thành thành công trên tab Chạy (chỉ mất vài giây).

Mỗi lần chạy sẽ tạo một tệp JSON có 1,000 hàng trong nhóm được chỉ định và tiền tố transformsblog/inputdata/. Bạn có thể chạy công việc nhiều lần nếu muốn thử nghiệm với nhiều tệp đầu vào hơn.
Mỗi dòng trong dữ liệu tổng hợp là một hàng dữ liệu đại diện cho một đối tượng JSON như sau:

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

Tạo công việc trực quan AWS Glue

Để tạo tác vụ trực quan AWS Glue, hãy hoàn thành các bước sau:

  1. Truy cập AWS Glue Studio và tạo tác vụ bằng tùy chọn Trực quan với một canvas trống.
  2. Chỉnh sửa Untitled job đặt tên cho nó và gán một vai trò phù hợp với AWS Glue trên Chi tiết công việc tab.
  3. Thêm nguồn dữ liệu S3 (bạn có thể đặt tên cho nó JSON files source) và nhập URL S3 nơi các tệp được lưu trữ (ví dụ: s3://<your bucket name>/transformsblog/inputdata/), sau đó chọn JSON như định dạng dữ liệu.
  4. Chọn Suy ra lược đồ vì vậy nó đặt lược đồ đầu ra dựa trên dữ liệu.

Từ nút nguồn này, bạn sẽ tiếp tục xâu chuỗi các phép biến đổi. Khi thêm từng biến đổi, hãy đảm bảo nút đã chọn là nút được thêm cuối cùng để nút được chỉ định làm nút gốc, trừ khi có chỉ định khác trong hướng dẫn.

Nếu bạn không chọn đúng cấp độ gốc, bạn luôn có thể chỉnh sửa cấp độ gốc bằng cách chọn cấp độ gốc đó và chọn cấp độ gốc khác trong ngăn cấu hình.

Cấu hình nút gốc

Đối với mỗi nút được thêm vào, bạn sẽ đặt cho nó một tên cụ thể (để mục đích của nút hiển thị trong biểu đồ) và cấu hình trên Chuyển đổi tab.

Mỗi khi một biến đổi thay đổi lược đồ (ví dụ: thêm một cột mới), lược đồ đầu ra cần được cập nhật để lược đồ đó hiển thị cho các biến đổi xuôi dòng. Bạn có thể chỉnh sửa lược đồ đầu ra theo cách thủ công nhưng sẽ thực tế hơn và an toàn hơn khi thực hiện việc này bằng cách sử dụng bản xem trước dữ liệu.
Ngoài ra, bằng cách đó, bạn có thể xác minh rằng quá trình chuyển đổi đang hoạt động như mong đợi. Để làm như vậy, hãy mở Xem trước dữ liệu với biến đổi được chọn và bắt đầu phiên xem trước. Sau khi bạn đã xác minh dữ liệu được chuyển đổi trông như mong đợi, hãy chuyển đến Lược đồ đầu ra tab và chọn Sử dụng lược đồ xem trước dữ liệu để tự động cập nhật lược đồ.

Khi bạn thêm các loại biến đổi mới, bản xem trước có thể hiển thị thông báo về phần phụ thuộc bị thiếu. Khi điều này xảy ra, chọn Phiên kết thúc và bắt đầu một cái mới, vì vậy bản xem trước chọn loại nút mới.

Trích xuất thông tin công cụ

Hãy bắt đầu bằng cách xử lý thông tin trên tên công cụ để chuẩn hóa thông tin đó thành các cột dễ truy cập hơn trong bảng đầu ra kết quả.

  1. Thêm một tách chuỗi nút và đặt tên cho nó Split instrument, sẽ mã hóa cột công cụ bằng biểu thức chính khoảng trắng: s+ (một khoảng trắng sẽ phù hợp trong trường hợp này, nhưng cách này linh hoạt hơn và rõ ràng hơn về mặt hình ảnh).
  2. Chúng tôi muốn giữ nguyên thông tin công cụ ban đầu, vì vậy hãy nhập tên cột mới cho mảng phân tách: instrument_arr.
    Tách cấu hình
  3. Thêm Mảng thành cột nút và đặt tên cho nó Instrument columns để chuyển đổi cột mảng vừa tạo thành các trường mới, ngoại trừ symbol, mà chúng tôi đã có một cột.
  4. Chọn cột instrument_arr, bỏ qua mã thông báo đầu tiên và bảo nó trích xuất các cột đầu ra month, day, year, strike_price, type sử dụng chỉ mục 2, 3, 4, 5, 6 (các khoảng trắng sau dấu phẩy là để dễ đọc, chúng không ảnh hưởng đến cấu hình).
    Cấu hình mảng

Năm trích xuất chỉ được thể hiện bằng hai chữ số; chúng ta hãy đặt một điểm dừng để cho rằng đó là trong thế kỷ này nếu họ chỉ sử dụng hai chữ số.

  1. Thêm một Cột có nguồn gốc nút và đặt tên cho nó Four digits year.
  2. đăng ký hạng mục thi year làm cột dẫn xuất để ghi đè lên cột đó và nhập biểu thức SQL sau:
    CASE WHEN length(year) = 2 THEN ('20' || year) ELSE year END
    Cấu hình cột bắt nguồn từ năm

Để thuận tiện, chúng tôi xây dựng một expiration_date trường mà người dùng có thể có làm tham chiếu của ngày cuối cùng mà tùy chọn có thể được thực hiện.

  1. Thêm một nối các cột nút và đặt tên cho nó Build expiration date.
  2. Đặt tên cho cột mới expiration_date, chọn các cột year, monthday (theo thứ tự đó) và một dấu gạch nối dưới dạng dấu cách.
    Cấu hình ngày nối

Sơ đồ cho đến nay sẽ trông giống như ví dụ sau.

DAG

Bản xem trước dữ liệu của các cột mới cho đến nay sẽ giống như ảnh chụp màn hình sau.

Xem trước dữ liệu

Bình thường hóa số lượng hợp đồng

Mỗi hàng trong dữ liệu cho biết số lượng hợp đồng của từng tùy chọn đã được mua hoặc bán và các đợt thực hiện các đơn đặt hàng. Để không làm mất thông tin về các lô riêng lẻ, chúng tôi muốn có mỗi số lượng trên một hàng riêng lẻ với một giá trị số lượng duy nhất, trong khi phần còn lại của thông tin được sao chép trong mỗi hàng được tạo.

Đầu tiên, hãy hợp nhất số tiền vào một cột duy nhất.

  1. Thêm Bỏ xoay cột thành hàng nút và đặt tên cho nó Unpivot actions.
  2. Chọn các cột boughtsold để hủy xoay vòng và lưu trữ tên cũng như giá trị trong các cột có tên actioncontracts, Tương ứng.
    Bỏ xoay cấu hình
    Lưu ý trong phần xem trước rằng cột mới contracts vẫn là một mảng số sau phép biến đổi này.
  1. Thêm Khai thác mảng hoặc bản đồ thành hàng hàng có tên Explode contracts.
  2. Chọn contracts cột và nhập contracts làm cột mới để ghi đè lên nó (chúng ta không cần giữ nguyên mảng ban đầu).

Bản xem trước hiện cho thấy rằng mỗi hàng có một contracts số tiền và các trường còn lại giống nhau.

Điều này cũng có nghĩa là order_id không còn là khóa duy nhất nữa. Đối với các trường hợp sử dụng của riêng bạn, bạn cần quyết định cách lập mô hình dữ liệu của mình và liệu bạn có muốn chuẩn hóa hay không.
bùng nổ cấu hình

Ảnh chụp màn hình sau đây là một ví dụ về giao diện của các cột mới sau khi chuyển đổi cho đến nay.
Xem trước dữ liệu

Tạo bảng tóm tắt

Bây giờ bạn tạo một bảng tóm tắt với số lượng hợp đồng được giao dịch cho từng loại và từng mã chứng khoán.

Với mục đích minh họa, hãy giả sử rằng các tệp được xử lý thuộc về một ngày duy nhất, vì vậy bản tóm tắt này cung cấp cho người dùng doanh nghiệp thông tin về mức độ quan tâm và tâm lý của thị trường vào ngày hôm đó.

  1. Thêm một Chọn trường nút và chọn các cột sau đây để giữ cho bản tóm tắt: symbol, typecontracts.
    Các trường đã chọn
  2. Thêm một Xoay các hàng thành các cột nút và đặt tên cho nó Pivot summary.
  3. tổng hợp trên contracts cột sử dụng sum và chọn chuyển đổi type cột.
    cấu hình trục

Thông thường, bạn sẽ lưu trữ nó trên một số cơ sở dữ liệu hoặc tệp bên ngoài để tham khảo; trong ví dụ này, chúng tôi lưu nó dưới dạng tệp CSV trên Amazon S3.

  1. Thêm Xử lý cân bằng tự động nút và đặt tên cho nó Single output file.
  2. Mặc dù loại biến đổi đó thường được sử dụng để tối ưu hóa tính song song, nhưng ở đây chúng tôi sử dụng nó để giảm đầu ra thành một tệp duy nhất. Do đó, nhập 1 trong số lượng cấu hình phân vùng.
    Cấu hình tự động cân bằng
  3. Thêm một mục tiêu S3 và đặt tên cho nó CSV Contract summary.
  4. Chọn CSV làm định dạng dữ liệu và nhập đường dẫn S3 nơi vai trò công việc được phép lưu trữ tệp.

Phần cuối cùng của công việc bây giờ trông giống như ví dụ sau.
DAG

  1. Lưu và chạy công việc. Sử dụng Chạy tab để kiểm tra khi nó kết thúc thành công.
    Bạn sẽ tìm thấy một tệp dưới đường dẫn đó là CSV, mặc dù không có phần mở rộng đó. Có thể bạn sẽ cần thêm tiện ích mở rộng sau khi tải xuống để mở.
    Trên một công cụ có thể đọc CSV, bản tóm tắt sẽ trông giống như ví dụ sau.
    Bảng tính

Dọn dẹp các cột tạm thời

Để chuẩn bị lưu các đơn đặt hàng vào bảng lịch sử để phân tích trong tương lai, hãy xóa một số cột tạm thời được tạo trong quá trình này.

  1. Thêm một Trường thả nút với Explode contracts nút được chọn làm nút gốc (chúng tôi đang phân nhánh đường dẫn dữ liệu để tạo đầu ra riêng biệt).
  2. Chọn các trường sẽ bị loại bỏ: instrument_arr, month, dayyear.
    Phần còn lại chúng tôi muốn giữ lại để chúng được lưu trong bảng lịch sử mà chúng tôi sẽ tạo sau.
    Trường thả

tiêu chuẩn hóa tiền tệ

Dữ liệu tổng hợp này chứa các hoạt động hư cấu trên hai loại tiền tệ, nhưng trong một hệ thống thực, bạn có thể nhận được các loại tiền tệ từ các thị trường trên toàn thế giới. Sẽ rất hữu ích nếu chuẩn hóa các loại tiền tệ được xử lý thành một loại tiền tệ tham chiếu duy nhất để có thể dễ dàng so sánh và tổng hợp chúng để báo cáo và phân tích.

Chúng tôi sử dụng amazon Athena để mô phỏng một bảng có các chuyển đổi tiền tệ gần đúng được cập nhật định kỳ (ở đây chúng tôi giả định rằng chúng tôi xử lý các đơn đặt hàng đủ kịp thời để chuyển đổi là đại diện hợp lý cho mục đích so sánh).

  1. Mở bảng điều khiển Athena trong cùng Khu vực mà bạn đang sử dụng AWS Glue.
  2. Chạy truy vấn sau để tạo bảng bằng cách đặt vị trí S3 nơi cả vai trò Athena và AWS Glue của bạn đều có thể đọc và ghi. Ngoài ra, bạn có thể muốn lưu trữ bảng trong một cơ sở dữ liệu khác với default (nếu bạn làm điều đó, hãy cập nhật tên đủ điều kiện của bảng cho phù hợp trong các ví dụ được cung cấp).
    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. Nhập một vài chuyển đổi mẫu vào bảng:
    INSERT INTO default.exchange_rates VALUES ('usd', 1.0), ('eur', 1.09), ('gbp', 1.24);
  4. Bây giờ bạn có thể xem bảng với truy vấn sau:
    SELECT * FROM default.exchange_rates
  5. Quay lại công việc trực quan AWS Glue, thêm một Tra cứu nút (khi còn là con của Drop Fields) và đặt tên cho nó Exchange rate.
  6. Nhập tên đủ điều kiện của bảng bạn vừa tạo, sử dụng currency làm chìa khóa và chọn exchange_rate trường để sử dụng.
    Vì trường được đặt tên giống nhau trong cả dữ liệu và bảng tra cứu nên chúng ta chỉ cần nhập tên currency và không cần xác định ánh xạ.Tra cứu cấu hình
    Tại thời điểm viết bài này, biến đổi Tra cứu không được hỗ trợ trong bản xem trước dữ liệu và nó sẽ hiển thị lỗi bảng không tồn tại. Điều này chỉ dành cho bản xem trước dữ liệu và không ngăn công việc chạy chính xác. Một số bước còn lại của bài đăng không yêu cầu bạn cập nhật lược đồ. Nếu bạn cần chạy bản xem trước dữ liệu trên các nút khác, bạn có thể tạm thời xóa nút tra cứu rồi đặt lại.
  7. Thêm một Cột có nguồn gốc nút và đặt tên cho nó Total in usd.
  8. Đặt tên cho cột dẫn xuất total_usd và sử dụng biểu thức SQL sau:
    round(contracts * price * exchange_rate, 2)
    Cấu hình chuyển đổi tiền tệ
  9. Thêm một Thêm dấu thời gian hiện tại nút và đặt tên cho cột ingest_date.
  10. Sử dụng định dạng %Y-%m-%d cho dấu thời gian của bạn (vì mục đích trình diễn, chúng tôi chỉ sử dụng ngày tháng; bạn có thể làm cho nó chính xác hơn nếu muốn).
    cấu hình dấu thời gian

Lưu bảng đơn đặt hàng lịch sử

Để lưu bảng đơn đặt hàng lịch sử, hãy hoàn thành các bước sau:

  1. Thêm một nút đích S3 và đặt tên cho nó Orders table.
  2. Định cấu hình định dạng Parquet với tính năng nén linh hoạt và cung cấp đường dẫn đích S3 để lưu trữ kết quả (tách biệt với phần tóm tắt).
  3. Chọn Tạo một bảng trong Danh mục dữ liệu và trong các lần chạy tiếp theo, hãy cập nhật lược đồ và thêm các phân vùng mới.
  4. Ví dụ: nhập cơ sở dữ liệu đích và tên cho bảng mới: option_orders.
    Cấu hình bồn rửa bàn

Phần cuối cùng của sơ đồ bây giờ trông giống như phần sau, với hai nhánh cho hai đầu ra riêng biệt.
DAG

Sau khi chạy công việc thành công, bạn có thể sử dụng một công cụ như Athena để xem lại dữ liệu mà công việc đã tạo ra bằng cách truy vấn bảng mới. Bạn có thể tìm thấy bảng trong danh sách Athena và chọn Xem trước bảng hoặc chỉ chạy truy vấn CHỌN (cập nhật tên bảng thành tên và danh mục bạn đã sử dụng):

SELECT * FROM default.option_orders limit 10

Nội dung bảng của bạn sẽ trông giống như ảnh chụp màn hình sau.
Bảng nội dung

Làm sạch

Nếu bạn không muốn giữ ví dụ này, hãy xóa hai công việc bạn đã tạo, hai bảng trong Athena và đường dẫn S3 nơi lưu trữ các tệp đầu vào và đầu ra.

Kết luận

Trong bài đăng này, chúng tôi đã chỉ ra cách các chuyển đổi mới trong AWS Glue Studio có thể giúp bạn thực hiện chuyển đổi nâng cao hơn với cấu hình tối thiểu. Điều này có nghĩa là bạn có thể triển khai nhiều trường hợp sử dụng ETL hơn mà không phải viết và duy trì bất kỳ mã nào. Các biến đổi mới đã có sẵn trên AWS Glue Studio, vì vậy bạn có thể sử dụng các biến đổi mới ngay hôm nay trong các tác vụ trực quan của mình.


Giới thiệu về tác giả

Gonzalo Herreros là một Kiến trúc sư Dữ liệu lớn Cấp cao trong nhóm AWS Glue.

Dấu thời gian:

Thêm từ Dữ liệu lớn AWS