Phân tích dữ liệu JSON hiệu quả với Amazon Redshift SUPER

Tác giả: Ezat Karimi
Ngày phát hành: 27 JAN 2026
Chuyên mục: Advanced (300), Amazon Redshift, Technical How-to

Amazon Redshift là một kho dữ liệu đám mây nhanh, có khả năng mở rộng và được quản lý hoàn toàn mà bạn có thể sử dụng để xử lý và chạy các khối lượng công việc phân tích SQL phức tạp trên dữ liệu có cấu trúc và bán cấu trúc. Nó cũng giúp bạn truy cập dữ liệu một cách an toàn trong các cơ sở dữ liệu vận hành, hồ dữ liệu hoặc bộ dữ liệu của bên thứ ba với việc di chuyển hoặc sao chép dữ liệu tối thiểu. Hàng chục nghìn khách hàng sử dụng Amazon Redshift để xử lý lượng lớn dữ liệu, hiện đại hóa khối lượng công việc phân tích dữ liệu của họ và cung cấp thông tin chi tiết cho người dùng doanh nghiệp.

Amazon Redshift thay đổi cách các tổ chức phân tích dữ liệu JSON bằng cách kết hợp sức mạnh phân tích của một kho dữ liệu dạng cột với các khả năng xử lý JSON mạnh mẽ. Bằng cách sử dụng kiểu dữ liệu SUPER của Amazon Redshift, bạn có thể lưu trữ, truy vấn và phân tích dữ liệu phân cấp phức tạp một cách hiệu quả cùng với dữ liệu có cấu trúc truyền thống mà không làm giảm hiệu suất.

Bài viết này tập trung vào các tính năng JSON của Amazon Redshift.

Kiến trúc Amazon Redshift

Kiến trúc của Amazon Redshift được thiết kế như một hệ thống kho dữ liệu xử lý song song lớn (MPP) xử lý hiệu quả các khối lượng công việc xử lý phân tích trực tuyến (OLAP). Cốt lõi của nó là một cụm bao gồm một nút leader và các nút tính toán. Nút leader quản lý giao tiếp với client, phát triển kế hoạch thực thi và điều phối xử lý truy vấn, trong khi các nút tính toán xử lý dữ liệu thực tế song song. Kiến trúc MPP này đặc biệt có lợi cho các hoạt động OLAP bằng cách phân phối xử lý dữ liệu trên nhiều nút và thực thi các truy vấn song song. Hệ thống được tối ưu hóa cho các truy vấn phân tích phức tạp và báo cáo trên các bộ dữ liệu lớn, thay vì các hoạt động xử lý giao dịch trực tuyến (OLTP) truyền thống. Các tính năng chính bao gồm nén dữ liệu tự động, tích hợp liền mạch với các dịch vụ AWS khác nhau như Amazon Simple Storage Service (Amazon S3) và AWS Glue cho phân tích hồ dữ liệu, mở rộng quy mô đồng thời để xử lý khối lượng công việc dao động và tùy chọn serverless để quản lý đơn giản hóa và tự động mở rộng quy mô, cùng với các biện pháp bảo mật mạnh mẽ bao gồm mã hóa và cách ly mạng.

Khả năng tài liệu JSON trong Amazon Redshift

Kiểu dữ liệu Amazon Redshift SUPER mang lại một số lợi thế chính khi làm việc với dữ liệu JSON:

  • Lưu trữ trực tiếp các tài liệu JSON với cấu trúc phân cấp phức tạp mà không cần chi phí chuyển đổi
  • Tính linh hoạt của lược đồ cho các tài liệu JSON đang phát triển, vì vậy bạn có thể lưu trữ và truy vấn dữ liệu bán cấu trúc mà không yêu cầu di chuyển cơ sở dữ liệu phức tạp cho các thay đổi lược đồ trong cấu trúc JSON
  • Truy vấn tương thích SQL với PartiQL, một cú pháp trực quan cho dữ liệu bán cấu trúc

