REDSHIFT LÀ GÌ

 - 

Client Application với Connection

Amazon Redshift được thi công dựa trên PostgreSQL cùng với chỉ một ít chuyển đổi. Do kia nếu áp dụng của khách hàng đã thực hiện Squốc lộ, chỉ cần vài ba biến hóa nhỏ tuổi thì bạn đã có thể đưa sang Redshift. Những điểm không giống nhau thân PostgreSquốc lộ cùng Redshift bạn có thể khám phá sinh sống liên kết sau đây.

Bạn đang xem: Redshift là gì

Vì được tạo ra dựa trên PostgreSQL phải Redshift cung cấp câu hỏi liên kết giữa application cùng khối hệ thống qua JDBC và ODBC drivers.

Cluster

Bây giờ đồng hồ chúng ta sẽ đi sâu rộng vào cấu tạo của Redshift. Thành phần core vào kiến trúc của Redshift là Cluster. Trong Cluster sẽ sở hữu một hoặc các Database. Để truy câp vào Cluster các bạn sẽ yêu cầu mặt đường liên kết cửa cluster , thương hiệu database với password. Mỗi cluster sẽ được tạo ra thành vị 1 hay các Node. Khi Cluster được tạo nên bởi nhiều Node thì Redshift sinc thêm Leader Node.

Leader Node

Nhiệm vụ trước tiên của Leader Node là kết nối cùng với application để dấn query cũng như trả công dụng. Nhiệm vụ thứ 2 là xử trí, truyền query excution plan cho tới từng Compute Node. Đồi cùng với mọi câu lệnh query phức tạp thì Leader Node còn truyền xuống những Compute Node công việc query và thiết yếu Leader Node tổng đúng theo tác dụng trả về từ Compute Node để có thể ra được kết quả. Như vậy bước xử lý câu query và tổng thích hợp công dụng được triển khai trái Leader Node còn thực hiện nó thì đã là ở các Node con.

Compute Node

Compute Node chính là nơi triển khai những câu lệnh query kế tiếp trả kết quả lại mang lại Leader Node tổng thích hợp lại. Điểm đặc biệt tại đây chính là từng Compute Node sẽ sở hữu được CPU, Memory với Storage mang lại riêng bản thân. Cấu hình rõ ràng vẫn tùy thuộc vào Plan mà các bạn lựa chọn lúc chế tác Cluster. lấy một ví dụ trường hợp tài liệu của chúng ta cực kì kinh khủng thì bạn có thể lựa chọn cho mình max là 36 vCPU, 244Gb Memory và 16TB Storage (hihi). Bạn rất có thể tìm hiểu thêm links tiếp sau đây đến thông số kỹ thuật từng Cluster cùng Node:

https://aws.amazon.com/redshift/pricing/

Node Slices

Mỗi một Compute Node liên tiếp được chia nhỏ dại ra thành những Node Slice. Mỗi một Node Slice sẽ tiến hành phân chia gần như CPU, Memory và Storage từ bỏ Compute Node đó. Với 1 query nhưng Compute Node nhận được từ Leader Node, Compute Node liên tục truyền xuống mang đến từng Node Slice để những Slice này tiến hành đồng thời query.

Internal network

Thành phần sau cùng là Internal network. Redshift sử dụng một hệ thống private network với đường dẫn rộng, vận tốc cao nhằm hoàn toàn có thể kết nối giữa Leader Node và Compute Node. Đây là yếu tắc bảo đảm an toàn truyền query tự Leader Node cho tới Compute Node với truyền kết quả từ bỏ Compute Node tới Leader Node. Đây cũng là 1 trong những nhân tố khôn xiết đặc biệt ảnh hưởng đến thời hạn query cơ mà bản thân sẽ giới thiệu mang đến các bạn về sau.

2. Lưu trữ dữ liệu

Distribution Style

