Trung  Nguyen

Trung Nguyen

1655983080

Cơ Sở Dữ Liệu Azure SQL So Với Cơ Sở Dữ Liệu Azure Cosmos

Gần đây bạn có bắt đầu phát triển hoặc chuyển một ứng dụng sang Microsoft Azure không? Nếu vậy, một trong những điều bạn có thể phải quyết định là giải pháp cơ sở dữ liệu bạn muốn sử dụng. Đám mây Microsoft cung cấp nhiều tùy chọn, với hai tùy chọn phổ biến nhất là Cơ sở dữ liệu Azure SQL (và hai anh em của nó, Azure SQL Managed Instances và SQL Server trên Azure VMs) và Azure Cosmos DB.

Gần đây, tôi đã so sánh hai lựa chọn thay thế này cho ứng dụng của mình. Tôi đã có được một số hiểu biết mà tôi muốn chia sẻ với độc giả của mình. Trước tiên, chúng ta hãy xem xét cả hai sản phẩm một cách riêng biệt và xem chúng cung cấp những tính năng nào.

Cơ sở dữ liệu Azure SQL

Azure SQL là SQL Server của Microsoft cung cấp trên Azure. Có ba dịch vụ liên quan đến Azure SQL để bạn lựa chọn:

  • Cơ sở dữ liệu Azure SQL
  • Phiên bản Azure SQL Managed
  • Máy chủ SQL trên máy ảo Azure

Cơ sở dữ liệu Azure SQL là dịch vụ “được quản lý” nhiều nhất trong số ba dịch vụ. Nó là một PaaS cung cấp cho phép bạn thiết lập SQL Server nhanh chóng và dễ dàng. Hầu hết các tác vụ quản trị, bao gồm sao lưu, cập nhật và giám sát được thực hiện cho bạn. Bạn cũng không cần phải quản lý cơ sở hạ tầng bên dưới.

Có nhiều cấp dịch vụ để lựa chọn, bao gồm một tùy chọn cơ sở dữ liệu duy nhất với bộ nhớ có thể định cấu hình và máy tính, tùy chọn nhóm đàn hồi cho phép bạn chia sẻ tài nguyên giữa nhiều cơ sở dữ liệu cũng như tùy chọn không máy chủ có thể mở rộng tài nguyên của bạn một cách linh hoạt tùy thuộc vào việc sử dụng.

SQL Server trên Azure VMs chỉ cho phép bạn chạy phiên bản SQL Server trên máy ảo Azure được cung cấp của riêng bạn. Điều này có nghĩa là bạn có toàn quyền kiểm soát mọi khía cạnh của việc triển khai. Điều này cũng có nghĩa là bạn sẽ cần quan tâm đến hầu hết các tác vụ quản trị mà bạn đã quen thực hiện trên giải pháp tại chỗ của mình.

Azure SQL Managed Instance là một loại kết hợp giữa hai loại này. Một mặt, nó cho phép bạn chuyển cơ sở dữ liệu SQL Server tại chỗ của mình lên đám mây một cách liền mạch. Mặt khác, nó mang lại cho bạn nhiều lợi thế của đám mây, bao gồm cải thiện bảo mật, tự động vá lỗi, cập nhật phiên bản và sao lưu tự động.

Vì Azure SQL hầu hết tương thích với SQL Server, nó cũng cung cấp các đảm bảo giao dịch (ACID) giống như sản phẩm tại chỗ. Do những đảm bảo mạnh mẽ này, việc mở rộng quy mô bằng cách thêm nhiều phiên bản máy chủ hầu như chỉ giới hạn ở các bản sao chỉ đọc. Điều này cũng đúng với tính năng sao chép địa lý của Azure SQL.

Định giá cho Cơ sở dữ liệu Azure SQL dựa trên máy tính và bộ nhớ bạn yêu cầu (vCores) cũng như bộ nhớ cục bộ và bộ nhớ sao lưu mà bạn định cấu hình. Nhìn chung, giá cả có vẻ dễ hiểu.

Cơ sở dữ liệu Azure Cosmos

Cosmos DB là cung cấp NoSQL trên Azure. Nó được thiết kế từ đầu để hỗ trợ khả năng mở rộng cực cao, hoàn toàn bao hàm khái niệm về tính nhất quán cuối cùng. Các ứng dụng mục tiêu chính là IoT và các ứng dụng đám mây toàn cầu. Để đạt được điều này, Cosmos DB cung cấp các mức nhất quán khác nhau, các phương pháp truy cập dữ liệu (API) cũng như các tùy chọn mở rộng quy mô.

Vì Cosmos DB là một cơ sở dữ liệu NoSQL, nó thường tuân thủ tốt với cách dữ liệu được ứng dụng của bạn sử dụng. Ví dụ: một “item” có thể được chèn vào cơ sở dữ liệu dưới dạng tài liệu JSON và đầu ra của truy vấn cũng là tài liệu JSON. Cơ sở dữ liệu và vùng chứa được sử dụng làm không gian tên trên các mục có chức năng bổ sung nhất định.

