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将在未来的数据管理领域发挥越来越重要的作用。