SQL Server存储量大大提升

1. SQL Server存储量大幅提升的原因

SQL Server是微软推出的一款关系型数据库管理系统,一直以来备受广大程序员的喜欢。最近,微软公司宣布了SQL Server 2019 GA的正式发布,引起了业内人士的广泛关注。其中最令人振奋的是,SQL Server 2019带来了存储量大幅提升的好消息。

1.1 支持HDFS存储格式

SQL Server 2019支持使用Hadoop分布式文件系统(HDFS)文件格式存储数据。这意味着SQL Server 2019用户可以直接使用存储在HDFS上的数据。对于有大量数据存储在HDFS上的企业,这将极大地简化数据的导入和处理,同时减少存储成本。

CREATE EXTERNAL DATA SOURCE HadoopStorage

WITH (

TYPE = HADOOP,

LOCATION = 'wasbs://containername@account.blob.core.windows.net',

CREDENTIAL = SqlCredential

);

GO

CREATE EXTERNAL TABLE [dbo].[FactSales]

(

[ProductKey] int NOT NULL,

[DateKey] int NOT NULL,

[ChannelKey] int NOT NULL,

[SalesAmount] decimal(18,2) NOT NULL

)

WITH (

LOCATION = '/transactions/FactSales',

DATA_SOURCE = HadoopStorage

);

上述代码展示了如何在SQL Server 2019中创建一个外部表连接到HDFS中的文件。这里使用Hadoop Connection Manager,该连接器可安装在SQL Server 2019实例上。这样,用户就可以在SQL Server中查询HDFS中的存储数据。

1.2 行存储格式的大幅提升

SQL Server 2019引用了一项称为原始可扩展(Raw Scalar)的技术,可以大幅提高行存储格式的数据压缩率。Raw Scalar索引包含列值的原始二进制表示形式。将这些索引与传统字典压缩索引相结合,可以实现更高的数据压缩率。这样可以将行存储格式的数据量缩小至开始的50%到70%。这将极大地减少了数据存储的成本。

CREATE CLUSTERED COLUMNSTORE INDEX cci_Product

ON dbo.Product

WITH (

DATA_COMPRESSION = COLUMNSTORE_ARCHIVE

);

这段代码可以创建一个以Clustered Columnstore索引存储的表,可以在任何查询中获得更快的响应时间。COLUMNSTORE_ARCHIVE选项表示在建立Columnstore索引时,使用基于字典和Raw Scalar的混合压缩机制。

1.3 支持数据虚拟化

SQL Server 2019还引入了一项新的功能,名为数据虚拟化。数据虚拟化允许用户直接在SQL Server中访问远程数据源,而无需将数据复制和同步到本地。这在云计算环境和多个数据来源的企业中特别有用,可以更加灵活地访问和处理数据。

CREATE EXTERNAL DATA SOURCE MySQLDataSource

WITH (

TYPE = RDBMS,

LOCATION = 'mysqlserver.mysql.database.chinacloudapi.cn',

DATABASE_NAME = 'mydb',

CREDENTIAL = MySqlCredential

);

GO

SELECT *

FROM OPENQUERY(

MYSQLDataSource,

'SELECT EmployeeID, FirstName, LastName

FROM Employees'

) AS emp;

上述代码将在SQL Server 2019中创建一个外部数据源连接到远程MySQL数据库中的表。这里使用了RDBMS连接器,该连接器可连接到多种关系型数据库系统。这样,用户就可以在SQL Server中访问远程MySQL数据库中的数据。

2. 结语

SQL Server 2019是一款值得期待的版本。通过引入支持HDFS存储格式、行存储格式的大幅提升和数据虚拟化功能,SQL Server 2019可以帮助企业更加高效地处理和管理海量数据,大幅降低存储和管理成本。相信SQL Server 2019将在未来的数据管理领域发挥越来越重要的作用。

数据库标签