Để hỗ trợ mở rộng quy mô theo chiều ngang, Cosmos DB sử dụng nhiều cơ chế. Đầu tiên, Cosmos DB phân vùng từng vùng chứa theo một khóa phân vùng. Các phân vùng này được tự động trải rộng trên các nút vật lý. Ngoài ra, phân phối dữ liệu toàn cầu đạt được bằng cách triển khai dữ liệu của bạn trên nhiều khu vực Azure. Điều này làm giảm độ trễ và tăng khả năng phản hồi trên toàn thế giới. Nó cũng cung cấp một chuyển đổi dự phòng trong thời gian mất điện khu vực.

Có thể hiểu, phân phối toàn cầu đi kèm với chi phí nhất quán. Trái ngược với SQL Server cung cấp bảo đảm ACID mạnh mẽ theo mặc định, Cosmos DB cho phép bạn chọn giữa nhiều mức nhất quán , mỗi mức cung cấp sự đảm bảo của nó. Điểm cực đoan nhất trong số này, tính nhất quán cuối cùng, chỉ đảm bảo rằng tất cả các bản sao sẽ hội tụ vào một thời điểm nào đó trong tương lai.

Mô hình định giá của Cosmos DB dựa trên đơn vị yêu cầu (RU). 1RU là chi phí của một lần đọc điểm 1KB. Các truy vấn tương ứng đắt hơn. Các đơn vị yêu cầu có vẻ đủ đơn giản, nhưng thật khó để ước tính mức sử dụng dựa trên các mẫu truy cập dữ liệu cụ thể của bạn nếu không có kinh nghiệm trước đó.

Ưu và nhược điểm

Sau khi mô tả cả hai giải pháp, bạn có thể hỏi giải pháp nào phù hợp nhất với bạn? Hãy để chúng tôi thảo luận về một số điểm mạnh và điểm yếu của cả hai cơ sở dữ liệu.

Ưu điểm Cơ sở dữ liệu Azure SQL

  • Các tùy chọn triển khai linh hoạt. Cho dù bạn muốn một dịch vụ được quản lý hoàn toàn hay chỉ đơn giản là bạn muốn chạy SQL Server trên các máy ảo của Azure, Cơ sở dữ liệu Azure SQL sẽ giúp bạn.
  • Quen thuộc với các nhà phát triển SQL. Vì Cơ sở dữ liệu Azure SQL về cơ bản là triển khai Azure của SQL Server nổi tiếng, hầu hết các kỹ năng đều chuyển trực tiếp sang dịch vụ đám mây.
  • Khả năng tùy biến. Nếu bạn chạy phiên bản SQL Server của riêng mình, bạn có quyền kiểm soát mọi cài đặt.
  • Định giá minh bạch. Định giá dựa trên tài nguyên bộ nhớ, máy tính và lưu trữ được yêu cầu.
  • Di cư. Di chuyển tương đối dễ dàng cơ sở dữ liệu SQL Server tại chỗ của bạn sang Azure SQL do cùng một công cụ cơ bản.
  • Tính ổn định và độ tin cậy. Microsoft SQL Server ban đầu được phát hành vào năm 1989 và đã trải qua một chặng đường dài kể từ đó. Nó là một công cụ cơ sở dữ liệu trưởng thành, ổn định và đã được thử nghiệm tốt.

Nhược điểm của cơ sở dữ liệu Azure SQL

  • Lược đồ cố định. Nói chung, cơ sở dữ liệu SQL ít phù hợp hơn với các yêu cầu phần mềm thường xuyên thay đổi do lược đồ cố định của chúng. Việc di chuyển giản đồ có thể khó quản lý. Mặc dù SQL Server có thể hoạt động với dữ liệu JSON ngày nay (do đó thu hẹp khoảng cách giữa SQL và NoSQL), nó yêu cầu cú pháp đặc biệt và cảm thấy hơi giống như một suy nghĩ muộn màng.
  • ACID đảm bảo và giao dịch phân tán. Mặc dù các tính năng này có thể rất hữu ích cho một số ứng dụng, nhưng chúng cũng làm giảm đáng kể khả năng mở rộng trong trường hợp bạn không cần đến chúng.
  • Mở rộng quy mô hạn chế. Mặc dù mở rộng quy mô (bằng cách thêm nhiều bộ nhớ hoặc tính toán vào các phiên bản SQL Server của bạn) là một cách nhanh chóng và dễ dàng để tăng hiệu suất, nhưng nó có thể trở nên cực kỳ tốn kém ngoài một số điểm nhất định. Mở rộng quy mô (bằng cách thêm nhiều phiên bản của SQL Server) hầu như chỉ giới hạn ở các bản sao chỉ đọc.

