Khi bạn có vảy Sber. Sử dụng Ab Initio với Hive và GreenPlum

Cách đây một thời gian, chúng tôi phải đối mặt với câu hỏi chọn công cụ ETL để làm việc với Dữ liệu lớn. Giải pháp Informatica BDM được sử dụng trước đây không phù hợp với chúng tôi do chức năng hạn chế. Việc sử dụng nó đã được giảm xuống thành một khung để khởi chạy các lệnh spark-submit. Về nguyên tắc, không có nhiều sản phẩm tương tự trên thị trường có khả năng hoạt động với khối lượng dữ liệu mà chúng ta xử lý hàng ngày. Cuối cùng chúng tôi đã chọn Ab Initio. Trong quá trình trình diễn thử nghiệm, sản phẩm cho thấy tốc độ xử lý dữ liệu rất cao. Hầu như không có thông tin nào về Ab Initio bằng tiếng Nga nên chúng tôi quyết định nói về trải nghiệm của mình trên Habré.

Ab Initio có nhiều phép biến đổi cổ điển và khác thường, mã của chúng có thể được mở rộng bằng ngôn ngữ PDL của chính nó. Đối với một doanh nghiệp nhỏ, một công cụ mạnh mẽ như vậy có thể sẽ là quá mức cần thiết và hầu hết các khả năng của nó có thể đắt tiền và không được sử dụng. Nhưng nếu thang đo của bạn gần với thang đo của Sberov thì Ab Initio có thể khiến bạn quan tâm.

Nó giúp doanh nghiệp tích lũy kiến ​​thức trên toàn cầu và phát triển hệ sinh thái, đồng thời giúp nhà phát triển cải thiện kỹ năng của mình về ETL, nâng cao kiến ​​thức về shell, tạo cơ hội thành thạo ngôn ngữ PDL, đưa ra hình ảnh trực quan về quá trình tải và đơn giản hóa quá trình phát triển do sự phong phú của các thành phần chức năng.

Trong bài đăng này, tôi sẽ nói về các khả năng của Ab Initio và cung cấp các đặc điểm so sánh trong công việc của nó với Hive và GreenPlum.

  • Mô tả khung MDW và cách tùy chỉnh nó cho GreenPlum
  • So sánh hiệu suất Ab Initio giữa Hive và GreenPlum
  • Làm việc Ab Initio với GreenPlum ở chế độ Gần thời gian thực


Chức năng của sản phẩm này rất rộng và cần nhiều thời gian để nghiên cứu. Tuy nhiên, với kỹ năng làm việc phù hợp và cài đặt hiệu suất phù hợp, kết quả xử lý dữ liệu rất ấn tượng. Sử dụng Ab Initio cho nhà phát triển có thể mang lại trải nghiệm thú vị. Đây là một bước phát triển mới trong phát triển ETL, sự kết hợp giữa môi trường trực quan và phát triển tải xuống bằng ngôn ngữ giống như tập lệnh.

Các doanh nghiệp đang phát triển hệ sinh thái của mình và công cụ này trở nên hữu ích hơn bao giờ hết. Với Ab Initio, bạn có thể tích lũy kiến ​​thức về hoạt động kinh doanh hiện tại của mình và sử dụng kiến ​​thức này để mở rộng các hoạt động kinh doanh cũ và mở mới. Các lựa chọn thay thế cho Ab Initio bao gồm môi trường phát triển trực quan Informatica BDM và môi trường phát triển không trực quan Apache Spark.

Mô tả của Ab Initio

Ab Initio, giống như các công cụ ETL khác, là một tập hợp các sản phẩm.

Khi bạn có vảy Sber. Sử dụng Ab Initio với Hive và GreenPlum

Ab Initio GDE (Môi trường phát triển đồ họa) là môi trường dành cho nhà phát triển, trong đó anh ta định cấu hình các chuyển đổi dữ liệu và kết nối chúng với các luồng dữ liệu dưới dạng mũi tên. Trong trường hợp này, tập hợp các phép biến đổi như vậy được gọi là biểu đồ:

Khi bạn có vảy Sber. Sử dụng Ab Initio với Hive và GreenPlum

