【问题标题】:Cross references between data warehouses in Azure SQL ServerAzure SQL Server 中数据仓库之间的交叉引用
【发布时间】:2020-02-07 12:21:54
【问题描述】:

在一个 SQL Server 实例中,我有这两个数据仓库:

sqlwarehouse1 
sqlwarehouse2

sqlwarehouse2,我有一张桌子dbo.test

我如何从sqlwarehouse1 引用此表?

在 Azure SQL 数据仓库中是否可以进行这种跨数据仓库通信?

【问题讨论】:

  • 您必须配置外部数据源才能实现此目的。
  • 谢谢 Larnu,请详细说明一下。您的意思是,表 dbo.test 应该指向外部源,如 blob,而“sqlwarehouse1”应该来自 blob?
  • 我不经常使用 Azure,而且当我使用 Azure 时,我从来不用这样做。虽然有答案,例如Not able to do cross database query in SQL Azure
  • 您能描述一下您要实现的业务目标(不是您想要什么,而是为什么)?

标签: sql-server azure azure-sql-data-warehouse


【解决方案1】:

Azure SQL DW(现在称为 Azure Synapse Analytics)目前无法连接到另一个 DW。 Polybase 目前只是从文件中读取。

您可以创建一个小型 Azure SQL 数据库用于连接到 DW,如下所示:

 CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'pass@word1'; 
 CREATE DATABASE SCOPED CREDENTIAL DWCredential 
 WITH IDENTITY = 'usernameHere', 
 SECRET = 'passwordHere';  


 CREATE EXTERNAL DATA SOURCE DWDataSource WITH 
    (TYPE = RDBMS, 
    LOCATION = 'yourservername.database.windows.net', 
    DATABASE_NAME = 'yourdw', 
    CREDENTIAL = DWCredential, 
) ;



CREATE EXTERNAL TABLE [dbo].MyName 
(   [ProductKey] [int] NOT NULL,
    [ProductAlternateKey] [nvarchar](25) NULL,
    [EndDate] [datetime] NULL,
    [Status] [nvarchar](7) NULL) 
WITH 
( DATA_SOURCE = DWDataSource
,SCHEMA_NAME = N'dbo',  
        OBJECT_NAME = N'YourDwTableName') 


select * from MyName



--or run an exact query against SQL DW directly:
exec sp_execute_remote @data_source_name = N'DWDataSource', @stmt  = N'SELECT distinct ModelName from dbo.DimProduct'

【讨论】:

  • 非常感谢 Greg,我会解决这个问题并在这里更新...所以 SQL 数据库中的外部表,我可以从 sqlware house2 调用吗?
  • 嗨 Greg,使用上述解决方案,我可以在 SQL 数据库中创建外部表并在 DW1 中查询表...现在如何从 DW2 引用 SQL DB 中的外部表? ..我认为我们完成了一半...请建议我剩下的
  • 微软参考说 Azure SQL DW 只支持 Blob 存储作为外部数据源 "social.msdn.microsoft.com/Forums/sqlserver/en-US/…"
  • 找到的一个解决方案是将数据从 DW1 导出到 Blob 并作为外部表从 Blob "docs.qubole.com/en/latest/user-guide/analyze/tsql.html" 导入到 DW2
  • CREATE EXTERNAL TABLE AS SELECT 从 DW1 导出到 Blob,如果要移动大量数据,从 DW2 中的外部表中选择无疑是带宽最高的选项。
猜你喜欢
  • 1970-01-01
  • 2016-01-10
  • 2016-06-30
  • 1970-01-01
  • 1970-01-01
  • 2016-10-26
  • 1970-01-01
  • 1970-01-01
  • 2016-02-06
相关资源
最近更新 更多