Ưu điểm của Azure Cosmos DB

  • Phân phối toàn cầu. Nhiều công ty ngày nay hoạt động trên toàn thế giới. Khách hàng của họ mong đợi hiệu suất tương tự từ các ứng dụng bất kể chúng được đặt ở đâu. Điều này làm cho mô hình cơ sở dữ liệu SQL tiêu chuẩn rất kém hiệu quả. Việc có một nút chính hỗ trợ ghi với nhiều bản sao chỉ đọc là không đủ cho các tác vụ như nguồn cấp dữ liệu mạng xã hội hoặc luồng dữ liệu IoT.
  • Nhiều cấp độ nhất quán. Mặt khác, các ứng dụng này thường không cần sự đảm bảo nhất quán của cơ sở dữ liệu truyền thống. Họ có thể dựa vào các mô hình nhất quán yếu hơn như tiền tố nhất quán hoặc thậm chí nhất quán cuối cùng. Có quyền tự do lựa chọn mức độ nhất quán là lợi ích chính của Cosmos DB.
  • Hỗ trợ lập chỉ mục tự động. Mỗi vùng chứa đều có chính sách lập chỉ mục được thiết lập để tăng tốc các truy vấn. Theo mặc định, mọi thuộc tính đều được lập chỉ mục và chỉ mục phạm vi được thực thi. Điều này là đủ cho hầu hết các trường hợp sử dụng. Tuy nhiên, cài đặt lập chỉ mục nâng cao có sẵn.
  • Hỗ trợ nhiều ngôn ngữ khác nhau. Có sẵn các API được tạo sẵn cho .NET, Java, Python, Ruby và JavaScript. Không cần các lớp ORM phức tạp.
  • Nhiều API. Cosmos DB cung cấp API lõi của riêng mình cũng như nhiều API cơ sở dữ liệu thay thế (API Gremlin, API Cassandra, API MongoDB, API bảng) giúp di chuyển từ các cơ sở dữ liệu NoSQL khác. Điều này làm giảm chi phí di chuyển và đường cong học tập.

Nhược điểm của Azure Cosmos DB

  • Khó hiểu hơn đối với quản trị viên DB truyền thống. Vì Cosmos DB là một cơ sở dữ liệu NoSQL và không nhất thiết phải cung cấp đảm bảo ACID mạnh (tùy thuộc vào cấu hình), nên khó hiểu hơn đối với các quản trị viên DB quen xử lý cơ sở dữ liệu SQL truyền thống.
  • Di chuyển phức tạp từ SQL Server. Việc di chuyển từ một giải pháp dựa trên SQL Server có thể rất tốn kém và trong những trường hợp cực đoan có thể yêu cầu viết lại các phần chính của ứng dụng. Việc tối ưu hóa tiếp theo sẽ mất nhiều thời gian hơn. Tôi chỉ khuyên bạn nên làm điều này nếu lợi ích của việc mở rộng quy mô toàn cầu lớn hơn những nỗ lực.
  • Mô hình định giá khó hiểu. Mô hình định giá dựa trên Đơn vị yêu cầu có thể không trực quan. Máy tính công suất Cosmos DB trong cổng có thể giúp ước tính chi phí với điều kiện bạn có thể ước tính một số chỉ số chính nhất định. Nói chung, Cosmos DB có thể khá đắt.
  • Chỉ dành cho đám mây công cộng. Nơi duy nhất mà Cosmos DB được triển khai là trong các trung tâm dữ liệu của Microsoft. Hiện tại, không có cung cấp cho các giải pháp đám mây kết hợp hoặc tại chỗ như Azure Arc.

Sự kết luận

Cả hai sản phẩm đều có một vị trí trong hệ sinh thái Azure. Trong khi Cơ sở dữ liệu Azure SQL cung cấp khả năng di chuyển dễ dàng từ giải pháp SQL Server tại chỗ của bạn và giúp bạn tận dụng kiến ​​thức SQL Server hiện có của mình, Cosmos DB được thiết kế từ đầu để phân phối toàn cầu và được quản lý hoàn toàn.

Nếu tôi phải quyết định sử dụng cơ sở dữ liệu nào cho một dự án mới, tôi chắc chắn sẽ sử dụng Cosmos DB, vì tôi chỉ đơn giản là yêu thích khả năng mở rộng và tính linh hoạt của nó. Là một dịch vụ NoSQL, việc tương tác với cơ sở dữ liệu chỉ đơn giản là tạo cảm giác tự nhiên hơn trong mã ứng dụng của bạn so với làm việc cho phần mềm trung gian ORM phức tạp cần thiết cho cơ sở dữ liệu truyền thống. Hơn nữa, việc lựa chọn nhiều mức độ nhất quán giúp bạn rất dễ dàng lựa chọn mức cân bằng phù hợp giữa tốc độ và tính nhất quán.