Các kết nối đầu vào và đầu ra của các thành phần chức năng là các cổng và chứa các trường được tính toán trong các phép biến đổi. Một số biểu đồ được kết nối bằng các luồng dưới dạng mũi tên theo thứ tự thực hiện của chúng được gọi là sơ đồ.

Có hàng trăm thành phần chức năng, rất nhiều. Nhiều người trong số họ có tính chuyên môn cao. Khả năng chuyển đổi cổ điển trong Ab Initio rộng hơn so với các công cụ ETL khác. Ví dụ: Tham gia có nhiều đầu ra. Ngoài kết quả của việc kết nối các tập dữ liệu, bạn có thể nhận được bản ghi đầu ra của các tập dữ liệu đầu vào có khóa không thể kết nối được. Bạn cũng có thể nhận được các từ chối, lỗi và nhật ký của thao tác chuyển đổi, có thể được đọc trong cùng một cột với tệp văn bản và được xử lý bằng các phép biến đổi khác:

Khi bạn có vảy Sber. Sử dụng Ab Initio với Hive và GreenPlum

Hoặc, ví dụ: bạn có thể cụ thể hóa bộ thu dữ liệu dưới dạng bảng và đọc dữ liệu từ nó trong cùng một cột.

Có những biến đổi ban đầu. Ví dụ: phép biến đổi Quét có chức năng tương tự như chức năng phân tích. Có các phép biến đổi với các tên tự giải thích: Tạo dữ liệu, Đọc Excel, Chuẩn hóa, Sắp xếp trong nhóm, Chạy chương trình, Chạy SQL, Tham gia với DB, v.v. Đồ thị có thể sử dụng các tham số thời gian chạy, bao gồm khả năng truyền tham số từ hoặc sang hệ điều hành . Các tệp có bộ tham số được tạo sẵn được truyền vào biểu đồ được gọi là bộ tham số (psets).

Đúng như dự đoán, Ab Initio GDE có kho lưu trữ riêng có tên EME (Môi trường Meta doanh nghiệp). Các nhà phát triển có cơ hội làm việc với các phiên bản mã cục bộ và kiểm tra sự phát triển của họ vào kho lưu trữ trung tâm.

Có thể, trong khi thực hiện hoặc sau khi thực hiện biểu đồ, nhấp vào bất kỳ luồng nào kết nối phép biến đổi và xem dữ liệu được truyền giữa các phép biến đổi này:

Khi bạn có vảy Sber. Sử dụng Ab Initio với Hive và GreenPlum

Cũng có thể nhấp vào bất kỳ luồng nào và xem chi tiết theo dõi - có bao nhiêu điểm tương đồng mà phép chuyển đổi đã thực hiện, có bao nhiêu dòng và byte được tải vào điểm tương đồng nào:

Khi bạn có vảy Sber. Sử dụng Ab Initio với Hive và GreenPlum

Có thể chia việc thực hiện biểu đồ thành các giai đoạn và đánh dấu rằng một số phép biến đổi cần được thực hiện trước (trong pha 0), các phép biến đổi tiếp theo trong giai đoạn đầu tiên, các phép biến đổi tiếp theo trong giai đoạn thứ hai, v.v.

Đối với mỗi phép biến đổi, bạn có thể chọn cái gọi là bố cục (nơi nó sẽ được thực thi): không có các luồng song song hoặc trong các luồng song song, số lượng luồng có thể được chỉ định. Đồng thời, các tệp tạm thời mà Ab Initio tạo khi quá trình chuyển đổi đang chạy có thể được đặt cả trong hệ thống tệp máy chủ và HDFS.

Trong mỗi lần chuyển đổi, dựa trên mẫu mặc định, bạn có thể tạo tập lệnh của riêng mình trong PDL, hơi giống một shell.

Với PDL, bạn có thể mở rộng chức năng của các phép biến đổi và đặc biệt, bạn có thể tự động (trong thời gian chạy) tạo ra các đoạn mã tùy ý tùy thuộc vào các tham số thời gian chạy.