Tiếp theo mình đã nói một chút ít về bài toán tàng trữ dữ liệu của Redshift. Nlỗi nghỉ ngơi bên trên mình đã kể đến cấu tạo nhỏ tuổi độc nhất vào Redshift là những Node Slices với data của người sử dụng được tàng trữ trên node slices này. Vậy thì Redshift phân bổ data cho những Node Slices ra sao.

Columnar Data Storage

Columnar Data Storage gọi đơn giản là tàng trữ dữ liệu theo cột. Đây là một trong số những nhân tố rất là quan trọng giúp cho câu hỏi giảm đi một lượng cực kỳ lớn I/O requirements với lượng tài liệu bắt buộc load trong quá trình query.

Cấu trúc lưu data giao diện truyền thống lâu đời là lưu theo row (row-wise database storage) nlỗi bạn thấy sau đây.

*

Mỗi một block đã lưu giữ data của tất cả 1 row. Nghĩa là nếu mà row form size lớn hơn blochồng kích thước thì các bạn sẽ yêu cầu nhiều hơn nữa 1 blochồng để lưu data, còn trường hợp như row kích cỡ nhở hơn bloông chồng form size thì trên 1 blochồng đã lưu giữ data của ít nhât 2 row. Kiểu lưu này cân xứng cùng với rất nhiều application là online transaction processing (OLTP). Ở các application kiểu dáng này thì vấn đề đọc và ghi liên quan mang lại toàn bộ dữ liệu hoăc chỉ là một trong lượng nhỏ dữ liệu. Do đó bài toán cần hiểu với ghi qua bao nhiêu bloông xã không cần phải tối ưu bởi vì bạn Hoặc là cách xử lý trên tổng thể block, hoặc chỉ cần xử lý bên trên một lượng block nhỏ dại.

Xem thêm: Hướng Tây Bắc Thuộc Hành Gì, Nhà Hướng Tây Thuộc Hành Gì

Redshift thực hiện Columnar Data Storage, lưu theo cột nhằm lưu tài liệu nhỏng ban thấy tiếp sau đây.

*

Nlỗi chúng ta thấy, thì bên trên 1 bloông chồng cố gắng vì chưng giữ cả 1 row thì đã lưu theo cột. Tất nhiên vào bài viết này bản thân sẽ không đi sâu vào đối chiếu thân Columnar Storage với Row-Wise Storage (chắc chắn rằng sẽ sở hữu một bài riêng biệt bỏ phần này (hihi)). Ở phía trên tôi chỉ nói về ưu thế của Columnar Data Storage là:

Khả năng query rất là mạnh mẽ Lúc yêu cầu query lượng tài liệu Khủng.Khả năng nén dữ liệu không hề nhỏ, thông qua đó sút được lượng tài liệu nên xử trí.Tốc độc query tốt nhất trường hợp nlỗi chỉ tương quan cho một hay là 1 vài ba cột vào bảng.

Column được giữ bên trên bloông chồng theo thiết bị tự nào thì tùy ở trong vào Sort Key nhưng chúng ta khai báo Lúc chế tạo bảng.

3. Perfomance

Quay trở về với vụ việc chính là vì sao Redshift hoàn toàn có thể bao gồm tốc độ query cực kì xuất sắc với lượng dữ liệu bự. Thì chắc rằng qua phần trình làng về system của Redshift các chúng ta có thể đoán ra được phần làm sao. Dưới đấy là đều lý do thiết yếu.

Massively parallel processing

Với cấu trúc chia nhsinh sống data vào những compute node, những compute node lại được phân tách nhỏ dại thành những node slices. Và những node slices lại được cấp CPU, Memory, Storage nhằm xử trí dữ liệu tuy vậy tuy nhiên thì phân biệt là vận tốc query sẽ nhanh hao rộng rất nhiều. lấy một ví dụ nlỗi chúng ta lựa chọn cluster là ds1.xlarge cùng với max node hoàn toàn có thể là 32, từng node có max là 2 slices, thì với 64 process xử lý query song tuy vậy rõ ràng là nhanh rộng so với cùng 1 process. Con số này sẽ còn khủng khiếp hơn Khi áp dụng cluster dc1.8xlarge cùng với tối đa 128 nodes với max là 32 slices trên 1 node (tất nhiên là nếu tìm nhỏ này thì bạn tốn lượng chi phí bự rồi (hihi)).