Mối quan tâm chính của tôi với Cosmos DB là đường cong học tập dốc của nó dành cho các quản trị viên đã từng làm việc với cơ sở dữ liệu SQL truyền thống. Việc thiết lập cơ sở dữ liệu Cosmos DB đầu tiên của bạn khiến bạn cảm thấy choáng ngợp. Bạn sẽ phải đọc qua nhiều tài liệu hoặc xem nhiều hướng dẫn để tìm ra cách thiết lập dịch vụ để đáp ứng các yêu cầu cụ thể của bạn.

Tuy nhiên, tôi nghĩ rằng điều này sẽ được cải thiện theo thời gian khi tỷ lệ chấp nhận tăng lên. Cosmos DB đã đi được một chặng đường dài trong một thời gian ngắn và tôi rất nóng lòng muốn xem chúng ta sẽ đi đến đâu tiếp theo.

Nguồn: https://betterprogramming.pub/azure-sql-database-vs-cosmos-db-which-should-you-choose-cda17b60d6d2

#cosmosdb #azure #sql 

What is GEEK

Buddha Community

Cơ Sở Dữ Liệu Azure SQL So Với Cơ Sở Dữ Liệu Azure Cosmos
Cayla  Erdman

Cayla Erdman

1594369800

Introduction to Structured Query Language SQL pdf

SQL stands for Structured Query Language. SQL is a scripting language expected to store, control, and inquiry information put away in social databases. The main manifestation of SQL showed up in 1974, when a gathering in IBM built up the principal model of a social database. The primary business social database was discharged by Relational Software later turning out to be Oracle.

Models for SQL exist. In any case, the SQL that can be utilized on every last one of the major RDBMS today is in various flavors. This is because of two reasons:

1. The SQL order standard is genuinely intricate, and it isn’t handy to actualize the whole standard.

2. Every database seller needs an approach to separate its item from others.

Right now, contrasts are noted where fitting.

#programming books #beginning sql pdf #commands sql #download free sql full book pdf #introduction to sql pdf #introduction to sql ppt #introduction to sql #practical sql pdf #sql commands pdf with examples free download #sql commands #sql free bool download #sql guide #sql language #sql pdf #sql ppt #sql programming language #sql tutorial for beginners #sql tutorial pdf #sql #structured query language pdf #structured query language ppt #structured query language

Ruthie  Bugala

Ruthie Bugala

1620435660

How to set up Azure Data Sync between Azure SQL databases and on-premises SQL Server

In this article, you learn how to set up Azure Data Sync services. In addition, you will also learn how to create and set up a data sync group between Azure SQL database and on-premises SQL Server.

In this article, you will see:

  • Overview of Azure SQL Data Sync feature
  • Discuss key components
  • Comparison between Azure SQL Data sync with the other Azure Data option
  • Setup Azure SQL Data Sync
  • More…

Azure Data Sync

Azure Data Sync —a synchronization service set up on an Azure SQL Database. This service synchronizes the data across multiple SQL databases. You can set up bi-directional data synchronization where data ingest and egest process happens between the SQL databases—It can be between Azure SQL database and on-premises and/or within the cloud Azure SQL database. At this moment, the only limitation is that it will not support Azure SQL Managed Instance.

#azure #sql azure #azure sql #azure data sync #azure sql #sql server

Creating and Cataloging SQL pools in Azure SQL Server

This article will walk you through creating a new SQL pool within an existing Azure SQL Server as well as catalog the same using the Azure Purview service.

Introduction

Data is generated by transactional systems and typically stored in relational data repositories. This data is generally used by live applications and for operational reporting. As this data volume grows, this data is often required by other analytical repositories and data warehouses where it can be used for referential purposes and adding more context to other data from across the organization. Transactional systems (also known as Online Transaction Processing (OLTP) systems) usually need a relational database engine, while analytical systems (also known as Online Analytical Processing (OLAP) systems) usually need analytical data processing engines. On Azure cloud, it is usually known that for OLTP requirements, SQL Server or Azure SQL Database can be employed, and for analytical data processing needs, Azure Synapse and other similar services can be employed. SQL Pools in Azure Synapse host the data on an SQL Server environment that can process the data in a massively parallel processing model, and the address of this environment is generally the name of the Azure Synapse workspace environment. At times, when one has already an Azure SQL Server in production or in use, the need is to have these SQL Pools on an existing Azure SQL Server instance, so data in these SQL pools can be processed per the requirements on an OLAP system as well as the data can be co-located with data generated by OLTP systems. This can be done by creating SQL Pools within the Azure SQL Server instance itself. In this article, we will learn to create a new SQL Pool within an existing Azure SQL Server followed by cataloging the same using the Azure Purview service.

Pre-requisite