Ab Initio cũng có khả năng tích hợp phát triển tốt với hệ điều hành thông qua shell. Cụ thể, Sberbank sử dụng linux ksh. Bạn có thể trao đổi các biến với shell và sử dụng chúng làm tham số biểu đồ. Bạn có thể gọi việc thực thi các biểu đồ Ab Initio từ shell và quản lý Ab Initio.

Ngoài Ab Initio GDE, nhiều sản phẩm khác cũng được cung cấp kèm theo. Có Hệ điều hành Co> riêng với tuyên bố được gọi là hệ điều hành. Có Trung tâm Điều khiển> nơi bạn có thể lên lịch và giám sát các luồng tải xuống. Có những sản phẩm để phát triển ở mức nguyên thủy hơn Ab Initio GDE cho phép.

Mô tả khung MDW và cách tùy chỉnh nó cho GreenPlum

Cùng với các sản phẩm của mình, nhà cung cấp còn cung cấp sản phẩm MDW (Metadata Driven Warehouse), một công cụ cấu hình biểu đồ được thiết kế để trợ giúp thực hiện các tác vụ điển hình là điền vào kho dữ liệu hoặc kho dữ liệu.

Nó chứa các trình phân tích cú pháp siêu dữ liệu tùy chỉnh (dành riêng cho dự án) và các trình tạo mã được tạo sẵn ngay lập tức.

Khi bạn có vảy Sber. Sử dụng Ab Initio với Hive và GreenPlum
Là đầu vào, MDW nhận được một mô hình dữ liệu, tệp cấu hình để thiết lập kết nối với cơ sở dữ liệu (Oracle, Teradata hoặc Hive) và một số cài đặt khác. Ví dụ: phần dành riêng cho dự án sẽ triển khai mô hình vào cơ sở dữ liệu. Phần sẵn có của sản phẩm tạo ra các biểu đồ và tệp cấu hình cho chúng bằng cách tải dữ liệu vào các bảng mô hình. Trong trường hợp này, các biểu đồ (và psets) được tạo cho một số chế độ khởi tạo và công việc gia tăng khi cập nhật các thực thể.

Trong trường hợp của Hive và RDBMS, các biểu đồ khác nhau được tạo để khởi tạo và cập nhật dữ liệu gia tăng.

Trong trường hợp của Hive, dữ liệu delta đến được kết nối thông qua Ab Initio Join với dữ liệu có trong bảng trước khi cập nhật. Trình tải dữ liệu trong MDW (cả trong Hive và RDBMS) không chỉ chèn dữ liệu mới từ delta mà còn đóng các khoảng thời gian liên quan của dữ liệu có khóa chính nhận được delta. Ngoài ra, bạn phải viết lại phần dữ liệu không thay đổi. Nhưng việc này phải làm vì Hive không có thao tác xóa hay cập nhật.

Khi bạn có vảy Sber. Sử dụng Ab Initio với Hive và GreenPlum

Trong trường hợp RDBMS, các biểu đồ cập nhật dữ liệu gia tăng trông tối ưu hơn vì RDBMS có khả năng cập nhật thực sự.

Khi bạn có vảy Sber. Sử dụng Ab Initio với Hive và GreenPlum

Delta nhận được sẽ được tải vào một bảng trung gian trong cơ sở dữ liệu. Sau đó, delta được kết nối với dữ liệu có trong bảng trước khi cập nhật. Và điều này được thực hiện bằng cách sử dụng SQL bằng truy vấn SQL được tạo. Tiếp theo, bằng cách sử dụng lệnh SQL xóa+chèn, dữ liệu mới từ delta được chèn vào bảng mục tiêu và các khoảng thời gian liên quan của dữ liệu có khóa chính nhận được delta sẽ được đóng lại.
Không cần phải viết lại dữ liệu không thay đổi.

Vì vậy, chúng tôi đi đến kết luận rằng trong trường hợp của Hive, MDW phải viết lại toàn bộ bảng vì Hive không có chức năng cập nhật. Và không có gì tốt hơn việc ghi lại hoàn toàn dữ liệu khi việc cập nhật đã được phát minh. Ngược lại, trong trường hợp RDBMS, những người tạo ra sản phẩm nhận thấy cần phải ủy thác việc kết nối và cập nhật các bảng cho việc sử dụng SQL.

