
Xây dựng một kho dữ liệu với Hive

Xây dựng kho dữ liệu dựa vào ngân sách
Kho dữ liệu đã thực sự là một trận chiến đang diễn ra giữa các tổ chức trong nhiều
năm. Làm thế nào để bạn xây dựng nó? Những dữ liệu của bạn có thể tích hợp
không? Bạn có nên sử dụng Kimball hoặc Inmon, nhà máy doanh nghiệp thông
tin (CIF), hoặc siêu thị dữ liệu? Danh sách có thể kéo dài thêm theo ngày, thậm chí
nhiều thập kỷ. Với dữ liệu lớn, các câu hỏi trở thành phức tạp hơn, chẳng hạn như
là một kho dữ liệu đã đủ hay chưa? Câu trả lời nằm ở các doanh nghiệp. Người ta
cho rằng Hive là kho dữ liệu Hadoop. Dù trên một mức độ nào đó là đúng, đôi khi
nó cũng là một cái gì đó của một nhận định sai. Tuy nhiên, đôi khi bạn phải sử
dụng các công cụ có sẵn, và vì thế, Hive có thể được coi là một kho dữ liệu.
Ba đối tượng để tiếp cận một doanh nghiệp. Đối tượng đầu tiên — kho dữ liệu
(data warehouse) — là rất lớn: nó mang đến lịch sử và kinh nghiệm, đồng thời là
một trải nghiệm tốt. Nhưng nó cũng cồng kềnh và tốn kém theo rất nhiều cách
khác nhau, và người ta đang mệt mỏi với các chi phí để cho các kết quả khác nhau.
Apache Hadoop sa vào lối cũ và rút lại tuyên bố muốn tiếp quản thị trường. Nó rao
giảng về dữ liệu lớn, vận tốc, khối lượng, đa dạng, và một loạt thứ v khác mà
không có nhiều ý nghĩa nào khác ngoài một kế hoạch tiếp thị. Nó đưa ra các phân
tích, dự đoán, và nhiều hơn nữa. Và nó rẻ. Mọi người dừng lại và lắng nghe.

Apache Hive ra đời, nhưng không phải để cố gắng đánh bại các đối tượng khác. Nó
muốn làm việc với Hadoop, nhưng không giống như Hadoop, nó không muốn gạt
các kho dữ liệu đi sang một phía. Hive không những có khả năng kho dữ liệu, mà
còn có khả năng phân tích kinh doanh thông minh (BI) và hạn chế phân tích. Nó
không những có khả năng cơ sở dữ liệu, mà còn có hệ quản trị cơ sở dữ liệu
(RDBMS) và ngôn ngữ truy vấn cấu trúc (SQL) hạn chế. Nó mở và thân thiện. Nó
liên quan đến các kho dữ liệu. Nó liên quan đến các RDBMS. Nhưng nó không bao
giờ xuất hiện và tuyên bố rằng nó nhiều hơn những gì trông thấy. Hadoop ngắt và
tuyên bố nó là kho dữ liệu cho thế giới Hadoop. Hadoop dường như đã đưa ra đại
diện tiếp thị hay nhất của mình, và những gì rút ra từ một cuộc trò chuyện đơn giản
trở thành Hive và Hadoop cứu rỗi cả thế giới. Điều đó thật hấp dẫn, thú vị. Nhưng
có thật hay không? Hãy tạm coi là như vậy.
Kho dữ liệu
Xây dựng một kho dữ liệu thực sự có thể là một dự án lớn. Có các thiết bị khác
nhau, phương pháp và lý thuyết. Giá trị thông thường thấp nhất là bao nhiêu? Thực
tế như thế nào, và những gì các đối tượng liên quan ngược trở lại các sự kiện đó?
Và làm thế nào để bạn kết hợp, làm cho phù hợp, hợp nhất, và tích hợp các hệ
thống mà có thể đã có từ nhiều thập kỷ trước với các hệ thống chỉ mới thành hiện
thực cách đây vài tháng? Đây là trước dữ liệu lớn và Hadoop. Thêm phi cấu trúc,

dữ liệu, NoSQL và Hadoop vào hỗn hợp, và đột nhiên bạn có một Dự án tích hợp
dữ liệu lớn trong tay bạn.
Cách đơn giản nhất để mô tả một kho dữ liệu là chuyển nó thành các lược đồ sao,
sự kiện, và kích thước. Làm thế nào để bạn tạo ra những yếu tố thực sự là tùy thuộc
vào bạn — cho dù đó là thông qua cơ sở dữ liệu dàn dựng; chiết xuất, chuyển đổi,
quá trình tải, hoặc tích hợp chỉ số phụ ngay lập tức. Chắc chắn, bạn có thể xây
dựng một kho dữ liệu với các lược đồ sao, sự kiện, và kích thước, sử dụng Hive
như công nghệ cốt lõi, nhưng nó sẽ không được dễ dàng. Bên ngoài thế giới
Hadoop, nó trở thành một thách thức lớn hơn. Hive, hiểu rộng ra là sự tích hợp,
chuyển đổi, công cụ tra cứu nhanh chóng so với một kho dữ liệu hợp lệ. Giản đồ có
thể nói kho dữ liệu, nhưng tính hữu dụng thậm chí không nói RDBMS. Vậy thì tại
sao lại đi sử dụng nó?
Thế nào là một giản đồ hình sao
Hãy tưởng tượng một ngôi sao — một trung tâm và vài bàn tay chỉ về những
hướng khác nhau. Trung tâm đó như là nhịp tim, hay còn gọi là fact table (bảng
thực tế). Tất cả bàn tay chỉ về những kích thước khác nhau. Nhiều kho chứa dữ liệu
cũng có một bảng thực tế và có rất nhiều hướng.

Một bảng thực tế bao gồm bất kì một loại dữ liệu nào bạn có thể cân hoặc đếm. Ví
dụ, bạn có một bảng thống kê về bóng chày như điểm số, số cú đánh quyết định,
kết quả trận đấu, v.v.... Bạn có thể tính toán, cộng, trừ hoặc nhân các cột với nhau.
Chiều (Dimensions) phụ thuộc nhiều vào mẫu. Ví dụ, bạn có chiều thông tin của
người chơi, chiều thời gian và ngày, v.v.... Bạn không cần phải tính toán hay cân
các cột trong các chiều đó.
Trong ví dụ này, chìa khóa kết nối các bảng có kích thước khác nhau để thành một
bảng thực tế là playerID.
Đơn giản chỉ cần đặt, đôi khi, bạn phải sử dụng những công cụ đặt trước mặt bạn.
Bất kì người nào hoạt động trong lĩnh vực IT ở bất kì khoảng thời gian nào có thể
nói rằng công cụ phù hợp cho một công việc không phải lúc nào cũng sẵn có. Hay
các công cụ phù hợp lúc nào cũng sẵn có, nhưng trước hết chúng ta phải cân nhắc
đến yếu tố chi phí. Đôi khi yếu tố chính trị của một công ty cũng đóng vai trò rất
lớn. Dù bất kì lí do nào, hầu hết chúng ta đều đang đang băn khoăn nơi nào cần
phải xây dựng, thiết kế và phát triển cách sử dụng công cụ để đạt hiệu quả nhất với
công việc.
Tôi đã tham gia một số lượng lớn các dự án, chúng tôi phải sử dụng Hive như một
cơ sở dữ liệu, như một kho chứa dữ liệu và như một hệ thống thay đổi từ từ. Đó là