As we intend to create a new SQL Pool in an existing Azure SQL Server instance, we need to have an instance of Azure SQL in place. Navigate to Azure Portal, search for Azure SQL and create a new instance of it. We can create an instance with the most basic configuration for demonstration purposes. Once the instance is created, we can navigate to the dashboard page of the instance and it would look as shown below.

As we are going to catalog the data in the dedicated SQL Pool hosted on Azure SQL instance, we also need to create an instance of Azure Purview. We would be using the Azure Purview studio from the dashboard of this instance, tonregister this SQL Pool as the source and catalog the instance.

#azure #sql azure #azure sql server #sql #sql #azure

Trung  Nguyen

Trung Nguyen

1655983080

Cơ Sở Dữ Liệu Azure SQL So Với Cơ Sở Dữ Liệu Azure Cosmos

Gần đây bạn có bắt đầu phát triển hoặc chuyển một ứng dụng sang Microsoft Azure không? Nếu vậy, một trong những điều bạn có thể phải quyết định là giải pháp cơ sở dữ liệu bạn muốn sử dụng. Đám mây Microsoft cung cấp nhiều tùy chọn, với hai tùy chọn phổ biến nhất là Cơ sở dữ liệu Azure SQL (và hai anh em của nó, Azure SQL Managed Instances và SQL Server trên Azure VMs) và Azure Cosmos DB.

Gần đây, tôi đã so sánh hai lựa chọn thay thế này cho ứng dụng của mình. Tôi đã có được một số hiểu biết mà tôi muốn chia sẻ với độc giả của mình. Trước tiên, chúng ta hãy xem xét cả hai sản phẩm một cách riêng biệt và xem chúng cung cấp những tính năng nào.

Cơ sở dữ liệu Azure SQL

Azure SQL là SQL Server của Microsoft cung cấp trên Azure. Có ba dịch vụ liên quan đến Azure SQL để bạn lựa chọn:

  • Cơ sở dữ liệu Azure SQL
  • Phiên bản Azure SQL Managed
  • Máy chủ SQL trên máy ảo Azure

Cơ sở dữ liệu Azure SQL là dịch vụ “được quản lý” nhiều nhất trong số ba dịch vụ. Nó là một PaaS cung cấp cho phép bạn thiết lập SQL Server nhanh chóng và dễ dàng. Hầu hết các tác vụ quản trị, bao gồm sao lưu, cập nhật và giám sát được thực hiện cho bạn. Bạn cũng không cần phải quản lý cơ sở hạ tầng bên dưới.

Có nhiều cấp dịch vụ để lựa chọn, bao gồm một tùy chọn cơ sở dữ liệu duy nhất với bộ nhớ có thể định cấu hình và máy tính, tùy chọn nhóm đàn hồi cho phép bạn chia sẻ tài nguyên giữa nhiều cơ sở dữ liệu cũng như tùy chọn không máy chủ có thể mở rộng tài nguyên của bạn một cách linh hoạt tùy thuộc vào việc sử dụng.

SQL Server trên Azure VMs chỉ cho phép bạn chạy phiên bản SQL Server trên máy ảo Azure được cung cấp của riêng bạn. Điều này có nghĩa là bạn có toàn quyền kiểm soát mọi khía cạnh của việc triển khai. Điều này cũng có nghĩa là bạn sẽ cần quan tâm đến hầu hết các tác vụ quản trị mà bạn đã quen thực hiện trên giải pháp tại chỗ của mình.

Azure SQL Managed Instance là một loại kết hợp giữa hai loại này. Một mặt, nó cho phép bạn chuyển cơ sở dữ liệu SQL Server tại chỗ của mình lên đám mây một cách liền mạch. Mặt khác, nó mang lại cho bạn nhiều lợi thế của đám mây, bao gồm cải thiện bảo mật, tự động vá lỗi, cập nhật phiên bản và sao lưu tự động.

Vì Azure SQL hầu hết tương thích với SQL Server, nó cũng cung cấp các đảm bảo giao dịch (ACID) giống như sản phẩm tại chỗ. Do những đảm bảo mạnh mẽ này, việc mở rộng quy mô bằng cách thêm nhiều phiên bản máy chủ hầu như chỉ giới hạn ở các bản sao chỉ đọc. Điều này cũng đúng với tính năng sao chép địa lý của Azure SQL.

Định giá cho Cơ sở dữ liệu Azure SQL dựa trên máy tính và bộ nhớ bạn yêu cầu (vCores) cũng như bộ nhớ cục bộ và bộ nhớ sao lưu mà bạn định cấu hình. Nhìn chung, giá cả có vẻ dễ hiểu.

Cơ sở dữ liệu Azure Cosmos

Cosmos DB là cung cấp NoSQL trên Azure. Nó được thiết kế từ đầu để hỗ trợ khả năng mở rộng cực cao, hoàn toàn bao hàm khái niệm về tính nhất quán cuối cùng. Các ứng dụng mục tiêu chính là IoT và các ứng dụng đám mây toàn cầu. Để đạt được điều này, Cosmos DB cung cấp các mức nhất quán khác nhau, các phương pháp truy cập dữ liệu (API) cũng như các tùy chọn mở rộng quy mô.