Đối với một dự án tại Sberbank, chúng tôi đã tạo một triển khai mới, có thể tái sử dụng của trình tải cơ sở dữ liệu cho GreenPlum. Điều này được thực hiện dựa trên phiên bản mà MDW tạo cho Teradata. Chính Teradata, chứ không phải Oracle, là người gần nhất và tốt nhất cho việc này, bởi vì... cũng là một hệ thống MPP. Các phương thức làm việc cũng như cú pháp của Teradata và GreenPlum hóa ra lại giống nhau.

Ví dụ về sự khác biệt quan trọng của MDW giữa các RDBMS khác nhau như sau. Trong GreenPlum, không giống như Teradata, khi tạo bảng bạn cần viết mệnh đề

distributed by

Teradata viết:

delete <table> all

và trong GreenPlum họ viết

delete from <table>

Trong Oracle, vì mục đích tối ưu hóa họ viết

delete from t where rowid in (<соединение t с дельтой>)

, và Teradata và GreenPlum viết

delete from t where exists (select * from delta where delta.pk=t.pk)

Chúng tôi cũng lưu ý rằng để Ab Initio hoạt động với GreenPlum, cần phải cài đặt ứng dụng khách GreenPlum trên tất cả các nút của cụm Ab Initio. Điều này là do chúng tôi đã kết nối đồng thời với GreenPlum từ tất cả các nút trong cụm của chúng tôi. Và để việc đọc từ GreenPlum diễn ra song song và mỗi luồng Ab Initio song song đọc phần dữ liệu riêng của nó từ GreenPlum, chúng tôi phải đặt một cấu trúc mà Ab Initio hiểu được trong phần “where” của truy vấn SQL

where ABLOCAL()

và xác định giá trị của cấu trúc này bằng cách chỉ định việc đọc tham số từ cơ sở dữ liệu chuyển đổi

ablocal_expr=«string_concat("mod(t.", string_filter_out("{$TABLE_KEY}","{}"), ",", (decimal(3))(number_of_partitions()),")=", (decimal(3))(this_partition()))»

, biên dịch thành một cái gì đó như

mod(sk,10)=3

, I E. bạn phải nhắc GreenPlum bằng bộ lọc rõ ràng cho từng phân vùng. Đối với các cơ sở dữ liệu khác (Teradata, Oracle), Ab Initio có thể tự động thực hiện việc song song hóa này.

So sánh hiệu suất Ab Initio giữa Hive và GreenPlum

Sberbank đã tiến hành một thử nghiệm để so sánh hiệu suất của các biểu đồ do MDW tạo ra so với Hive và so với GreenPlum. Là một phần của thử nghiệm, trong trường hợp Hive có 5 nút trên cùng một cụm với Ab Initio và trong trường hợp GreenPlum có 4 nút trên một cụm riêng biệt. Những thứ kia. Hive có một số lợi thế về phần cứng so với GreenPlum.

Chúng tôi đã xem xét hai cặp biểu đồ thực hiện cùng một nhiệm vụ cập nhật dữ liệu trong Hive và GreenPlum. Đồng thời, các biểu đồ do bộ cấu hình MDW tạo ra đã được khởi chạy:

  • tải ban đầu + tải tăng dần dữ liệu được tạo ngẫu nhiên vào bảng Hive
  • tải ban đầu + tải tăng dần của dữ liệu được tạo ngẫu nhiên vào cùng một bảng GreenPlum

Trong cả hai trường hợp (Hive và GreenPlum), họ đã chạy tải lên 10 luồng song song trên cùng một cụm Ab Initio. Ab Initio đã lưu dữ liệu trung gian để tính toán trong HDFS (về mặt Ab Initio, bố cục MFS sử dụng HDFS đã được sử dụng). Một dòng dữ liệu được tạo ngẫu nhiên chiếm 200 byte trong cả hai trường hợp.

Kết quả là như thế này:

Mùa đông:

Tải lần đầu trong Hive

Đã chèn hàng
6 000 000
60 000 000
600 000 000

Thời gian khởi tạo
tải xuống trong vài giây
41
203
1 601

Tải tăng dần trong Hive

