Đố án Tin học ứng dụng: Tìm hiểu Talend
PHẦN 1: TÌM HIỂU TALEND.
CHƯƠNG 1. NHÀ CUNG CẤP PHẦN MỀM TALEND.
1.1. Giới thiệu Talend.
1.1.1. Giới thiệu chung về Talend.
Talend là một nhà cung cấp phần mềm mã nguồn mở. Talend cung cấp khả
năng tích hợp dữ liệu (data integration), quản lý dữ liệu (data management),
tích hợp ứng dụng doanh nghiệp (enterprise application integration), các phần
mềm và các dịch vụ dữ liệu lớn (big data).
Talend Open Studio là một tập hợp mạnh mẽ và linh hoạt của các sản phẩm
mã nguồn mở để phát triển, thử nghiệm, triển khai, quản trị các dự án quản lý
dữ liệu và các dự án ứng dụng tích hợp. Talend cung cấp các nền tảng thống
nhất làm cho quản lý dữ liệu và tích hợp ứng dụng dễ dàng hơn bằng cách
cung cấp một môi trường thống nhất quản lý toàn bộ vòng đời của doanh
nghiệp qua các ranh giới hoạt động của doanh nghiệp.
Talend - nhà lãnh đạo toàn cầu trong hội nhập mã nguồn mở, cung cấp giải
pháp tích hợp mà thực sự mở rộng cho bất kỳ loại thách thức tích hợp, bất kỳ
khối lượng dữ liệu và bất kỳ phạm vi dự án dù đơn giản hay phức tạp. Chỉ có
số liệu đánh giá cao khả năng mở rộng của Talend, ứng dụng và quy trình kinh
doanh nền tảng tích hợp khả năng mở rộng của Talend. Talend kết hợp các dự
Talend được thành lập vào năm 2005 bởi Bertrand Diard và Fabrice Bonan và
được phát triển không ngừng đến ngày nay.
Hình 1: Lịch sử hình thành và phát triển của Talend.
Talend là nhà cung cấp mã nguồn mở thương mại đầu tiên của các phần mềm
tích hợp dữ liệu. Các nhà cung cấp khác có thể gia nhập thị trường này bao
gồm Apatar, Jitterbit, Pentaho, và SnapLogic. Các nhà cung cấp tích hợp
dữ liệu mã nguồn mở không bao gồm phần mềm AG, Ab Initio, SAS
Institute, Pervasive Software, IBM, Informatica và SAP.
Hình 2: Một số đối tác của Talend.
Talend có trụ sở chính đặt tại thành phố Redwood, California, Talend có văn
phòng tại Bắc Mỹ, châu Âu và châu Á và một mạng lưới quốc tế của các đối
tác kỹ thuật và dịch vụ. Talend có hơn 400 nhân viên tại 14 văn phòng trên 7
quốc gia.
Chuyên ngành Tin Học Ứng Dụng
2
Bộ môn Tin Học Ứng Dụng
Đố án Tin học ứng dụng: Tìm hiểu Talend
Talend Open Studio for Big Data: kết hợp công nghệ dữ liệu lớn vào một môi
trường mã nguồn mở thống nhất đơn giản hóa việc tải dữ liệu, khai thác,
chuyển đổi, xử lý dữ liệu lớn và đa dạng.
Talend Enterprise Big Data: một giải pháp tích hợp dữ liệu lớn mở rộng của
Talend Open Studio cho dữ liệu lớn với khả năng làm việc nhóm và quản lý.
Talend Platform for Big Data: mạnh mẽ, linh hoạt tích hợp dữ liệu lớn là giải
pháp chất lượng dữ liệu mà đơn giản hoá việc tải, khai thác, xử lý dữ liệu lớn
và đa dạng để bạn có thể đưa ra nhiều quyết định kịp thời hơn.
Talend Open Studio for Data Integration: một ứng dụng mã nguồn mở cho
công việc thiết kế tích hợp dữ liệu với một môi trường phát triển đồ họa, được
thiết kế để kết hợp, chuyển đổi và cập nhật dữ liệu tại các địa điểm khác nhau
trên toàn doanh nghiệp. Nó là một sản phẩm tích hợp dữ liệu của Talend cung
cấp các tích hợp mạnh mẽ, linh hoạt nên các doanh nghiệp có thể ngừng lo
lắng về cơ sở dữ liệu và các ứng dụng đang nói chuyện với nhau và thay vì tối
đa hóa giá trị của việc sử dụng dữ liệu.
Talend Enterprise Data Integration: là một sản phẩm mở rộng của Talend
Open Studio for Data Integration với việc bổ sung phân phối, hợp tác phát
triển các tính năng cũng như khả năng nắm bắt sự thay đổi dữ liệu. Trong khi
các sản phẩm Talend Open Studio được thiết kế chủ yếu cho một nhà phát
triển duy nhất làm việc trên một máy tính duy nhất, Enterprise cung cấp một
kiến trúc phân tán cho phép nhiều nhà phát triển để chia sẽ tài nguyên và kết
hợp các nỗ lực vào một dự án duy nhất.
Talend Platform for Data Management: Giải pháp quản lý dữ liệu của Talend
biến nguồn khác nhau, không thống nhất và bản sao của dữ liệu vào nguồn
đáng tin cậy của thông tin hợp nhất, vì vậy doanh nghiệp của bạn có thể đáp
ứng tốt hơn và tự tin hơn trong các quyết định hàng ngày.
Chuyên ngành Tin Học Ứng Dụng
4
án tích hợp mã nguồn mở Apache CXF, Apache Camel và Apache ActiveMQ.
Talend Enterprise ESB: là sản phẩm mở rộng của Talend Open Studio for ESB
với việc triển khai và quản lý các chức năng tiên tiến hơn.
Talend Platform for Enterprise Integration: quản lý thống nhất quy trình kinh
doanh, tích hợp ứng dụng và dữ liệu để các doanh nghiệp tăng năng suất kinh
doanh, cung cấp các dự án nhanh hơn, và chi phí vận hành thấp hơn.
c. Dòng sản phẩm tích hợp ứng dụng dựa trên nền điện toán đám mây.
Talend Platform for Hybrid Cloud: Talend Cloud là một tập hợp toàn diện,
thống nhất các ứng dụng tích hợp và các công cụ quản lý dữ liệu cho phép kết
nối nhanh chóng, điều chỉnh và quản lý, ứng dụng dựa trên đám mây và SAAS
trong một doanh nghiệp trả về kết quả nhanh hơn.
1.2. Bắt đầu với một dự án Talend.
1.2.1. Cài đặt Talend.
Tải phần mềm Talend là một công việc đơn giản, Talend được tải về từ website
www.talend.com. Tại đây bạn có thể tải về phiên bản bạn cần hoặc tải về phiên
bản hoàn thiện nhất của Talend là version 5.5.1, tuy nhiên đã có bản dùng thử
5.6.0. Talend có thể chạy được trên các hệ điều hành khác nhau như:
Windows, OSX, Unix and Linux.
Chuyên ngành Tin Học Ứng Dụng
5
Bộ môn Tin Học Ứng Dụng
Đố án Tin học ứng dụng: Tìm hiểu Talend
Người dùng có hai cách lựa chọn cài đặt Talend: cài đặt vào windows hoặc sử
Open một dự án: sau khi tạo mới một dự án, click Open để mở dự án vừa tạo.
Talend yêu cầu bạn kết nối với TalendFore, tuy nhiên bạn có thể click Skip để bỏ
quả bước này.
Chuyên ngành Tin Học Ứng Dụng
7
Bộ môn Tin Học Ứng Dụng
Đố án Tin học ứng dụng: Tìm hiểu Talend
Xóa một dự án: Ấn vào button Delete để xóa một dự án hiện có, một hộp thoại
được mở ra cho phép chúng ta lựa chọn xóa đồng thời một hoặc nhiều dự án.
Import một dự án: Nhấn button Import, hộp thoại Import xuất hiện.
Chuyên ngành Tin Học Ứng Dụng
8
Bộ môn Tin Học Ứng Dụng
Đố án Tin học ứng dụng: Tìm hiểu Talend
Talend cung cấp cho bạn hai lựa chọn Import: Import project as và Import
several projects.
Talend Job là một Class Java đơn. Job ghi nhớ các giá trị điều này giúp cho việc
hiểu công việc của bạn như thế nào, phạm vi thông tin có sẵn cho bạn cũng như
phát triển thông tin đó.
Job bao gồm một hoặc nhiều Job (SubJobs). Một SubJob là một thành phần hoặc
một số thành phần được kết hợp bởi dòng dữ liệu (dataflow). Một Job sẽ có ít nhất
một SubJob.
Tạo mới một Talend Job: Để tạo ra một Talend Job mới, right-click Job
Designs trong khung Talend Repository Browser và lựa chọn Create Job từ
Context Menu.
Chuyên ngành Tin Học Ứng Dụng
10
Bộ môn Tin Học Ứng Dụng
Đố án Tin học ứng dụng: Tìm hiểu Talend
Sau khi click Create Job, một hộp thoại tạo Job mới xuất hiện. Chúng ta thực hiện
đặt tên Job mới tương tự hộp thoại Create Project.
Chú ý: khi tạo tên Job mới phải đảm bảo rằng tên này không tồn tại trong Project
của bạn ngay cả khi chúng đã bị xóa vào trong Recycle bin.
Deleting and Restore: để xóa một Job, right-click vào Job cần xóa và chọn hành
động Delete. Tất cả các Job đã xóa đều được lưu trữ vào Repository Recycle bin,
tại thùng rác của Talend ta có thể thực hiện phục hồi lại Job vừa xóa bằng cách
Restore hoặc thực hiện các thao tác khác.
Chuyên ngành Tin Học Ứng Dụng
Đố án Tin học ứng dụng: Tìm hiểu Talend
Click chọn Folder Technical (click button show nếu bạn muốn xem chi tiết
Folder Technical). Click button
.
Chọn Ok để thoát khỏi hộp thoại Project Settings.
Chuyên ngành Tin Học Ứng Dụng
13
Bộ môn Tin Học Ứng Dụng
Đố án Tin học ứng dụng: Tìm hiểu Talend
CHƯƠNG 2 . METADATA VÀ SCHEMAS.
Trong phần này chứa một cuộc thảo luận chi tiết về Metadata, Talend Schemas
và công thức để làm nổi bật một số ít các tính năng được sử dụng hoặc ít được biết
đến có liên quan với Schemas, cùng với các tính năng thường được sử dụng,
chẳng hạn như:
Hand-cranking a built-in schema.
Propagating schema changes.
Creating a generic schema from existing metadata.
Cutting and pasting schema information.
Chuyên ngành Tin Học Ứng Dụng
14
Báo cáo phân tích ảnh hưởng có thể được tạo ra cho thấy nơi Repository
schema đang được sử dụng trong dự án của bạn. Điều này cho thấy tác động
Chuyên ngành Tin Học Ứng Dụng
15
Bộ môn Tin Học Ứng Dụng
Đố án Tin học ứng dụng: Tìm hiểu Talend
của thay đổi nhiều đánh giá chính xác hơn khi lập kế hoạch thay đổi bất kỳ
nguồn dữ liệu cơ bản nào.
Tóm lại, schema không gắn với một nguồn cụ thể, để bạn có thể được sử dụng như
một nguồn tài nguyên chia sẽ trên nhiều loại nguồn dữ liệu hoặc họ có thể sử dụng
để định nghĩa nguồn dữ liệu được tạo ra, chẳng hạn như đầu ra từ các truy vấn
SQL.
2.1 . Hand-cranking a built-in schema.
Trong phương pháp này, tôi đều có một tập tin CSV mà không có một dòng tiêu đề
và yêu cầu để tạo ra một schema cho dữ liệu. Đây là một công thức cơ bản mà hầu
hết độc giả đều quen thuộc: tuy nhiên, nó cung cấp một khuôn khổ cho các cuộc
thảo luận về một số nguyên tắc quan trọng của Talend schema.
Ví dụ như tôi định nghĩa mẫu tin dưới đây:
John Smith,27/11/1990,2012-01-10 10:24:54.953
Như bạn có thể thấy định nghĩa mẫu tin bao gồm: name, Date of birth, timestamp
và age. Trong đó age có gái trị null.
Để tạo được nó như thế nào? Để tạo được mẫu tin đó các bạn làm như sau:
Tạo
một
Job
schema không còn phù hợp.
Talend cung cấp cơ chế đối thoại bên trong schema có một số xử lý từ việc
đảm bảo rằng những thay đổi được đồng hóa vào tất cả các Jobs.
Để thấy được sự thay đổi ta thực hiện ví dụ sau:
Mở Talend Jobs jo_cook_ch02_0010_propagateSchema có cấu trúc như
hình dưới.
Chuyên ngành Tin Học Ứng Dụng
17
Bộ môn Tin Học Ứng Dụng
Đố án Tin học ứng dụng: Tìm hiểu Talend
Sau đó từ metadata palette, bạn mở Generic schema
sc_cook_0010_genericCustomer. Thêm một trường mới emailAddress như
hình dưới đây:
Click Finish để lưu schema, sau đó click Yes để áp dụng những thay đổi.
Click Ok để hoàn tất, bạn sẽ nhìn thấy lỗi như hình dưới.
Mở tFileOutputDelimited và click chọn Edit schema (…) button.
Như bạn thấy bảng bên trái khác với bảng bên phải. chọn emailAddress và
click
button để đưa về bảng bên trái.
Chuyên ngành Tin Học Ứng Dụng
19
Bộ môn Tin Học Ứng Dụng
Đố án Tin học ứng dụng: Tìm hiểu Talend
Một hộp thoại Save As xuất hiện, lưu với tên sau
sc_cook_0020_genericCustomer.xml.
Tiếp theo, chúng ta tạo mới một generic schema bằng cách right-click vào
generic schema và lựa chọn Create generic schema from xml.
Sau đó lựa chọn file xml đã lưu, đặt tên cho generic schema mới là
sc_cook_0020_genericCustomer2.
Talend lưu trữ schema trong các tập tin định dạng XML, không phụ thuộc vào
loại schema. Điều này có nghĩa schema có thể dễ dàng chuyển đổi giữa các
loại, giữa xây schema tự xây dựng hoặc schema repository.
2.4 . Cutting and pasting schema information.
Kỹ thuật này tiết kiệm thời gian thực hiện, nhưng không phải lúc nào cũng rõ
ràng và ngay lập tức, bởi vì schema không có một lựa chọn right-click.
Ví dụ: copy Job jo_cook_ch02_0020_builtInSchema và đổi tên thành jo_cook_
ch02_0030_copySchema.
Kéo thả tFileOutputExcel component từ cửa sổ palette bên phải vào.
Mở tFileOutputDelimited và mở Edit schema.
Click chọn và nhấn Ctrl + A để lựa chọn tất cả các cột.
Nhấn Ctrl+ C để copy tất các các cột được chọn.
Mở tFileOutputExcel component và chọn Edit schema
(tFileOutputExcelcomponent đang rỗng).
Nhấn Ctrl + V để dán các cột.
Talend cho phép bạn sử dụng các phím tắt để copy hoặc dán thông tin của các
cột trong schema.
chính là thành phần trung tâm của bất kỳ việc chuyển đổi nào của Talend Job.
Các tMap component có khả năng chuyển đổi rộng lớn và do đó trở thành công
cụ tích hợp dữ liệu cho nhiều nhà phát triển lựa chọn. Trong đó tMap
component có khả năng:
Thêm và xoá các cột.
Áp dụng quy tắc chuyển đổi một hoặc nhiều cột.
Lọc dữ liệu đầu vào và đầu ra.
Kết hợp dữ liệu từ nhiều nguồn vào một hoặc nhiều kết quả đầu ra.
Phân chia nguồn dữ liệu thành nhiều kết quả đầu ra.
Để thấy rỏ các chức năng chuyển đổi của tMap chúng ta thực hiện 2 ví dụ sau:
Ví dụ 1: Trong ví dụ này ta sẽ tạo một Job để đọc dữ liệu từ một file và ghi kết quả
vào một file mới.
Bước 1: Tạo file Employee.csv có cấu trúc như sau:
Id;Name;Department;StartDate;Salary
1;John Smith;Sales;01-Mar-2012;20000
2;Jane Roberts;Sales;05-Jun-2010;22500
3;Paul Jones;Marketing;22-Jun-2010;30000
4;Mark Jacobs;Sales;05-Apr-2010;22000
5;Mary Stephenson;IT;13-Sep-2009;22500
6;Steve Roberts;IT;14-Dec-2011;18000
7;Margaret Johnson;CEO;30-Feb-2011;41000
8;Paul Harrison;Sales;07-Nov-2009;19500
9;Peter Pedlar;Admin;22-Dec-2012;21000
10;Douglas Peterson;Admin;28-May-2011;21500
Bước 2: Tiếp theo, chúng ta tạo một Talend Job mới với tên MyFristTalendJob.
Một cửa sổ làm việc trống với Job của bạn được tạo ra.
Bước 3: Sau đó, ta thêm các Components vào cửa sổ thiết kế của bạn bằng cách
lựa chọn chúng từ Components Palette. Trong cửa sổ Palette tìm đến 3
components tFileInputDelimited, tMap và tFileOutputDelimited.
Bộ môn Tin Học Ứng Dụng
Đố án Tin học ứng dụng: Tìm hiểu Talend
Chú ý: File name/Stream là đường dẫn tới file dữ liệu đầu vào cho việc xử lý dữ
liệu, ở đây file Input là file Employee.csv. Thay đổi giá trị Header bằng 1 tức là
giữ lại tiêu đề của file Input, ngược lại Header bằng 0 sẽ không lấy tiêu đề của file
Input cho quá trình xử lý dữ liệu.
Bước 5: Định nghĩa Schema cho EmployeeInputFile: chọn EmployeeInputFile
và chọn component setting trong cửa sổ bên dưới. Sau đó chọn
bên phải Edit
Schema. Talend mở ra cho bạn hộp thoại mới.
Tại hộp thoại này ta có thể: Thêm, xóa, định nghĩa khóa chính, kiểu dữ liệu… cho
các trường (các trường này là các cột dữ liệu trong file Input của chúng ta).
Ta thêm mới các trường và định nghĩa kiểu dữ liệu của các trường giống như sau:
Chuyên ngành Tin Học Ứng Dụng
24
Bộ môn Tin Học Ứng Dụng
Đố án Tin học ứng dụng: Tìm hiểu Talend
Bước 6: Kết nối EmployeeInputFile với MapEmployee: Bây giờ bạn thực hiện
kết nối 2 components. Right-click lên EmployeeInputFile và chọn Row -> Main.
Bạn sẽ nhìn thấy một đường thẳng kéo từ component được lựa xuất hiện theo con
trỏ chuột, di chuyển con trỏ đến MapEmployee và chọn nó.