Amazon Redshift vượt trội trong việc xử lý phân tích dữ liệu JSON ở quy mô lớn, chứng tỏ lý tưởng cho các tổng hợp, kết nối và truy vấn phân tích phức tạp trên khối lượng tài liệu JSON khổng lồ. Để khai thác toàn bộ tiềm năng và đạt được hiệu suất tối ưu với dữ liệu JSON, việc tuân thủ các thực tiễn tốt nhất của Amazon Redshift và các thực tiễn tốt nhất của kiểu dữ liệu SUPER là rất quan trọng.

Ví dụ thực tế: Phân tích tương tác khách hàng trong ngành bán lẻ

Hãy xem xét việc xây dựng một hệ thống phân tích bán lẻ thu thập và phân tích tương tác của khách hàng trên nhiều kênh. Trường hợp sử dụng này thể hiện khả năng của kiểu dữ liệu SUPER, bởi vì tương tác của khách hàng tạo ra dữ liệu bán cấu trúc với các thuộc tính khác nhau tùy thuộc vào kênh, thiết bị và loại hành động.

Đầu tiên, chúng ta tạo một bảng để lưu trữ tương tác của khách hàng từ các kênh khác nhau. Thay vì tạo hàng chục cột để chứa các thuộc tính tương tác, chúng ta sẽ sử dụng một cột SUPER duy nhất có thể lưu trữ cấu trúc JSON:

CREATE TABLE customer_interactions (
customer_id INT,
interaction_date TIMESTAMP,
interaction_data SUPER
);

Lược đồ cơ bản này cung cấp tính linh hoạt rộng lớn. Khi doanh nghiệp bán lẻ phát triển, thêm các kênh mới, theo dõi các chỉ số mới hoặc thu thập các thuộc tính thiết bị mới, bạn sẽ không cần phải thay đổi lược đồ cơ sở dữ liệu. Điều này đặc biệt có giá trị đối với các hệ thống phân tích bán lẻ cần thích ứng nhanh chóng với các yêu cầu kinh doanh thay đổi.

Hãy chèn một tương tác mẫu của khách hàng từ một ứng dụng di động. Tài liệu JSON này ghi lại một tương tác phong phú trong đó khách hàng đã xem một sản phẩm và sau đó thêm nó vào giỏ hàng của họ:

