Webhostingtalk资讯网

如何连接至SQL数据仓库

2017-09-06 13:40
作者:admin

连接至SQL数据仓库

任何新系统最令人沮丧的事情莫过于要了解如何与其建立连接了。不过奇怪的是,您无法联合使用SSMS与SQL数据仓库,相关推荐:尝试使用Azure SQL数据仓库,但却能将SSMS与SSDT、SSIS、Power BI desktop、sqlcmd、BCP以及一系列的微软云服务和PowerShell Cmdlet配套使用。Rob Sheldon向我们提供了这方面的详细信息。

· SQL数据仓库——第1部分:引言

· SQL数据仓库——第2部分:实施

· SQL数据仓库——第3部分:连接

· SQL数据仓库——第4部分:创建和查询

· SQL数据仓库——第5部分:加载数据

微软家族新推出的一项云服务是SQL数据仓库,而它是一种建于Azure SQL数据库之上的分布式数据库管理系统。微软将其新服务称为是具有企业级功能的弹性数据仓库,它可以在几秒钟内扩展、缩小和暂停。

我在我的文章《Azure SQL数据仓库》中首次谈及了这项服务,并向您介绍了SQL数据仓库,还概述了驱动它的架构和技术。在我第二篇关于这一话题的文章《开始使用Azure SQL数据仓库》中,我深入探讨了实施SQL数据仓库数据库的一些具体细节。这一次,我将专注于为您介绍如何使用各种客户端工具来连接其中的一个数据库。

关于本文中的示例,我使用的是我在第二篇文章中创建的同一数据库。 以下是一些能帮助您遵循原例的细节:

· 数据库名称:sdwdb1

· 服务器名称:sdwsrv1.database.windows.net

· 登录帐号:sdwadmin

· 数据库类型:AdventureWorksDW示例

· 资源组:sdwgrp1

· 订阅名称:即用即付

本文中的示例向您演示了如何使用SQL Server Management Studio(SSMS)、SQL Server数据工具(SSDT)、SQL Server集成服务(SSIS)、sqlcmd、bcp、PowerShell以及Power BI Desktop来连接至sdwdb1数据库。

要尝试这些示例,您必须启动并运行数据库,因此请注意避免累积产生意外的数据库费用。此外,除非您在Azure提供的30天免费试用期内运行该服务,或者您持有额外的MSDN积分,否则您必须为使用SQL数据仓库支付费用。 幸运的是,您可以在不使用数据库时将其暂停,不过不要忘记这么去做就好,因为这些订阅计算费用会快速进行累积。

使用SQL Server Management Studio建立连接

在创建了我的首个SQL数据仓库数据库之后,我启动了SSMS的SQL Server 2014版本,并尝试连接到服务器和数据库,但是我却发现该过程并没有想象中的那么简单。于是,我上网进行了一些查询,并很快发现微软目前尚未提供对SSMS的支持。

我很难相信微软会不支持SSMS,但是我在连接SQL数据仓库方面已经小有成效了,所以我继续了我的工作,以查看自己究竟还能做些什么事。 首先,我通过对象资源管理器创建了一个新的数据库引擎连接。在“连接至服务器”这一对话框中,我指定了服务器的名称,并选择了SQL Server身份验证,然后还提供了登录帐户名称和密码,其如下图所示。

在我初次点击连接时,我收到了网络错误的提示。 所以我又进行了一次尝试,而这次我成功地建立了一个连接。 从这以后,我发现我每次尝试建立连接时经常会收到网络错误提示,但当我再试一次之后就能成功,而且服务器也会被添加到对象资源管理器中,其如下图所示。

但是,您可能会注意到,尽管图中列出了sdwdb1数据库,但它却没有任何表格,所以这使得能通过对象资源管理器来探索对象的大部分优势都失效了。即便如此,我还是尝试使用数据库来启动一个新的查询,但却收到了以下的错误提示:

我不知道出现了什么错误,所以我自然而然地点击了OK按钮,并继续点击了新的查询选项卡,接着运行了以下的SELECT(选择)语句:

SELECT * FROM sys.tables

出乎我意料的是,这竟然奏效了,并为我输出了一张罗列了sdwdb1数据库表格的清单。 现在我终于能至少弄清楚那里到底有什么,也能使用其它系统视图(如sys.columns)来检索额外的模式信息了。

在取得了一些成效之后,我决定对其中的一个用户表格运行以下查询指令。在本示例中,我选择的是FactInternetSales用户表格:

SELECT TOP 10 CustomerKey, SUM(SalesAmount) TotalSales

FROM FactInternetSales

GROUP BY CustomerKey

ORDER BY TotalSales DESC

该查询简单地根据客户密钥对数据进行了分组并计算了总数。 在我运行该查询时,它以相对较快的顺序向我输出了数据,并给出了以下的结果:

CustomerKey TotalSales

12301 13295.38

12132 13294.27

12308 13269.27

12131 13265.99

12300 13242.70

12321 13215.65

12124 13195.64

12307 13173.19

12296 13164.64

11433 12909.6682

为了进行验证,我测试了SSDT中的查询并比较了结果,而结果显示它们是正确的,这给予了我一定的自信,让我知道我至少可以使用SSMS来检索SQL数据仓库中的数据了。 但是,我还是不推荐这种连接服务的方法,相反,直到微软正式支持SSMS之前,我都可能会坚持使用SSDT。 不过,我们至少知道这种方法能奏效,所以在必要时也是可以采取这种方式的。

使用SQL Server数据工具建立连接

尽管微软目前尚不支持SSMS,但它却能支持通过SSDT中的数据库引擎功能来从Visual Studio连接至SQL 数据仓库。 在您进入Visual Studio / SSDT环境之后,请打开SQL Server对象资源管理器,它是与SSMS中的对象资源管理器相类似的。 随后,请点击添加SQL Server按钮。

当出现了连接对话框之后,请如下图所示的那样输入服务器名称,并选择SQL Server身份验证,然后指定登录名和密码。

当我首次点击连接时,我再次收到了在SSMS中收到过的网络错误提示,而就像在SSMS中所做的那样,当我第二次进行尝试时,我便成功地连接到服务器了。 这或许是因为我的系统或网络出现了问题,也有可能是微软出现了故障。无论如何,SQL Server对象资源管理器现在为我列出了所有的表格,其如下图所示。

我从数据库启动了一个新的查询,而且没有收到任何错误提示。 然后,我运行了以下的SELECT 语句(与SSMS中运行的语句一致),并收到了相同的结果:

SELECT TOP 10 CustomerKey, SUM(SalesAmount) TotalSales

FROM FactInternetSales

GROUP BY CustomerKey

ORDER BY TotalSales DESC

在本文中,我只为您演示了如何连接到SQL数据仓库并从数据库检索数据的方法,因此您要知道您还可以使用SSDT和其它工具去做更多的事情。具体请看下文!

网友评论
暂无评论!