数据结构论坛

首页 » 分类 » 分类 » 在Azure中存储数据的地方是什么了解A
TUhjnbcbe - 2024/6/19 20:12:00

微软Azure是巨大的!有太多的服务,有时很难确定应该在什么时候使用哪些服务。在Azure中存储数据时也是如此。Azure中有许多不同的服务,您可以使用这些服务来存储数据,但是哪种服务适合您呢?显然,答案是:这取决于,您还可以在一个应用程序中使用几个不同的数据存储选项。本文将向您展示在Azure中存储数据的哪些选项,以及应该使用哪些场景(我认为)。让我们看看您可以用来存储数据的服务:
  Azure存储
  如果您需要大规模存储文件和小行数据,而无需高级查询功能,则Azure存储是您最好的选择。
  

Azure存储由多个服务组成,每个服务都针对特定的使用场景进行了优化。他们在这篇文章中有描述,下面是他们的总结:
  AzureBlob存储
  用于存储大小不一的文件,如音频,视频或VHD文件
  Azure队列存储
  意味着存储其他应用程序拾取的小消息。队列存储可以帮助解耦您的应用程序
  Azure文件存储
  基于SMB协议,文件存储旨在作为磁盘安装在虚拟机中。将应用程序提升并转移到云中非常有用
  Azure磁盘存储
  磁盘存储针对高I/O操作进行了优化,可用作虚拟机的硬盘,如服务器。
  所有这些服务都有共同的特性,比如REST的数据加密以及身份验证和授权。此外,默认情况下,您在Azure存储中存储的所有内容都会在所选数据中心内复制3次。您也可以选择使用Geo冗余存储层将存储复制到另一个数据中心,然后在一个辅助数据中心中创建数据的3个副本,使总拷贝数为6。这可以确保您的数据在发生故障或灾难时是安全的。
  通常,Azure存储是高性能和廉价的,但提供有限的查询能力。
  

AzureCosmosDB
  如果你想存储非关系型数据,并在全世界范围内使用性能优于Azure的软件,CosmosDB就是您的数据库。
  CosmosDB是DocumentDB的品牌重塑并增加了许多功能。CosmosDB的一个非常吸引人的方面是,您可以使用不同的API与之交谈。您可以使用原始的(类似SQL的)DocumentDB查询语言,JavaScript,Gremlin,MongoDB和TableStorage。这意味着如果您现在有一个将数据存储在Gremlin中的应用程序,则可以将该应用程序指向Cosmos数据库实例并充分利用所有附加功能。
  关于CosmosDB的另一个值得注意的事情是
  此外,通过将CosmosDB复制到另一个区域来创建地理性能非常容易。您只需指出该区域和数据即时复制。更好的是,您可以像以前一样继续与您的应用程序进行沟通,CosmosDB会找出哪个区域是哪个数据库最适合您的。请记住,副本始终是只读副本,并且只有一个可写节点。
  总之,CosmosDB擅长存储和检索可能需要地理性能的复杂非关系数据。

AzureSQL数据库
  当您需要使用高级查询功能以事务方式存储关系数据时,AzureSQL数据库将为您提供服务。
  AzureSQL数据库是数十年来内部部署的SQLServer产品的完全托管云,AzureSQL数据库自Azure开始就一直存在。
  您可以将数据存储在具有行和列的表格中,并且可以使用存储过程,用户定义函数和所有T-SQL语言规范。AzureSQL数据库是一个非常成熟和先进的数据库。
  除了作为存储关系数据的好地方外,它还像CosmosDB一样提供自动索引等高级功能。它还提供了动态数据屏蔽功能,可以用来屏蔽敏感数据(如特定用户的信用卡信息),而不会影响任何查询功能。
  AzureSQL数据库可以非常高效,尤其是当您使用内存中的OTLP功能时,您可以像缓存那样从内存中存储和检索数据。此外,AzureSQL数据库还提供了地理复制功能,使您可以在其他地理区域创建数据库的只读副本,这有助于提高地理性能。
  AzureSQL数据库是用于存储和检索复杂的关系数据的优秀服务,可能针对地理性能进行了优化。
  适用于PostgreSQL和MySQL的Azure数据库
  Azure中相对较新的数据库产品适用于PostgreSQL和MySQL。这两种产品都提供了一种托管数据库的体验,您只需启动一个数据库即可,无需担心保持运行状态。
  就像AzureSQL数据库一样,他们每5分钟进行一次增量备份,并且每隔一小时进行一次备份,存储在地理冗余存储中。这意味着备份在主数据中心内复制3次,在另一个地理位置的数据中心复制3次。因此,您可以在35天内从任何还原点还原数据库(取决于您选择的定价层)以防万一发生故障或灾难。
  