Vì Cosmos DB là một cơ sở dữ liệu NoSQL, nó thường tuân thủ tốt với cách dữ liệu được ứng dụng của bạn sử dụng. Ví dụ: một “item” có thể được chèn vào cơ sở dữ liệu dưới dạng tài liệu JSON và đầu ra của truy vấn cũng là tài liệu JSON. Cơ sở dữ liệu và vùng chứa được sử dụng làm không gian tên trên các mục có chức năng bổ sung nhất định.

Để hỗ trợ mở rộng quy mô theo chiều ngang, Cosmos DB sử dụng nhiều cơ chế. Đầu tiên, Cosmos DB phân vùng từng vùng chứa theo một khóa phân vùng. Các phân vùng này được tự động trải rộng trên các nút vật lý. Ngoài ra, phân phối dữ liệu toàn cầu đạt được bằng cách triển khai dữ liệu của bạn trên nhiều khu vực Azure. Điều này làm giảm độ trễ và tăng khả năng phản hồi trên toàn thế giới. Nó cũng cung cấp một chuyển đổi dự phòng trong thời gian mất điện khu vực.

Có thể hiểu, phân phối toàn cầu đi kèm với chi phí nhất quán. Trái ngược với SQL Server cung cấp bảo đảm ACID mạnh mẽ theo mặc định, Cosmos DB cho phép bạn chọn giữa nhiều mức nhất quán , mỗi mức cung cấp sự đảm bảo của nó. Điểm cực đoan nhất trong số này, tính nhất quán cuối cùng, chỉ đảm bảo rằng tất cả các bản sao sẽ hội tụ vào một thời điểm nào đó trong tương lai.

Mô hình định giá của Cosmos DB dựa trên đơn vị yêu cầu (RU). 1RU là chi phí của một lần đọc điểm 1KB. Các truy vấn tương ứng đắt hơn. Các đơn vị yêu cầu có vẻ đủ đơn giản, nhưng thật khó để ước tính mức sử dụng dựa trên các mẫu truy cập dữ liệu cụ thể của bạn nếu không có kinh nghiệm trước đó.

Ưu và nhược điểm

Sau khi mô tả cả hai giải pháp, bạn có thể hỏi giải pháp nào phù hợp nhất với bạn? Hãy để chúng tôi thảo luận về một số điểm mạnh và điểm yếu của cả hai cơ sở dữ liệu.

Ưu điểm Cơ sở dữ liệu Azure SQL

  • Các tùy chọn triển khai linh hoạt. Cho dù bạn muốn một dịch vụ được quản lý hoàn toàn hay chỉ đơn giản là bạn muốn chạy SQL Server trên các máy ảo của Azure, Cơ sở dữ liệu Azure SQL sẽ giúp bạn.
  • Quen thuộc với các nhà phát triển SQL. Vì Cơ sở dữ liệu Azure SQL về cơ bản là triển khai Azure của SQL Server nổi tiếng, hầu hết các kỹ năng đều chuyển trực tiếp sang dịch vụ đám mây.
  • Khả năng tùy biến. Nếu bạn chạy phiên bản SQL Server của riêng mình, bạn có quyền kiểm soát mọi cài đặt.
  • Định giá minh bạch. Định giá dựa trên tài nguyên bộ nhớ, máy tính và lưu trữ được yêu cầu.
  • Di cư. Di chuyển tương đối dễ dàng cơ sở dữ liệu SQL Server tại chỗ của bạn sang Azure SQL do cùng một công cụ cơ bản.
  • Tính ổn định và độ tin cậy. Microsoft SQL Server ban đầu được phát hành vào năm 1989 và đã trải qua một chặng đường dài kể từ đó. Nó là một công cụ cơ sở dữ liệu trưởng thành, ổn định và đã được thử nghiệm tốt.

Nhược điểm của cơ sở dữ liệu Azure SQL

  • Lược đồ cố định. Nói chung, cơ sở dữ liệu SQL ít phù hợp hơn với các yêu cầu phần mềm thường xuyên thay đổi do lược đồ cố định của chúng. Việc di chuyển giản đồ có thể khó quản lý. Mặc dù SQL Server có thể hoạt động với dữ liệu JSON ngày nay (do đó thu hẹp khoảng cách giữa SQL và NoSQL), nó yêu cầu cú pháp đặc biệt và cảm thấy hơi giống như một suy nghĩ muộn màng.
  • ACID đảm bảo và giao dịch phân tán. Mặc dù các tính năng này có thể rất hữu ích cho một số ứng dụng, nhưng chúng cũng làm giảm đáng kể khả năng mở rộng trong trường hợp bạn không cần đến chúng.
  • Mở rộng quy mô hạn chế. Mặc dù mở rộng quy mô (bằng cách thêm nhiều bộ nhớ hoặc tính toán vào các phiên bản SQL Server của bạn) là một cách nhanh chóng và dễ dàng để tăng hiệu suất, nhưng nó có thể trở nên cực kỳ tốn kém ngoài một số điểm nhất định. Mở rộng quy mô (bằng cách thêm nhiều phiên bản của SQL Server) hầu như chỉ giới hạn ở các bản sao chỉ đọc.