-- Insert a mobile app interaction with product view and cart addition
INSERT INTO customer_interactions VALUES
(1001, '2023-09-15 14:32:45',
JSON_PARSE('{
"channel": "mobile_app",
"actions": [
{"type": "view_product", "product_id": "P-5432", "duration_sec": 45},
{"type": "add_to_cart", "product_id": "P-5432", "quantity": 1}
],
"device_info": {"os": "iOS", "version": "15.4.1", "model": "iPhone 13"}
}')),
(1002, '2023-09-15 15:10:12',
JSON_PARSE('{
"channel": "web",
"actions": [
{"type": "view_product", "product_id": "P-1234", "duration_sec": 20},
{"type": "checkout", "product_id": "P-1234", "payment_method": "credit_card"}
],
"device_info": {"os": "Windows", "version": "10", "model": "Dell XPS"}
}')),
(1003, '2023-09-16 09:22:33',
JSON_PARSE('{
"channel": "mobile_app",
"actions": [
{"type": "view_product", "product_id": "P-9999", "duration_sec": 60},
{"type": "add_to_cart", "product_id": "P-9999", "quantity": 2},
{"type": "checkout", "product_id": "P-9999", "payment_method": "paypal"}
],
"device_info": {"os": "Android", "version": "11", "model": "Pixel 5"}
}')),
(1004, '2023-09-16 15:45:30',
JSON_PARSE('{
"channel": "mobile_app",
"actions": [
{"type": "store_locator", "timestamp": "2023-09-16T15:45:32Z"}
],
"device_info": {"os": "Android", "version": "12", "model": "Samsung Galaxy S21"},
"location": {
"latitude": 37.7749, "longitude": -122.4194,
"accuracy_meters": 10, "captured_at": "2023-09-16T15:45:30Z"
}
}'));

Cấu trúc JSON này chứa thông tin có giá trị cho phân tích bán lẻ:

  • Kênh mua sắm của khách hàng (ứng dụng di động)
  • Một chuỗi các hành động họ đã thực hiện (xem sản phẩm, sau đó thêm vào giỏ hàng)
  • Chi tiết về sản phẩm họ đã tương tác
  • Thông tin về thiết bị của họ

Trong một mô hình quan hệ truyền thống, điều này có thể yêu cầu kết nối giữa nhiều bảng (tương tác, hành động, thiết bị). Với JSON trong Amazon Redshift, tất cả dữ liệu liên quan vẫn ở cùng nhau trong một hàng duy nhất.

Truy vấn JSON nâng cao trong Amazon Redshift

Kiểu dữ liệu SUPER cung cấp một số tính năng chính để làm việc với dữ liệu JSON. Để khám phá các tính năng này, hãy xem các ví dụ này. Hãy thảo luận một số tính năng này trong bối cảnh nền tảng phân tích bán lẻ.

Mỗi ví dụ này cho thấy cách Amazon Redshift, với kiểu dữ liệu SUPER, kết hợp với điều hướng PartiQL, xử lý các tài liệu JSON như các cấu trúc SQL tiêu chuẩn, cho phép phân tích mạnh mẽ, linh hoạt các sự kiện bán lẻ dựa trên JSON.

Số lượng hành động theo sản phẩm

Truy vấn này đếm số lần mỗi sản phẩm được xem, thêm vào giỏ hàng và thanh toán trên tất cả các phiên của khách hàng.

SELECT
action.product_id::varchar AS product_id,
SUM(CASE WHEN action.type::varchar = 'view_product' THEN 1 ELSE 0 END) AS views,
SUM(CASE WHEN action.type::varchar = 'add_to_cart' THEN 1 ELSE 0 END) AS add_to_cart,
SUM(CASE WHEN action.type::varchar = 'checkout' THEN 1 ELSE 0 END) AS checkouts
FROM customer_interactions c
CROSS JOIN c.interaction_data.actions AS action
GROUP BY 1
ORDER BY 1;

Đầu ra:

product_idadd_to_cartcheckouts
P-123401
P-543210
P-999911

Truy vấn này

  • Sử dụng CROSS JOIN để làm phẳng một mảng JSON (c.interaction_data.actions AS action).
  • Kết hợp tổng hợp quan hệ (SUM và GROUP BY) với điều hướng JSON để xoay các sự kiện người dùng.

Các phiên tương tác cao

Truy vấn này xác định những khách hàng có tổng thời gian xem sản phẩm vượt quá 30 giây bằng cách tổng hợp thời lượng của tất cả các hành động view_product.

SELECT
c.customer_id,
SUM(CASE WHEN action.type::varchar = 'view_product'
THEN action.duration_sec::int ELSE 0 END) AS total_view_time
FROM customer_interactions c
CROSS JOIN c.interaction_data.actions AS action
GROUP BY c.customer_id
HAVING SUM(CASE WHEN action.type::varchar = 'view_product'
THEN action.duration_sec::int ELSE 0 END) > 30
ORDER BY c.customer_id;

Đầu ra:

customer_idtotal_view_time
100145
100360

Trong truy vấn này, các trường JSON được sử dụng trực tiếp trong các tổng hợp (action.duration_sec).

Trích xuất kiểu thiết bị

Truy vấn này lấy kiểu thiết bị từ đối tượng device_info lồng nhau, hỗ trợ phân đoạn dựa trên thiết bị.

SELECT
customer_id,
interaction_data.device_info.model::varchar AS device_model
FROM customer_interactions;

Đầu ra:

customer_iddevice_model
1001iphone 13
1002Dell XPS
1003Pixel 5
1004Samsung Galaxy S21

Trong trường hợp sử dụng này, điều hướng JSON bằng ký hiệu dấu chấm gốc trên một cột SUPER (interaction_data.device_info.model) cho phép trích xuất trực tiếp các giá trị văn bản lồng nhau mà không cần các hàm ép kiểu hoặc phân tích cú pháp.

Lọc theo hệ điều hành

Truy vấn này sử dụng mệnh đề WHERE của PartiQL để lọc các phiên chỉ trả về những phiên từ thiết bị Android, cho phép phân tích cụ thể theo hệ điều hành.

SELECT customer_id
FROM customer_interactions
WHERE interaction_data.device_info.os = 'Android';

Đầu ra:

customer_id
1003
1004

Trong truy vấn này, các thuộc tính JSON tham gia trực tiếp vào các bộ lọc WHERE. Bạn có thể phân đoạn dữ liệu theo các thuộc tính JSON như thể chúng là các cột quan hệ.

Trích xuất chi tiết hành động thứ hai

Truy vấn này truy xuất loại, ID sản phẩm và số lượng của hành động thứ hai trong mỗi phiên, hữu ích để phân tích các hành vi tiếp theo.

SELECT
c.customer_id,
action.type::varchar AS second_action_type,
action.product_id::varchar AS second_action_product,
action.quantity::int AS quantity
FROM customer_interactions c,
c.interaction_data.actions AS action AT idx
WHERE idx = 1
ORDER BY c.customer_id;

Đầu ra:

customer_idsecond_action_typesecond_action_productquantity
1001add_to_cartP-54321
1002checkoutP-1234(null)
1003add_to_cartP-99992

Trong truy vấn này, lập chỉ mục mảng của PartiQL (AT idx) cho phép các truy vấn nhắm mục tiêu các phần tử mảng JSON cụ thể. Điều này mang lại cho Amazon Redshift sự tương đương với các cơ sở dữ liệu tài liệu JSON, nơi duyệt mảng là một tính năng chính.

Chuyển đổi hành động của khách hàng

Truy vấn này chuyển đổi số lượng của từng loại hành động thành các cột riêng biệt để có một bản tóm tắt ngắn gọn cho mỗi khách hàng. Nó cho thấy cách chuyển đổi các sự kiện kiểu tài liệu thành các bản tóm tắt kiểu quan hệ trực tiếp. Tính linh hoạt của JSON được bảo toàn trong khi tạo ra các tổng hợp có cấu trúc.

SELECT
c.customer_id,
SUM(CASE WHEN action.type::varchar = 'view_product' THEN 1 ELSE 0 END) AS view_product,
SUM(CASE WHEN action.type::varchar = 'add_to_cart' THEN 1 ELSE 0 END) AS add_to_cart,
SUM(CASE WHEN action.type::varchar = 'checkout' THEN 1 ELSE 0 END) AS checkout,
SUM(CASE WHEN action.type::varchar = 'store_locator' THEN 1 ELSE 0 END) AS store_locator
FROM customer_interactions c
CROSS JOIN c.interaction_data.actions AS action
GROUP BY c.customer_id
ORDER BY c.customer_id;

Đầu ra:

customer_idview_productadd_to_cartcheckoutstore_locator
10011100
10021010
10031110
10040001

Sự kiện xem sản phẩm trên ứng dụng di động

Làm phẳng các mảng hành động và chỉ trích xuất các sự kiện view_product trên thiết bị di động. Ví dụ này làm phẳng mảng hành động và lọc để chỉ hiển thị các sự kiện xem sản phẩm trên ứng dụng di động, cùng với thời lượng xem.

SELECT
c.customer_id,
c.interaction_date,
action.product_id::varchar AS product_id,
action.duration_sec::int AS duration_sec
FROM customer_interactions c
CROSS JOIN c.interaction_data.actions AS action
WHERE action.type::varchar = 'view_product'
AND c.interaction_data.channel = 'mobile_app'
ORDER BY c.customer_id;

Đầu ra:

customer_idinteraction_dateproduct_idduration_sec
10012023-09-15 14:32:45P-543245
10032023-09-16 09:22:33P-999960

Truy vấn này cho thấy truy vấn JSON đa cấp trong SQL thuần túy; các bộ lọc phức tạp kết hợp các thuộc tính mảng JSON (action.type) với các trường đối tượng cha (channel).

Tối ưu hóa hiệu suất cho JSON trong Amazon Redshift

Amazon Redshift triển khai một số tối ưu hóa cho kiểu dữ liệu SUPER đặc biệt có giá trị cho phân tích bán lẻ:

  • Lưu trữ dạng cột: Lưu trữ dạng cột trong Amazon Redshift mang lại lợi ích đáng kể cho kiểu dữ liệu SUPER bằng cách tối ưu hóa việc lưu trữ và truy xuất dữ liệu bán cấu trúc, mặc dù kiểu dữ liệu SUPER có thể lưu trữ toàn bộ tài liệu JSON trong một cột duy nhất.
  • Zone maps: Zone maps có thể giúp bỏ qua các khối không khớp với các vị từ truy vấn trên các giá trị được trích xuất từ các cột SUPER.
  • Xử lý song song: Kiến trúc MPP của Amazon Redshift phân phối xử lý dữ liệu và truy vấn trên nhiều nút, bao gồm các hoạt động trên dữ liệu SUPER, cho phép các truy vấn hiệu suất cao trên các bộ dữ liệu lớn.
  • Chế độ xem vật lý (Materialized views): Tạo các chế độ xem vật lý trên các đường dẫn JSON được truy cập phổ biến; chúng có thể tính toán trước kết quả cho các đường dẫn JSON được truy cập thường xuyên, nâng cao hơn nữa hiệu suất.

Ví dụ, hãy xem xét chế độ xem vật lý. Đối với các đường dẫn JSON được truy cập thường xuyên, các chế độ xem này có thể cải thiện đáng kể hiệu suất. Trong ví dụ bán lẻ của chúng ta, chúng ta có thể tạo một chế độ xem cho các lượt xem sản phẩm trên thiết bị di động:

-- Create a materialized view to accelerate mobile shopping analysis
-- This improves performance for frequently run reports on mobile engagement
CREATE MATERIALIZED VIEW mv_mobile_product_views AS
SELECT
c.customer_id,
c.interaction_date,
action.product_id::varchar AS product_id,
c.interaction_data.device_info.model::varchar AS device_model
FROM customer_interactions c
CROSS JOIN c.interaction_data.actions AS action
WHERE action.type::varchar = 'view_product'
AND c.interaction_data.channel = 'mobile_app';

Chế độ xem vật lý này trích xuất trước các đường dẫn JSON được truy cập phổ biến, chuyển đổi chúng sang định dạng dạng cột để có hiệu suất truy vấn nhanh hơn. Các nhà phân tích bán lẻ chạy báo cáo về tương tác di động sẽ trải nghiệm thời gian truy vấn nhanh hơn đáng kể so với việc phân tích cú pháp cấu trúc JSON lặp đi lặp lại. Dưới đây là một ví dụ:

SELECT * FROM mv_mobile_product_views;

Đầu ra:

customer_idinteraction_dateproduct_iddevice_model
10012023-09-15 14:32:45P-5432iPhone 13
10032023-09-16 09:22:33P-9999Pixel 5

Các trường hợp sử dụng nâng cao

Trong phần này, chúng ta thảo luận về cách xử lý các trường hợp sử dụng JSON nâng cao khi làm việc với Amazon Redshift.

Dữ liệu không gian địa lý trong JSON

Đối với các doanh nghiệp bán lẻ, dữ liệu vị trí rất quan trọng để hiểu các mô hình mua sắm của khách hàng. Amazon Redshift hỗ trợ các truy vấn không gian địa lý thông qua các kiểu dữ liệu GEOMETRY và GEOGRAPHY của nó. Bạn có thể lưu trữ dữ liệu vị trí bên trong các cột SUPER và trích xuất nó cho các hoạt động không gian:

-- Store a customer interaction with location data from a store visit
INSERT INTO customer_interactions VALUES (
1004,
'2023-09-16 15:45:30',
'{
"channel": "mobile_app",
"actions": [
{"type": "store_locator", "timestamp": "2023-09-16T15:45:32Z"}
],
"device_info": {
"os": "Android",
"version": "12",
"model": "Samsung Galaxy S21"
},
"location": {
"latitude": 37.7749,
"longitude": -122.4194,
"accuracy_meters": 10,
"captured_at": "2023-09-16T15:45:30Z"
}
}'
);
-- Extract location data to find customers near specific stores
-- This enables location-based marketing campaigns
SELECT
customer_id,
interaction_date,
interaction_data.channel::varchar AS channel,
ST_GeomFromText('POINT(' ||
interaction_data.location.longitude::varchar || ' ' ||
interaction_data.location.latitude::varchar || ')') AS customer_location
FROM customer_interactions
WHERE interaction_data.location IS NOT NULL;

Đầu ra:

customer_idinteraction_datechannelcustomer_location
10042023-09-16 15:45:30mobile_appPOINT(-122.4194 37.7749)

Bằng cách sử dụng khả năng này, các doanh nghiệp bán lẻ có thể thực hiện phân tích dựa trên vị trí, chẳng hạn như xác định khách hàng đã ghé thăm các cửa hàng vật lý, phân tích mô hình lưu lượng khách hàng hoặc nhắm mục tiêu các chương trình khuyến mãi đến khách hàng ở các khu vực địa lý cụ thể.

Phân tích JSON lồng nhau phức tạp

Các doanh nghiệp bán lẻ thường cần phân tích các mô hình hành vi khách hàng phức tạp trên lịch sử mua hàng. Amazon Redshift cho phép phân tích tinh vi các cấu trúc JSON lồng sâu. Hãy thêm bảng khách hàng và sản phẩm và chèn một số dữ liệu.

CREATE TABLE customers (
customer_id INT PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50)
);
CREATE TABLE products (
product_id VARCHAR(20) PRIMARY KEY,
product_name VARCHAR(100),
category VARCHAR(50)
);
INSERT INTO customers VALUES
(1001, 'Alice', 'Johnson'),
(1002, 'Bob', 'Smith'),
(1003, 'Carol', 'Taylor'),
(1004, 'David', 'Brown');
INSERT INTO products VALUES
('P-5432', 'Red Sneakers', 'Shoes'),
('P-1234', 'Wireless Mouse', 'Electronics'),
('P-9999', 'Coffee Maker', 'Appliances');
-- Analyze purchasing patterns of customers over 30
-- This helps target specific demographics with appropriate products
SELECT ci.customer_id, cu.first_name, cu.last_name,
p.product_name, p.category
FROM customer_interactions ci
JOIN customers cu ON ci.customer_id = cu.customer_id
LEFT JOIN products p ON p.product_id = ci.interaction_data.actions[0].product_id;

Đầu ra:

customer_idfirst_namelast_nameproduct_namecategory
1001AliceJohnsonRed SneakersShoes
1002BobSmithWireless MouseElectronics
1003CarolTaylorCoffee MakerAppliances
1004DavidBrownNULLNULL

Truy vấn này phân tích các mô hình mua hàng của các sản phẩm phổ biến nhất được mua bởi khách hàng trên 30 tuổi, trong năm hiện tại. Khả năng điều hướng thông tin khách hàng lồng nhau, lịch sử mua hàng và chi tiết mặt hàng, cung cấp những hiểu biết mạnh mẽ cho các nhóm tiếp thị và bán hàng bán lẻ.

Phân tích chuỗi thời gian trên JSON

Các doanh nghiệp bán lẻ thường cần phân tích các mô hình dựa trên thời gian, chẳng hạn như hành vi mua sắm trong những giờ cụ thể hoặc xu hướng theo mùa. Dữ liệu JSON thường chứa thông tin chuỗi thời gian có thể được phân tích hiệu quả trong Amazon Redshift. Hãy minh họa trường hợp sử dụng thông qua một ví dụ IoT chuỗi thời gian, sử dụng bảng store_sensors.

CREATE TABLE store_sensors (
store_id INT,
readings SUPER
);
INSERT INTO store_sensors VALUES
(1, JSON_PARSE('[
{"value": {"temperature": 22.5, "timestamp": "2023-03-01T10:00:00Z"}},
{"value": {"temperature": 23.0, "timestamp": "2023-06-15T12:00:00Z"}},
{"value": {"temperature": 21.8, "timestamp": "2023-11-20T09:30:00Z"}}
]')),
(2, JSON_PARSE('[
{"value": {"temperature": 19.5, "timestamp": "2023-02-10T14:00:00Z"}},
{"value": {"temperature": 20.0, "timestamp": "2023-07-25T16:00:00Z"}}
]'));
-- Analyze in-store temperature sensors to optimize shopping environment
-- This helps maintain optimal store conditions for customer comfort
SELECT
s.store_id,
COUNT(*) AS reading_count,
AVG((reading.value.temperature)::DOUBLE PRECISION) AS avg_temp
FROM store_sensors s
CROSS JOIN s.readings AS reading
WHERE (reading.value.timestamp)::TIMESTAMP BETWEEN '2023-01-01' AND '2023-12-31'
GROUP BY s.store_id;

Đầu ra:

store_idreading_countavg_temp
1369
2269

Truy vấn này phân tích các điều kiện môi trường cửa hàng, xác định nhiệt độ trung bình. Đối với các doanh nghiệp bán lẻ, việc duy trì điều kiện mua sắm tối ưu là rất quan trọng đối với sự hài lòng của khách hàng và có thể ảnh hưởng trực tiếp đến doanh số bán hàng. Khả năng lưu trữ và phân tích dữ liệu cảm biến IoT dưới dạng JSON cung cấp những hiểu biết vận hành có giá trị mà không cần chuyển đổi dữ liệu phức tạp.

Hạn chế và cân nhắc

Mặc dù kiểu dữ liệu SUPER cung cấp các khả năng JSON mạnh mẽ cho phân tích bán lẻ, nhưng có những hạn chế mà bạn cần lưu ý. Để biết thêm thông tin, hãy xem tài liệu công khai về các hạn chế.

Kiểu dữ liệu SUPER kế thừa hai hạn chế kích thước chung của Amazon Redshift. Tổng kích thước của một tài liệu không thể vượt quá 16MB và 64 KB là giới hạn cho các chuỗi VARCHAR.

Đối với các doanh nghiệp bán lẻ có tài liệu JSON lớn, để xử lý các hạn chế này, hãy xem xét:

  • Trích xuất các trường quan trọng: Sử dụng các cột được tạo để trích xuất các trường JSON được truy cập thường xuyên vào các cột chuyên dụng, chẳng hạn như cấp độ khách hàng.
  • Amazon Redshift Spectrum: Lưu trữ các bộ dữ liệu JSON lớn trong Amazon S3 và truy vấn chúng bằng Amazon Redshift Spectrum. Lưu ý rằng giới hạn kích thước 64 KB vẫn áp dụng cho định nghĩa bảng bên ngoài, nhưng bạn có thể tiền xử lý các đối tượng lớn thành các định dạng nhỏ gọn hơn và lưu trữ chúng trên Amazon S3. Cách tiếp cận này có khả năng mở rộng và tránh lưu trữ dữ liệu phi quan hệ cực lớn trong cơ sở dữ liệu phân tích của bạn, cải thiện hiệu suất và độ ổn định.
  • Phương pháp kết hợp: Lưu trữ dữ liệu được truy cập thường xuyên trong các bảng Amazon Redshift và dữ liệu ít được truy cập hơn trong Amazon S3, truy vấn cả hai bằng các truy vấn liên kết. Trong trường hợp này, bạn kết nối dữ liệu bên ngoài bằng Spectrum cùng với dữ liệu cục bộ trong Amazon Redshift.

Amazon Redshift có phù hợp với khối lượng công việc JSON của bạn không?

Mặc dù Amazon Redshift mạnh mẽ, nhưng nó không phải lúc nào cũng phù hợp với khối lượng công việc JSON của bạn. Trong phần này, chúng ta thảo luận khi nào Amazon Redshift phù hợp và khi nào không.

Amazon Redshift lý tưởng cho khối lượng công việc JSON khi:

  • Xử lý phân tích là chính: Trường hợp sử dụng chính của bạn liên quan đến các truy vấn phân tích phức tạp, chẳng hạn như phân đoạn khách hàng, phân tích mối quan hệ sản phẩm hoặc xác định xu hướng bán hàng.
  • Các loại dữ liệu hỗn hợp: Bạn cần phân tích JSON cùng với dữ liệu có cấu trúc truyền thống, chẳng hạn như kết hợp dữ liệu tương tác của khách hàng với hồ sơ hàng tồn kho và bán hàng.
  • Tích hợp kho dữ liệu: Dữ liệu JSON của bạn cần là một phần của chiến lược kho dữ liệu rộng hơn, tích hợp hành vi của khách hàng với dữ liệu doanh nghiệp.
  • Tích hợp công cụ BI: Bạn cần kết nối các công cụ Business Intelligence để phân tích dữ liệu JSON cho các bảng điều khiển và báo cáo điều hành.
  • Phân tích hiệu quả chi phí ở quy mô lớn: Bạn yêu cầu phân tích hiệu quả chi phí lượng lớn dữ liệu JSON, chẳng hạn như nhiều năm tương tác của khách hàng hoặc dữ liệu cảm biến Internet of Things (IoT) từ nhiều địa điểm cửa hàng.

Hãy xem xét các lựa chọn thay thế khi:

  • Khối lượng công việc vận hành chiếm ưu thế: Nếu bạn chủ yếu cần tra cứu hoặc cập nhật tài liệu đơn lẻ, chẳng hạn như truy xuất hoặc cập nhật hồ sơ khách hàng cá nhân, hãy xem xét Amazon DynamoDB hoặc Amazon DocumentDB.
  • Tìm kiếm nâng cao là rất quan trọng: Nếu tìm kiếm văn bản nâng cao, bao gồm tìm kiếm toàn văn bản và ngữ nghĩa, là yêu cầu chính của bạn (chẳng hạn như để tìm kiếm đánh giá sản phẩm hoặc phản hồi của khách hàng), Amazon OpenSearch Service có thể phù hợp hơn.
  • Kích thước tài liệu vượt quá giới hạn: Nếu bạn thường xuyên xử lý các tài liệu rất lớn với tổng kích thước vượt quá 16MB hoặc các tài liệu có chuỗi VARCHAR vượt quá 64KB.

Kết luận

Amazon Redshift cung cấp một nền tảng mạnh mẽ cho phân tích JSON bán lẻ, kết hợp tính linh hoạt của dữ liệu bán cấu trúc với hiệu suất của kho dữ liệu dạng cột. Bằng cách sử dụng kiểu dữ liệu SUPER và PartiQL, các tổ chức bán lẻ có thể phân tích dữ liệu tương tác khách hàng phức tạp ở quy mô lớn mà không làm giảm khả năng tương thích SQL hoặc khả năng phân tích.

Khi dữ liệu tiếp tục tăng về khối lượng và độ phức tạp, khả năng thu hẹp khoảng cách giữa phân tích dữ liệu có cấu trúc và bán cấu trúc ngày càng trở nên có giá trị. Bằng cách sử dụng Amazon Redshift để loại bỏ ranh giới truyền thống giữa các loại dữ liệu này, các tổ chức có thể hợp nhất khối lượng công việc phân tích của họ trên một nền tảng duy nhất, giảm độ phức tạp, cải thiện hiệu suất và tăng tốc thời gian để có được thông tin chi tiết cho các quyết định kinh doanh quan trọng.

Hãy thử kiểu dữ liệu SUPER của Amazon Redshift và để lại bình luận của bạn tại đây.


Về tác giả

Ezat Karimi

Ezat Karimi

Ezat là Kiến trúc sư Giải pháp Cấp cao tại AWS, có trụ sở tại Austin, TX. Ezat chuyên thiết kế và cung cấp các giải pháp và chiến lược hiện đại hóa cho các ứng dụng cơ sở dữ liệu. Làm việc chặt chẽ với nhiều nhóm AWS, Ezat giúp khách hàng di chuyển khối lượng công việc cơ sở dữ liệu của họ lên đám mây AWS.