Oracle to Postgres, sự trỗi dậy của bầy voi!
Bài viết được sự cho phép của tác giả Kiên Nguyễn
Nay ngồi buồn nghĩ về quãng thời gian cày bừa với các dự án convert database (từ Oracle sang Postgres). Muốn chia sẻ chút kinh nghiệm nhỏ nhoi trên mặt này tới các bạn.
Bản thân mình đã từng làm cho 2 doanh nghiệp CNTT của Nhật Bản, đã kinh qua 6 dự án Convert Database. Nhận thấy:
- Trong khoảng 5 năm trở lại đây, ngày có càng nhiều doanh nghiệp nhỏ và vừa chuyển đổi các phần mềm, ứng dụng của họ từ Oracle Database sang Postgres Database.
- Việc chuyển đổi này đa phần đến từ các dự án cũ của doanh nghiệp Nhật Bản với quy mô không quá lớn. Trường hợp này sử dụng Postgres DB là hợp lý.
- Dự án convert kiểu này thường không mấy HÀO HỨNG cho lập trình viên (khá chán).
- Công nghệ sử dụng hầu hết là JDBC, rất hiếm có dự án nào sử dụng MyBatis hay Hibernate.
Nguyên nhân của việc chuyển đổi này là từ đâu?. Không thể bỗng nhiên những doanh nghiệp Nhật (vốn yêu thích sự ổn định, sử dụng phần mềm lâu dài), lại bỗng nhiên thực hiển chuyển đổi Database (việc làm vốn dĩ tiềm ẩn nhiều rủi ro).
Bài viết này sẽ phân tích về nguyên nhân sâu xa của vấn đề này.
1. Oracle – chi phí đắt đỏ.
1.1 Named User Plus (chi phí trên từng user).
Lý do đầu tiên và cũng là lý do quan trọng nhất – ĐẮT. Oracle Database thực sự đắt đỏ, khác hẳn với Postgres Database miễn phí. Nếu ứng dụng hoặc phần mềm của chúng ta chỉ sử dụng để đáp ứng cho một lượng nhỏ người dùng, không yêu cầu realtime, … thì việc bỏ tiền để sử dụng Oracle database là khá đắt đỏ.
The price of acquisition and product support for Oracle database is high and we need to pay in addition for every extra feature we need which is having the high price. So TCO is high for Oracle database.
Giá cả để sử dụng và hỗ trợ đối với Oracle database là tương đối cao, chúng ta cần trả thêm tiền cho việc thêm tính năng. Vì vây, TCO (total cost of ownership) là tương đối cao cho việc sử dụng Oracle database.
1.2 Customer supprot và security.
Phải chăng bỏ tiền mua support là đã xong. Có vấn đề khi nào thì gọi support khi đó?. Cứ có vấn đề là rên?. Câu trả lời là ĐÉO!.
Customer support for Oracle database is not free; it is almost one-fourth of the license cost and increases 3 to 5 % annually.
Hỗ trợ khách hàng của Oracle database là đéo hề miễn phí. Cỡ khoảng 1/4 chi phí của license, và đm, tăng thêm 3%, 5% mỗi năm. Ẹc.
Trời đụ, vậy chắc OCD phải an toàn hơn rồi!. Tất nhiên, nhưng vẫn phải ói thêm tiền.
Oracle database has more security or advanced security but we need to purchase as part of the editions provided by Oracle corporation which have some features that protect the database.
Oracle database an toàn hơn nhiều, tuy nhiên chúng ta cần thanh toán thêm. Cái này như là một phần tính năng mở rộng. Thêm một vài tính năng để bảo về Database.
Thêm tính năng (advanced security) cho mỗi user sử dụng, cũng đồng nghĩa với 300 cành cọ cất cánh bay.
2. Postgres – miễn phí, ai chả thích.
Ui chà, MIỄN PHÍ. Đối với những doanh nghiệp vừa và nhỏ, tiết kiệm được chi phí phải trả cho database thật là một sự lựa chọn hoàn hảo.
Chính vì vậy, càng ngày có càng nhiều doanh nghiệp Nhật thực hiện chuyển đổi database từ Oracle sang Postgres (hầu hết là các dự án outsource – quy mô dự án không quá lớn).
As PostgreSQL is open-source there is no fee for acquisition and product support which are absolutely free of cost. We can get all the available features of PostgreSQL database for free as it is open-source.
PostgreSQL là mã nguồn mở, vì vậy không có bất cứ chi phí nào , product support cũng hoàn toàn miễn phí. Tất cả các tính năng của PostgreSQL database đều là miễn phí.
3. Sức mạnh của những chú voi.
3.1 SQL.
- Windowing functions and analytics (OVER-clause) – Hàm và thống kê (sử dụng OVER)
- Ordered sets (WITHIN GROUP) – Lựa chọn sắp xếp (với GROUP).
- Hypothetical aggregates (WITHIN GROUP).
- Recursive SQL (WITH RECURSIVE) – SQL đệ quy.
- Partial aggregates (FILTER-clause) – Tách từng phần ra thành tập hợp.
- Table sampling – Bảng mẫu.
3.1 Performance – Hiệu năng.
- Parallel queries – Queries đa luồng (nhiều câu query chạy đồng thời).
- Advanced locking mechanisms – Cơ chế khóa bổ sung cho từng bảng.
- Many different types of indexes (btree, gist, gin, hash. sp-gist, brin, bloom, etc.) – Rất nhiều kiểu indexs (sử dụng để tăng tốc query).
- Advanced cost-based query optimization – tối ưu hóa query dự.
- Tablespaces
- Partitioned tables – Tạo bảng phân vùng.
- Synchronous and asynchronous COMMIT – COMMIT dựa trên cơ chế đồng bộ và bất đồng bộ.
Tiện nói luôn chút xíu về cơ chế COMMIT Synchronous (đồng bộ) của postgres. Cơ chế này đảm bảo rằng dữ liệu trước khi thực hiện commit sẽ được lưu vào ÍT NHẤT là 2 nodes. Việc này đảm bảo không xảy ra mất mát dữ liệu. Thực hiện đồng bộ đồng thời cũng phải đánh đổi về mặt hiệu suất (phải chờ để được commit).
3.3 Security.
- Users, roles, etc.
- Full support for SSL – Hỗ trợ cho SSL (Secure Socker Layer).
- Full database encryption (with “Cybertec PostgreSQL_fde”) – Cơ chế mã hóa an toàn.
- Support for single-sign-on (ActiveDirectory, LDAP, RADIUS, etc.)
3.4 Store Procedures.
- Support for stored procedures in various languages.
- Support for custom aggregates – hỗ trợ tùy chỉnh.
- Professional triggers – sử dụng triggers (cơ chế bắt sự kiện trên table).
4. Kết luận.
Mong rằng bài viết này đã cho các bài một cái nhìn tổng quan về việc chuyển đổi cơ sở dữ liệu từ Oracle sang Postgres, nguyên nhân của việc chuyển đổi này.
Sẽ còn nhiều vấn đề để bàn về sự khác biệt giữa Oracle DB hay Postgres DB. Tuy nhiên, những vấn đề chuyên sâu này sẽ được viết ở các bài viết tiếp theo.
5. Tham khảo.
Bài viết gốc được đăng tải tại kieblog.vn
Có thể bạn quan tâm:
- Chạy Postgresql trong Docker container
- Cài đặt PostgreSQL server sử dụng Docker
- Hướng dẫn cấu hình JDK (Java) cho Jenkins
Xem thêm Việc làm IT hấp dẫn trên TopDev
- B BenQ RD Series – Dòng Màn Hình Lập Trình 4k+ Đầu Tiên Trên Thế Giới
- i iOS 18 có gì mới? Có nên cập nhật iOS 18 cho iPhone của bạn?
- G Gamma AI là gì? Cách tạo slide chuyên nghiệp chỉ trong vài phút
- P Power BI là gì? Vì sao doanh nghiệp nên sử dụng PBI?
- K KICC HCMC x TOPDEV – Bước đệm nâng tầm sự nghiệp cho nhân tài IT Việt Nam
- T Trello là gì? Cách sử dụng Trello để quản lý công việc
- T TOP 10 SỰ KIỆN CÔNG NGHỆ THƯỜNG NIÊN KHÔNG NÊN BỎ LỠ
- T Tìm hiểu Laptop AI – So sánh Laptop AI với Laptop thường
- M MySQL vs MS SQL Server: Phân biệt hai RDBMS phổ biến nhất
- S SearchGPT là gì? Công cụ tìm kiếm mới có thể đánh bại Google?