Ưu điểm của Azure Cosmos DB

  • Phân phối toàn cầu. Nhiều công ty ngày nay hoạt động trên toàn thế giới. Khách hàng của họ mong đợi hiệu suất tương tự từ các ứng dụng bất kể chúng được đặt ở đâu. Điều này làm cho mô hình cơ sở dữ liệu SQL tiêu chuẩn rất kém hiệu quả. Việc có một nút chính hỗ trợ ghi với nhiều bản sao chỉ đọc là không đủ cho các tác vụ như nguồn cấp dữ liệu mạng xã hội hoặc luồng dữ liệu IoT.
  • Nhiều cấp độ nhất quán. Mặt khác, các ứng dụng này thường không cần sự đảm bảo nhất quán của cơ sở dữ liệu truyền thống. Họ có thể dựa vào các mô hình nhất quán yếu hơn như tiền tố nhất quán hoặc thậm chí nhất quán cuối cùng. Có quyền tự do lựa chọn mức độ nhất quán là lợi ích chính của Cosmos DB.
  • Hỗ trợ lập chỉ mục tự động. Mỗi vùng chứa đều có chính sách lập chỉ mục được thiết lập để tăng tốc các truy vấn. Theo mặc định, mọi thuộc tính đều được lập chỉ mục và chỉ mục phạm vi được thực thi. Điều này là đủ cho hầu hết các trường hợp sử dụng. Tuy nhiên, cài đặt lập chỉ mục nâng cao có sẵn.
  • Hỗ trợ nhiều ngôn ngữ khác nhau. Có sẵn các API được tạo sẵn cho .NET, Java, Python, Ruby và JavaScript. Không cần các lớp ORM phức tạp.
  • Nhiều API. Cosmos DB cung cấp API lõi của riêng mình cũng như nhiều API cơ sở dữ liệu thay thế (API Gremlin, API Cassandra, API MongoDB, API bảng) giúp di chuyển từ các cơ sở dữ liệu NoSQL khác. Điều này làm giảm chi phí di chuyển và đường cong học tập.

Nhược điểm của Azure Cosmos DB

  • Khó hiểu hơn đối với quản trị viên DB truyền thống. Vì Cosmos DB là một cơ sở dữ liệu NoSQL và không nhất thiết phải cung cấp đảm bảo ACID mạnh (tùy thuộc vào cấu hình), nên khó hiểu hơn đối với các quản trị viên DB quen xử lý cơ sở dữ liệu SQL truyền thống.
  • Di chuyển phức tạp từ SQL Server. Việc di chuyển từ một giải pháp dựa trên SQL Server có thể rất tốn kém và trong những trường hợp cực đoan có thể yêu cầu viết lại các phần chính của ứng dụng. Việc tối ưu hóa tiếp theo sẽ mất nhiều thời gian hơn. Tôi chỉ khuyên bạn nên làm điều này nếu lợi ích của việc mở rộng quy mô toàn cầu lớn hơn những nỗ lực.
  • Mô hình định giá khó hiểu. Mô hình định giá dựa trên Đơn vị yêu cầu có thể không trực quan. Máy tính công suất Cosmos DB trong cổng có thể giúp ước tính chi phí với điều kiện bạn có thể ước tính một số chỉ số chính nhất định. Nói chung, Cosmos DB có thể khá đắt.
  • Chỉ dành cho đám mây công cộng. Nơi duy nhất mà Cosmos DB được triển khai là trong các trung tâm dữ liệu của Microsoft. Hiện tại, không có cung cấp cho các giải pháp đám mây kết hợp hoặc tại chỗ như Azure Arc.

Sự kết luận

Cả hai sản phẩm đều có một vị trí trong hệ sinh thái Azure. Trong khi Cơ sở dữ liệu Azure SQL cung cấp khả năng di chuyển dễ dàng từ giải pháp SQL Server tại chỗ của bạn và giúp bạn tận dụng kiến ​​thức SQL Server hiện có của mình, Cosmos DB được thiết kế từ đầu để phân phối toàn cầu và được quản lý hoàn toàn.