Columnar data storage

Nhỏng đã nhắc đến ở trên thì lưu tài liệu theo cột sẽ tốn không nhiều I/O với lượng tài liệu phải load hơn. Columnar data storage cực kỳ hữu ích giả dụ data của người tiêu dùng cực kì to. Đây cũng là 1 trong trong số những nguyên nhân thiết yếu góp Redshift bao gồm tốc độ query vô cùng nkhô cứng lúc đối chiếu vs MongoDB sinh hoạt bài trước của bản thân.

Data Compression

Với phong cách giữ theo Columnar Data Storage thì Redshift cũng khiến tuyệt hảo khỏe mạnh cùng với khả năng nén tài liệu. Với table bao gồm 8.5 triệu bạn dạng ghi nhỏng của mình, nếu như nhỏng ở MongoDB lượng dữ liệu chiếm là 4.5Gb thì ở Redshift chỉ gần 1Gb, điều ấy giúp cho lượng tài liệu cần xử trí giảm sút vô cùng rất nhiều qua đó tăng dần đều được performance. Redshift hỗ trợ khôn cùng ngọi hình dạng encode đến dữ liệu của bạn nhỏng raw, byte, delta, lzo... nhằm chúng ta gạn lọc, thông qua đó nén một bí quyết về tối ưu tuyệt nhất dữ liệu của mình.

Query Optimizer

Phân Engine cách xử trí query của Redshift có khả năng về tối ưu hóa query cùng với câu hỏi sử dụng (MPP-aware (Massive Parallel Processing)) cùng gần như ưu thế giành được trường đoản cú Columnar data storage. Lúc cảm nhận query thì Engine đang gửi query plan thành code với tiếp nối chuyển code kia đến Compute Node để tiến hành. Để rất có thể hiểu rõ rộng về query plan cũng tương tự flow triển khai chúng ta có thể xem thêm link sau đây:

http://docs.aws.amazon.com/redshift/latest/dg/c-query-processing.html

Ngoài ra Redshift còn hỗ trợ cho mình 1 loạt những bảng gồm sắn nhằm bạn cũng có thể đối chiếu flow của query thông qua đó giúp cho bạn nâng cấp câu query. lấy ví dụ như như bảng SVL_QUERY_SUMMARY hỗ trợ cho mình những thống kê query theo stream, bảng SVL_QUERY_REPORT hỗ trợ cho mình ban bố query theo Node Slice, giỏi STL_ALERT_EVENT_LOG tàng trữ số đông thông tin nhưng mà nó tác động mang lại performance của query... Quý khách hàng có thể tham khảo về phong thái phân tích, bí quyết nâng cao câu query theo nlỗi liên kết bên dưới đây:

http://docs.aws.amazon.com/redshift/latest/dg/c-query-tuning.html

4. Kết luận

Trong bài viết này tôi đã reviews mang đến chúng ta về hệ thống của Redshift tương tự như phân tích và lý giải được phần nào nguyên do vì sao Redshift bao gồm tính năng rất là xuất sắc. Tuy nhiên để rất có thể sử dụng được một cách rất tốt cục bộ tác dụng của Redshift thì nên sẽ sở hữu được phần nhiều tips riêng rẽ, độc nhất là đối với phần thi công bảng.

Xem thêm: Angostura Bitters Là Gì ? 4 Điều Thú Vị Về Bitter Bartender Nên Biết

Trong bài tiếp theo mình đã ra mắt mang lại các bạn làm nạm nào để kiến thiết bảng một biện pháp về tối ưu vào Redshift. Và này cũng đó là cách để mình giảm câu query từ bỏ 10s xuống còn 4 giây hệt như vào bài xích trước có nói (hihi).