MySQL的Azure数据库
  MySQL的Azure数据库基于开源MySQL数据库。如果您需要存储关系数据并用丰富的SQL语言查询,那么应该使用它。MySQL通常用于LAMP软件堆栈,该堆栈代表Linux,Apache,MySQL和PHP。
  就像使用AzureSQL数据库一样,您可以将数据存储在具有行和列的表格中,并且具有诸如约束和关系之类的内容。
  有一点不同,就是您使用MySQL和AzureSQL数据库的工具。AzureSQL数据库与所有Microsoft工具(VisualStudio,SQLServerManagementStudio)协同工作,您可以在其中使用其他工具与MySQL一起工作,例如MySQLWorkbench。
  我认为MySQL和AzureSQL数据库之间的选择是偏好和生态系统之一。如果你喜欢MySQL并且熟悉这些工具,那就去做吧。如果您在Microsoft生态系统中工作并且熟悉这些工具,那么您可能更喜欢AzureSQL数据库。
  

适用于PostgreSQL的Azure数据库
  PostgreSQL的Azure数据库是开源PostgreSQL数据库的完全托管版本。这是一个对象关系数据库,它不同于像MySQL这样的关系数据库。当需要将数据存储在支持数据库模式和查询语言中的对象,类和继承的类似表结构中时,您可以使用它。如果你需要很大的灵活性,你也可以使用它。因此,我的意思是PostgreSQL支持很多互操作性,包括以十几种编程语言运行存储过程。
  除此之外,PostgreSQL是一个对象关系数据库,您使用的工具也与您在MySQL和AzureSQL数据库中使用的工具不同。对于PostgreSQL,您可以使用其他工具,如pgAdmin。
  我认为,选择适用于PostgreSQL的Azure数据库是您在适应PostgreSQL及其工具时以及需要特定功能(例如存储过程的灵活性时使用MySQL和AzureSQL数据库不能获得的选项)时的选择。
  

 AzureSQL数据仓库
  如果您需要以结构化的关系格式存储大量数据以进行报告,那么AzureSQL数据仓库就是为您服务的。
  基于AzureSQL数据库,AzureSQL数据仓库将数据存储在具有行和列的表中,并具有索引,约束和键等功能。不同的是,SQL数据仓库针对报告目的进行了优化,其中AzureSQL数据库针对数据的事务处理进行了优化,这在大多数常规数据录入应用程序中都会发生。实际上,您可以使用AzureSQL数据库构建数据仓库,但这并不意味着这一点,因为存在一些差异。
  AzureSQL数据仓库可以在一个地方托管大量数据。事实上,对于可以存储在SQL数据仓库中的数据量(除了预算外)没有实际的限制。在AzureSQL数据库中,可以存储在一个数据库中的数据量更受限制。
  SQL数据仓库还针对执行复杂查询进行了优化,与AzureSQL数据库相比,SQLServer数据仓库的报告性能更高。另外,SQL数据仓库支持Polybase,AzureSQL数据库不支持。此外,AzureSQL数据库还支持更多用于支持实时应用程序的功能,例如SQL数据仓库没有的地理复制和内存中OTLP。
  在SQL数据仓库中加载数据之前,您需要定义要使用的数据模式-定义数据结构的方式。通过这样做,您可以将数据准备好用于分析和报告工具,如PowerBI。
  总之,如果您需要存储和检索大量关系数据以用于报告,AzureSQL数据仓库是您首选的数据存储。
  

 AzureDataLakeStore
  为存储大量用于报告和分析目的的数据而优化的另一个商店是AzureDataLakeStore。DataLake存储适用于以本机格式存储数据,因此非常适合存储非关系数据。
  DataLakeStore的工作方式与SQL数据仓库不同,因为您不必事先定义数据模式,而您需要使用SQL数据仓库来执行此操作。您可以以任何形式存储数据,并在检索数据时定义模式。
  DataLakeStore是一个放置大量数据的地方,您需要分析信息。因为当你还不知道你想要数据回答哪些问题时。一旦知道要提问的问题和答案的格式,就可以使用AzureDataLakeAnalytics,AzureHDInsight或AzureAnalysisServices等工具将DataLake中的数据转换为更加结构化的数据,并将结构化数据移动到AzureSQL数据中仓库可以通过PowerBI等工具进行可视化。
  AzureDataLakeStore是您用于大规模处理大量半结构化和非结构化非关系数据的数据存储。
  什么时候使用
  在Azure中存储数据有很多选项。什么时候使用?以下摘要可能有所帮助。让我知道你在评论中对它的看法。
  

*OLAP表示在线分析处理,即处理和分析数据
  **OTLP代表OnlineTransactionalProcessing,用于面向事务的应用程序,如数据输入应用程序
  如果您想了解更多关于Azure开发的信息,请继续深入学习吧。

更多阅读

人工智能在招聘中的作用

软考网络工程师历年上午真题详析课程视频教程课课家教育

课课家教育区块链技术与应用视频课程「基础篇」

1
查看完整版本: 在Azure中存储数据的地方是什么了解A