Số hàng có sẵn trong
bảng mục tiêu khi bắt đầu thử nghiệm
6 000 000
60 000 000
600 000 000

Số lượng đường delta áp dụng cho
bảng mục tiêu trong quá trình thử nghiệm
6 000 000
6 000 000
6 000 000

Thời lượng tăng dần
tải xuống trong vài giây
88
299
2 541

GreenPlum:

Tải lần đầu vào GreenPlum

Đã chèn hàng
6 000 000
60 000 000
600 000 000

Thời gian khởi tạo
tải xuống trong vài giây
72
360
3 631

Tải tăng dần trong GreenPlum

Số hàng có sẵn trong
bảng mục tiêu khi bắt đầu thử nghiệm
6 000 000
60 000 000
600 000 000

Số lượng đường delta áp dụng cho
bảng mục tiêu trong quá trình thử nghiệm
6 000 000
6 000 000
6 000 000

Thời lượng tăng dần
tải xuống trong vài giây
159
199
321

Chúng tôi thấy rằng tốc độ tải ban đầu trong cả Hive và GreenPlum phụ thuộc tuyến tính vào lượng dữ liệu và vì lý do phần cứng tốt hơn nên Hive nhanh hơn một chút so với GreenPlum.

Tải tăng dần trong Hive cũng phụ thuộc tuyến tính vào khối lượng dữ liệu được tải trước đó có sẵn trong bảng mục tiêu và tiến hành khá chậm khi khối lượng tăng lên. Điều này là do cần phải viết lại hoàn toàn bảng mục tiêu. Điều này có nghĩa là việc áp dụng những thay đổi nhỏ cho các bảng lớn không phải là trường hợp sử dụng tốt cho Hive.

Việc tải tăng dần trong GreenPlum phụ thuộc rất ít vào khối lượng dữ liệu được tải trước đó có sẵn trong bảng mục tiêu và diễn ra khá nhanh. Điều này xảy ra nhờ SQL Joins và kiến ​​trúc GreenPlum, cho phép thao tác xóa.

Vì vậy, GreenPlum thêm delta bằng phương pháp xóa+chèn, nhưng Hive không có thao tác xóa hoặc cập nhật, do đó toàn bộ mảng dữ liệu buộc phải được ghi lại hoàn toàn trong quá trình cập nhật gia tăng. Việc so sánh các ô được tô đậm là rõ ràng nhất vì nó tương ứng với tùy chọn phổ biến nhất để sử dụng các bản tải xuống sử dụng nhiều tài nguyên. Chúng tôi thấy rằng GreenPlum đã đánh bại Hive trong thử nghiệm này tới 8 lần.

Làm việc Ab Initio với GreenPlum ở chế độ Gần thời gian thực

Trong thử nghiệm này, chúng tôi sẽ kiểm tra khả năng cập nhật bảng GreenPlum của Ab Initio với các khối dữ liệu được tạo ngẫu nhiên trong thời gian gần như thực. Hãy xem xét bảng GreenPlum dev42_1_db_usl.TESTING_SUBJ_org_finval mà chúng ta sẽ làm việc với bảng này.

Chúng tôi sẽ sử dụng ba biểu đồ Ab Initio để làm việc với nó:

1) Graph Create_test_data.mp – tạo các tệp dữ liệu trong HDFS với 10 hàng trong 6 luồng song song. Dữ liệu là ngẫu nhiên, cấu trúc của nó được sắp xếp để chèn vào bảng của chúng ta

Khi bạn có vảy Sber. Sử dụng Ab Initio với Hive và GreenPlum

Khi bạn có vảy Sber. Sử dụng Ab Initio với Hive và GreenPlum

2) Biểu đồ mdw_load.day_one.current.dev42_1_db_usl_testing_subj_org_finval.pset - Biểu đồ được tạo bởi MDW bằng cách khởi tạo việc chèn dữ liệu vào bảng của chúng tôi trong 10 luồng song song (dữ liệu thử nghiệm được tạo bởi biểu đồ (1) được sử dụng)

Khi bạn có vảy Sber. Sử dụng Ab Initio với Hive và GreenPlum