Nếu tôi phải quyết định sử dụng cơ sở dữ liệu nào cho một dự án mới, tôi chắc chắn sẽ sử dụng Cosmos DB, vì tôi chỉ đơn giản là yêu thích khả năng mở rộng và tính linh hoạt của nó. Là một dịch vụ NoSQL, việc tương tác với cơ sở dữ liệu chỉ đơn giản là tạo cảm giác tự nhiên hơn trong mã ứng dụng của bạn so với làm việc cho phần mềm trung gian ORM phức tạp cần thiết cho cơ sở dữ liệu truyền thống. Hơn nữa, việc lựa chọn nhiều mức độ nhất quán giúp bạn rất dễ dàng lựa chọn mức cân bằng phù hợp giữa tốc độ và tính nhất quán.

Mối quan tâm chính của tôi với Cosmos DB là đường cong học tập dốc của nó dành cho các quản trị viên đã từng làm việc với cơ sở dữ liệu SQL truyền thống. Việc thiết lập cơ sở dữ liệu Cosmos DB đầu tiên của bạn khiến bạn cảm thấy choáng ngợp. Bạn sẽ phải đọc qua nhiều tài liệu hoặc xem nhiều hướng dẫn để tìm ra cách thiết lập dịch vụ để đáp ứng các yêu cầu cụ thể của bạn.

Tuy nhiên, tôi nghĩ rằng điều này sẽ được cải thiện theo thời gian khi tỷ lệ chấp nhận tăng lên. Cosmos DB đã đi được một chặng đường dài trong một thời gian ngắn và tôi rất nóng lòng muốn xem chúng ta sẽ đi đến đâu tiếp theo.

Nguồn: https://betterprogramming.pub/azure-sql-database-vs-cosmos-db-which-should-you-choose-cda17b60d6d2

#cosmosdb #azure #sql 

Eric  Bukenya

Eric Bukenya

1624713540

Learn NoSQL in Azure: Diving Deeper into Azure Cosmos DB

This article is a part of the series – Learn NoSQL in Azure where we explore Azure Cosmos DB as a part of the non-relational database system used widely for a variety of applications. Azure Cosmos DB is a part of Microsoft’s serverless databases on Azure which is highly scalable and distributed across all locations that run on Azure. It is offered as a platform as a service (PAAS) from Azure and you can develop databases that have a very high throughput and very low latency. Using Azure Cosmos DB, customers can replicate their data across multiple locations across the globe and also across multiple locations within the same region. This makes Cosmos DB a highly available database service with almost 99.999% availability for reads and writes for multi-region modes and almost 99.99% availability for single-region modes.

In this article, we will focus more on how Azure Cosmos DB works behind the scenes and how can you get started with it using the Azure Portal. We will also explore how Cosmos DB is priced and understand the pricing model in detail.

How Azure Cosmos DB works

As already mentioned, Azure Cosmos DB is a multi-modal NoSQL database service that is geographically distributed across multiple Azure locations. This helps customers to deploy the databases across multiple locations around the globe. This is beneficial as it helps to reduce the read latency when the users use the application.

As you can see in the figure above, Azure Cosmos DB is distributed across the globe. Let’s suppose you have a web application that is hosted in India. In that case, the NoSQL database in India will be considered as the master database for writes and all the other databases can be considered as a read replicas. Whenever new data is generated, it is written to the database in India first and then it is synchronized with the other databases.

Consistency Levels

While maintaining data over multiple regions, the most common challenge is the latency as when the data is made available to the other databases. For example, when data is written to the database in India, users from India will be able to see that data sooner than users from the US. This is due to the latency in synchronization between the two regions. In order to overcome this, there are a few modes that customers can choose from and define how often or how soon they want their data to be made available in the other regions. Azure Cosmos DB offers five levels of consistency which are as follows:

  • Strong
  • Bounded staleness
  • Session
  • Consistent prefix
  • Eventual

In most common NoSQL databases, there are only two levels – Strong and EventualStrong being the most consistent level while Eventual is the least. However, as we move from Strong to Eventual, consistency decreases but availability and throughput increase. This is a trade-off that customers need to decide based on the criticality of their applications. If you want to read in more detail about the consistency levels, the official guide from Microsoft is the easiest to understand. You can refer to it here.

Azure Cosmos DB Pricing Model

Now that we have some idea about working with the NoSQL database – Azure Cosmos DB on Azure, let us try to understand how the database is priced. In order to work with any cloud-based services, it is essential that you have a sound knowledge of how the services are charged, otherwise, you might end up paying something much higher than your expectations.

If you browse to the pricing page of Azure Cosmos DB, you can see that there are two modes in which the database services are billed.

  • Database Operations – Whenever you execute or run queries against your NoSQL database, there are some resources being used. Azure terms these usages in terms of Request Units or RU. The amount of RU consumed per second is aggregated and billed
  • Consumed Storage – As you start storing data in your database, it will take up some space in order to store that data. This storage is billed per the standard SSD-based storage across any Azure locations globally

Let’s learn about this in more detail.

#azure #azure cosmos db #nosql #azure #nosql in azure #azure cosmos db