+2

Tạo và kết nối SQL trên Cloud

Sự khác biệt giữa SQL Server và SQL Server Management Studio (SSMS)

Ở Việt Nam, đa phần các trường thường dạy môn Cơ Sở Dữ Liệu (Database) thông qua MS SQL Server. Việc cài đặt SQL Server là một … cực hình với nhiều người, vì vừa lâu, vừa nặng, lâu lâu còn hay bị conflict với Visual Studio v…v

Thật ra, mỗi lần cài đặt MS SQL Server, máy bạn sẽ được cài tận 2 thứ:

  • SQL Server: Đây là database server, cho phép chúng ta lưu trữ, query dữ liệu.
  • SQL Server Management Studio (SSMS): Đây là công cụ cho phép developer/sysadmin kết nối tới database để quản trị, theo dõi, query, phân quyền v…v

Nếu ví SQL Server là cái kho chứa dữ liệu, thì SSMS chính là hệ thống điều khiển kho, cho phép ta theo dõi hoạt động trong kho, điều hàng hóa ra vào kho.

Trong thực tế, các database server chỉ cài SQL Server thôi. Còn lại, sysadmin, developer, data engineer sẽ cài SSMS ở máy mình để kết nối, query, lấy dữ liệu từ data nằm trong SQL Server ở máy khác.

Tạo Database trên Cloud

Chúng ta cùng bắt tay vào tạo thôi nào.

  1. Từ menu trái, bấm Create a Resource và chọn Database

  2. Điền thông tin đầy đủ, chọn resource group. Nếu chưa có Database Server, bạn bấm vào Create new để tạo Server.

Server name là URL để sau này bạn kết nối tới Database Server đó. Nhớ lưu login và mật khẩu lại để sau này còn dùng mà kết nối. Một database server có thể chứa nhiều database: Ví dụ bạn có database web bán hàng, database doanh số, database analytic, bạn có thể để tụi nó chung 1 database server cũng ko sao cả.

  1. Sau khi đã tạo server, hãy chọn thiết lập cho DB của bạn. Để đơn giản, mình không dùng Elastic Pool, chọn gói Basic cho rẻ (5$ / tháng) thôi.

  2. Sau đó, bạn chỉ việc bấm “Create” và ngồi chờ thôi. Sau 3 phút là DB đã được tạo xong, nhanh hơn hẳn ngồi 60p chờ cài.

  3. Sau khi thấy notification, bạn bấm Go to resource để xem Database Server mình vừa tạo ra.

  1. Database Server đã được tạo thành công, giờ kết nối vào quẩy

Kết nối thử tới Database trên Cloud

Sau khi đã có DB, chúng ta chỉ việc kết nối thử vào chạy query.

1. Cài đặt Management Tool

Nếu các bạn xài Windows, các bạn có thể cài SQL Server Management Studio. Nếu dùng Mac/Linux/Ubuntu, các bạn có thể xài Azure Data Studio.

2. Thêm Client IP và Firewall

Vì lý do bảo mật, chỉ các máy ảo/app service nằm chung resource group/virtual network với database server mới có thể kết nối tới server đó.

Do vậy, bạn phải thêm IP của mình vào whitelist để không bị chặn. Chỉ cần bấm “Set server firewal” ở góc trên bên trái, bấm “Add Client IP” sau đó Save là ok.

3. Kết nối tới database.

Điền Server Name, login và password mà mình đã khai báo lúc tạo DB.

Giả sử bạn đang ở ngoài quán net, ko cài Management Tool thì sao? Không sao cả, gần đây Azure đã có chức năng Query Editor ngay trên Dashboard luôn

Ta có thể xem table, query, edit dữ liệu một cách dễ dàng.

4. Lấy connection string cho ứng dụng

Tất nhiên, database server thì phải có ứng dụng để đọc / ghi dữ liệu. Azure còn có một chức năng khá tiện lợi để lấy Connection String cho ứng dụng của bạn.

Chỉ cần bấm vào Connection String bên menu trái, các bạn sẽ lấy được connection string cho app C#, Java, PHP v..v

Với database này, các bạn có thể dễ dàng chia sẻ connection để bạn bè, đồng nghiệp trong team cùng kết nối tới để dev app. Không còn lo cảnh mỗi đứa một database, không có data để test hoặc mỗi lần sửa database phải chạy script lại nữa.

Tạm kết

Ta vừa tìm hiểu về bắt tay vào tạo Database trên Azure. Thay vì phải ngồi cài đủ thứ từ Visual Studio tới MS SQL, chỉ cần làm theo hướng dẫn là sau 5p đã có cái Database để cả team code chung rồi!

Database này cũng khá rẻ, chỉ khoảng 7-8$ / tháng. Khi hệ thống phát triển to lên, chỉ việc tăng DTU là database sẽ chạy nhanh hơn, chịu tải được nhiều hơn ngay (dĩ nhiên là tốn tiền hơn).

Ngoài file ra, đôi khi hệ thống còn phải chứa rất nhiều file như: ảnh, text, document do người dùng up lên. Các dữ liệu này có thể nặng vài trăm MB tới hàng chục TB.

Tham khảo


All Rights Reserved

Viblo
Let's register a Viblo Account to get more interesting posts.