3) Biểu đồ mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset – một biểu đồ được tạo bởi MDW để cập nhật dần dần bảng của chúng tôi trong 10 luồng song song bằng cách sử dụng một phần dữ liệu mới nhận được (delta) được tạo bởi biểu đồ (1)

Khi bạn có vảy Sber. Sử dụng Ab Initio với Hive và GreenPlum

Hãy chạy đoạn script dưới đây ở chế độ NRT:

  • tạo ra 6 dòng thử nghiệm
  • thực hiện tải ban đầu chèn 6 hàng kiểm tra vào một bảng trống
  • lặp lại tải xuống tăng dần 5 lần
    • tạo ra 6 dòng thử nghiệm
    • thực hiện chèn tăng dần 6 hàng kiểm tra vào bảng (trong trường hợp này, thời gian hết hạn valid_to_ts được đặt thành dữ liệu cũ và dữ liệu gần đây hơn có cùng khóa chính sẽ được chèn)

Kịch bản này mô phỏng phương thức hoạt động thực tế của một hệ thống kinh doanh nhất định - một phần khá lớn dữ liệu mới xuất hiện theo thời gian thực và ngay lập tức được đưa vào GreenPlum.

Bây giờ hãy xem nhật ký của tập lệnh:

Bắt đầu Create_test_data.input.pset lúc 2020-06-04 11:49:11
Hoàn thành Create_test_data.input.pset lúc 2020-06-04 11:49:37
Bắt đầu mdw_load.day_one.current.dev42_1_db_usl_testing_subj_org_finval.pset lúc 2020-06-04 11:49:37
Hoàn thành mdw_load.day_one.current.dev42_1_db_usl_testing_subj_org_finval.pset lúc 2020-06-04 11:50:42
Bắt đầu Create_test_data.input.pset lúc 2020-06-04 11:50:42
Hoàn thành Create_test_data.input.pset lúc 2020-06-04 11:51:06
Bắt đầu mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset lúc 2020-06-04 11:51:06
Hoàn thành mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset lúc 2020-06-04 11:53:41
Bắt đầu Create_test_data.input.pset lúc 2020-06-04 11:53:41
Hoàn thành Create_test_data.input.pset lúc 2020-06-04 11:54:04
Bắt đầu mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset lúc 2020-06-04 11:54:04
Hoàn thành mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset lúc 2020-06-04 11:56:51
Bắt đầu Create_test_data.input.pset lúc 2020-06-04 11:56:51
Hoàn thành Create_test_data.input.pset lúc 2020-06-04 11:57:14
Bắt đầu mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset lúc 2020-06-04 11:57:14
Hoàn thành mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset lúc 2020-06-04 11:59:55
Bắt đầu Create_test_data.input.pset lúc 2020-06-04 11:59:55
Hoàn thành Create_test_data.input.pset lúc 2020-06-04 12:00:23
Bắt đầu mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset lúc 2020-06-04 12:00:23
Hoàn thành mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset lúc 2020-06-04 12:03:23
Bắt đầu Create_test_data.input.pset lúc 2020-06-04 12:03:23
Hoàn thành Create_test_data.input.pset lúc 2020-06-04 12:03:49
Bắt đầu mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset lúc 2020-06-04 12:03:49
Hoàn thành mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset lúc 2020-06-04 12:06:46

Hóa ra hình ảnh này:

Đồ thị
Thời gian bắt đầu
Thời gian kết thúc
Chiều dài

Tạo_test_data.input.pset
04.06.2020 11: 49: 11
04.06.2020 11: 49: 37
00:00:26

mdw_load.day_one.current.
dev42_1_db_usl_testing_subj_org_finval.pset
04.06.2020 11: 49: 37
04.06.2020 11: 50: 42
00:01:05

Tạo_test_data.input.pset
04.06.2020 11: 50: 42
04.06.2020 11: 51: 06
00:00:24

mdw_load.regular.current.
dev42_1_db_usl_testing_subj_org_finval.pset
04.06.2020 11: 51: 06
04.06.2020 11: 53: 41
00:02:35

Tạo_test_data.input.pset
04.06.2020 11: 53: 41
04.06.2020 11: 54: 04
00:00:23

