Chƣơng 2 : Nền tảng tính toán phân tán kết hợp giữa Oracle và Hadoop
2.3 Oracle Table Function
Table Function là chức năng mà tạo ra một bộ sưu tập của các hàng (hoặc một bảng lồng nhau hoặc một varray) mà có thể được truy vấn giống như một bảng cơ sở dữ liệu vật lý. Bạn sử dụng một Table function như tên của một bảng cơ sở dữ liệu, trong mệnh đề FROM của một truy vấn.
Thực thi của một Table Function có thể được song song hóa, và kết quả trả về có thể được sử dụng trực tiếp cho quá trình tiếp theo mà không cần kết quả trung gian. Kết quả được trả về từ một tập được trả về bởi một Table Function cũng có thể được xem là pipelined-đó là, lặp đi lặp lại quá trình như kết quả đã được tạo ra thay vì trong một tập sau khi tất cả quá trình xử lý dữ liệu đầu vào của Table Function được hoàn thành. Streaming, pipelining, và thực hiện song song các Table Function có thể cải thiện hiệu suất:
Bằng cách cho phép đa luồng, thực hiện đồng thời các Table Function. Bằng cách loại trừ giai đoạn trung gian giữa các quá trình.
Bằng cách cải thiện thời gian đáp ứng truy vấn: Với non-pipelined Table Function, toàn bộ dữ liệu được trả về bởi một Table Function phải được xây dựng và trả lại cho máy chủ trước khi truy vấn có thể trả về một hàng kết quả duy nhất. Pipelining cho phép hàng để được trả lại lặp đi lặp lại, như chúng được tạo ra. Điều này cũng làm giảm bộ nhớ được yêu cầu từ một Table Function, như các đối tượng được cache không cần phải tải toàn bộ dữ liệu.
Bằng cách lặp cung cấp hàng kết quả từ các tập kết quả được trả về bởi một Table Function như các hàng được tạo ra thay vì chờ đợi cho đến khi toàn bộ bộ sưu tập này được tổ chức trong các bảng hoặc bộ nhớ và sau đó trả lại toàn bộ bộ sưu tập.
Hình 2.9: Quá trình xử lý dữ liệu sử dụng pipelining và thực thi song song.