跨扩展云数据库进行报告(预览)
适用于:Azure SQL 数据库
可以使用弹性查询从单个连接点中的多个数据库创建报告。 数据库必须进行横向分区(也称为“分片”)。
如果有现有的数据库,请参阅将现有数据库迁移到扩展数据库。
若要了解需要查询的 SQL 对象,请参阅跨横向分区的数据库进行查询。
先决条件
下载并运行弹性数据库工具示例入门。
使用示例应用程序创建分片映射管理器
在此处,用户将创建分片映射管理器以及多个分片,并将数据插入分片。 如果分片中正好设置了分片数据,则可以跳过下面的步骤,直接转到下一部分。
按照文章部分下载并运行示例应用中的步骤,生成并运行弹性数据库工具入门示例应用程序。 完成所有步骤后,会看到以下命令提示符:
在命令窗口中键入“1”,并按 Enter。 这会创建分片映射管理器,并将两个分片添加到服务器。 然后键入“3”并按 Enter;重复该操作四次。 这会在分片中插入示例数据行。
Azure 门户应显示服务器中的 3 个新数据库:
目前,通过弹性数据库客户端库支持跨数据库查询。 例如,在命令窗口中使用第 4 个选项。 来自多分片查询的结果始终是所有分片结果的 UNION ALL 。
在下一部分,我们创建支持更丰富的跨分片数据查询的示例数据库终结点。
创建弹性查询数据库
打开 Azure 门户并登录。
在与分片设置相同的服务器中的 Azure SQL 数据库中创建新的数据库。 将数据库命名为“ElasticDBQuery”。
注意
可以使用现有数据库。 如果这样做,该数据库不能是你想要对其运行查询的某一个分片。 此数据库将用于为弹性数据库查询创建元数据对象。
创建数据库对象
数据库范围的主密钥和凭据
它们用来连接到分片映射管理器和分片:
在 Visual Studio 中打开 SQL Server Management Studio 或 SQL Server Data Tools。
连接到 ElasticDBQuery 数据库,并执行以下 T-SQL 命令:
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<master_key_password>'; CREATE DATABASE SCOPED CREDENTIAL ElasticDBQueryCred WITH IDENTITY = '<username>', SECRET = '<password>';
“username”和“password”应该与弹性数据库工具入门一文中下载并运行示例应用部分的步骤 3 中使用的登录信息相同。
外部数据源
若要创建外部数据源,请对 ElasticDBQuery 数据库执行以下命令:
CREATE EXTERNAL DATA SOURCE MyElasticDBQueryDataSrc WITH
(TYPE = SHARD_MAP_MANAGER,
LOCATION = '<server_name>.database.chinacloudapi.cn',
DATABASE_NAME = 'ElasticScaleStarterKit_ShardMapManagerDb',
CREDENTIAL = ElasticDBQueryCred,
SHARD_MAP_NAME = 'CustomerIDShardMap'
) ;
如果使用弹性数据库工具示例创建了分片映射和分片映射管理器,“CustomerIDShardMap”是分片映射的名称。 但是,如果为此示例使用了自定义设置,则它应该是你在应用程序中选择的分片映射名称。
外部表
通过对 ElasticDBQuery 数据库执行以下命令,创建与分片上的客户表匹配的外部表:
CREATE EXTERNAL TABLE [dbo].[Customers]
( [CustomerId] [int] NOT NULL,
[Name] [nvarchar](256) NOT NULL,
[RegionId] [int] NOT NULL)
WITH
( DATA_SOURCE = MyElasticDBQueryDataSrc,
DISTRIBUTION = SHARDED([CustomerId])
) ;
执行示例弹性数据库 T-SQL 查询
定义外部数据源和外部表后,可以对外部表使用完整的 T-SQL。
对 ElasticDBQuery 数据库执行以下查询:
select count(CustomerId) from [dbo].[Customers]
你将注意到,查询会从所有分片聚合结果并提供以下输出:
将弹性数据库查询结果导入 Excel
可以将查询结果导入到 Excel 文件。
启动 Excel 2013。
导航到“数据”功能区 。
单击“从其他源”,然后单击“从 SQL Server” 。
在“数据连接向导”中,键入服务器名称和登录凭据 。 。
在“选择包含所需数据的数据库”对话框中,选择 ElasticDBQuery 数据库 。
在列表视图中选择“客户”表并单击“下一步” 。 然后单击“完成” 。
在“导入数据”窗体中的“请选择该数据在工作簿中的显示方式”下,选择“表”,然后单击“确定” 。
存储在不同分片中、来自“客户”表的所有行将填入 Excel 工作表 。
现在,可以使用 Excel 的强大数据可视化功能。 可以使用包含服务器名称、数据库名称和凭据的连接字符串,将 BI 和数据集成工具连接到弹性查询数据库。 请确保支持将 SQL Server 用作工具的数据源。 可以引用弹性查询数据库和外部表,就如同使用工具连接的任何其他 SQL Server 数据库和 SQL Server 表一样。
成本
使用弹性数据库查询功能不会产生额外的费用。
有关价格信息,请参阅 SQL 数据库定价详细信息。
后续步骤
- 有关弹性查询的概述,请参阅弹性查询概述。
- 有关垂直分区的教程,请参阅跨数据库查询(垂直分区)入门。
- 有关垂直分区数据的语法和示例查询,请参阅查询垂直分区数据
- 有关水平分区数据的语法和示例查询,请参阅查询水平分区数据
- 请参阅 sp_execute _remote,了解在单个远程 Azure SQL 数据库或在水平分区方案中用作分片的一组数据库中执行 Transact-SQL 语句的存储过程。