mdw_load.regular.current.
dev42_1_db_usl_testing_subj_org_finval.pset
04.06.2020 11: 54: 04
04.06.2020 11: 56: 51
00:02:47

Tạo_test_data.input.pset
04.06.2020 11: 56: 51
04.06.2020 11: 57: 14
00:00:23

mdw_load.regular.current.
dev42_1_db_usl_testing_subj_org_finval.pset
04.06.2020 11: 57: 14
04.06.2020 11: 59: 55
00:02:41

Tạo_test_data.input.pset
04.06.2020 11: 59: 55
04.06.2020 12: 00: 23
00:00:28

mdw_load.regular.current.
dev42_1_db_usl_testing_subj_org_finval.pset
04.06.2020 12: 00: 23
04.06.2020 12: 03: 23
00:03:00

Tạo_test_data.input.pset
04.06.2020 12: 03: 23
04.06.2020 12: 03: 49
00:00:26

mdw_load.regular.current.
dev42_1_db_usl_testing_subj_org_finval.pset
04.06.2020 12: 03: 49
04.06.2020 12: 06: 46
00:02:57

Chúng tôi thấy rằng 6 dòng tăng dần được xử lý trong 000 phút, khá nhanh.
Dữ liệu trong bảng mục tiêu hóa ra được phân phối như sau:

select valid_from_ts, valid_to_ts, count(1), min(sk), max(sk) from dev42_1_db_usl.TESTING_SUBJ_org_finval group by valid_from_ts, valid_to_ts order by 1,2;

Khi bạn có vảy Sber. Sử dụng Ab Initio với Hive và GreenPlum
Bạn có thể thấy sự tương ứng của dữ liệu được chèn với thời điểm biểu đồ được khởi chạy.
Điều này có nghĩa là bạn có thể chạy tải dữ liệu tăng dần vào GreenPlum trong Ab Initio với tần suất rất cao và quan sát tốc độ chèn dữ liệu này vào GreenPlum ở mức cao. Tất nhiên, sẽ không thể khởi chạy mỗi giây một lần, vì Ab Initio, giống như bất kỳ công cụ ETL nào, cần có thời gian để “khởi động” khi khởi chạy.

Kết luận

Ab Initio hiện được sử dụng tại Sberbank để xây dựng Lớp dữ liệu ngữ nghĩa thống nhất (ESS). Dự án này liên quan đến việc xây dựng một phiên bản thống nhất về trạng thái của các đơn vị kinh doanh ngân hàng khác nhau. Thông tin đến từ nhiều nguồn khác nhau, bản sao của chúng được chuẩn bị trên Hadoop. Dựa trên nhu cầu kinh doanh, một mô hình dữ liệu được chuẩn bị và các chuyển đổi dữ liệu được mô tả. Ab Initio tải thông tin vào ESN và dữ liệu được tải xuống không chỉ được doanh nghiệp quan tâm mà còn đóng vai trò là nguồn để xây dựng siêu thị dữ liệu. Đồng thời, chức năng của sản phẩm cho phép bạn sử dụng nhiều hệ thống khác nhau làm bộ thu (Hive, Greenplum, Teradata, Oracle), giúp bạn có thể dễ dàng chuẩn bị dữ liệu cho doanh nghiệp ở các định dạng khác nhau mà nó yêu cầu.

Khả năng của Ab Initio rất rộng; ví dụ: khung MDW đi kèm giúp bạn có thể xây dựng dữ liệu lịch sử kỹ thuật và kinh doanh ngay lập tức. Đối với các nhà phát triển, Ab Initio giúp họ không phải phát minh lại bánh xe mà có thể sử dụng nhiều thành phần chức năng hiện có, về cơ bản là các thư viện cần thiết khi làm việc với dữ liệu.

Tác giả là chuyên gia trong cộng đồng chuyên nghiệp của Sberbank SberProfi DWH/BigData. Cộng đồng chuyên nghiệp SberProfi DWH/BigData chịu trách nhiệm phát triển năng lực trong các lĩnh vực như hệ sinh thái Hadoop, Teradata, Oracle DB, GreenPlum, cũng như các công cụ BI Qlik, SAP BO, Tableau, v.v.

Nguồn: www.habr.com

Thêm một lời nhận xét