PostgreSQL: Indexes

Chỉ mục (indexes) là một cách thông dụng để cải thiện hiệu suất của cơ sở dữ liệu. Chỉ mục cho phép máy chủ cơ sở dữ liệu tìm kiếm và truy xuất các hàng cụ thể nhanh hơn nhiều so với khi không có chỉ mục. Tuy nhiên, chỉ mục cũng làm tăng chi phí tổng thể của hệ thống cơ sở dữ liệu, do đó nên sử dụng chỉ mục một cách hợp lý.

Continue reading

PostgreSQL Transaction Isolation:

PostgreSQL là một hệ quản trị cơ sở dữ liệu phổ biến với nhiều tính năng mạnh mẽ. Trong đó, Transaction Isolation là một tính năng quan trọng giúp đảm bảo tính toàn vẹn của dữ liệu trong khi thực hiện các thao tác cập nhật.

Transaction Isolation cho phép các thao tác cập nhật cơ sở dữ liệu được thực hiện đồng thời mà không bị ảnh hưởng bởi các thao tác cập nhật khác đang được thực hiện song song. Nó đảm bảo rằng một transaction sẽ không đọc hoặc cập nhật dữ liệu được đang được sử dụng bởi một transaction khác.

PostgreSQL hỗ trợ 4 cấp độ Transaction Isolation: Read Uncommitted, Read Committed, Repeatable Read, và Serializable. Mỗi cấp độ đều có mức độ bảo đảm tính toàn vẹn dữ liệu khác nhau, từ ít bảo đảm đến đầy đủ bảo đảm. Tùy thuộc vào tính chất và yêu cầu của ứng dụng, người dùng có thể lựa chọn cấp độ phù hợp để đảm bảo tính toàn vẹn của dữ liệu trong khi thực hiện các thao tác cập nhật.

Continue reading

Airflow: How to setup ETL using Airflow and Docker

This is article, I showed you how to set up an ETL data pipeline project using Airflow. The project is implemented in Docker so you don’t need to care too much about setup working env. Only one requirement is Docker, in my laptop it is docker version `Docker version 20.10.17`.

Requirement of this tutorial is: automation extract data from stock market API, in this case Yahoo Finance, apply some basic manipulation such as: average of last 5 days, average volume of last 5 days and generate daily report in PDF file.

Continue reading

Periodic Tasks using Celery Beat

Celery Beat

Celery, since version 3.1, is already  integrated with Django. How to set up Celery in Django, please follow the details here. [https://docs.celeryq.dev/en/stable/django/first-steps-with-django.html]

In this article, I will show you how to create a Django project using Celery Beat to execute periodic tasks. The project is containerisation using Docker.

Continue reading