ADLA错误预览外部表到SQL Azure

时间:2017-05-31 16:26:08

标签: azure azure-sql-database azure-data-lake u-sql

我在SQL Azure中有一个表,我正在尝试在Azure Data Lake Analytics中创建指向它的外部表

我创建了一个凭据和数据源,我可以确认它们是否有效,因为我可以查看其他外部表。但是当我尝试预览这个特定的表时,我得到以下错误:

Failed to connect to data source: 'MYDATASOURCE', with error(s): 'Incorrect syntax near the keyword 'SELECT'.
Incorrect syntax near ')'.'
CQO: Internal Error - Optimizer internal error.  Assert: csExtRowsetInfoNew != nullptr in managed\scopecqo.cpp:2235

知道可能导致此问题的原因是什么?它与表模式有关吗?

SQL Azure表架构:

[rel].[TABLE1NAME](
[FSCServiceRequestId] [int] IDENTITY(1,1) NOT NULL,
[ServiceRequestCRMId] [uniqueidentifier] NOT NULL,
[TicketNumberTitle] [nvarchar](100) NOT NULL,
[ProblemDescription] [nvarchar](max) NULL,
[FSCServiceRequestStatusId] [int] NOT NULL,
[FSCServiceRequestPriorityId] [int] NOT NULL,
[PriorityOverrideReason] [nvarchar](1000) NULL,
[RequestorPhoneNumber] [nvarchar](100) NULL,
[FSCProblemRoomNumber] [varchar](200) NULL,
[BuildingId] [int] NULL,
[FSCProblemClassId] [int] NOT NULL,
[FSCProblemTypeId] [int] NOT NULL,
[ReclassificationReason] [nvarchar](100) NULL,
[RequestCancellationReason] [nvarchar](2000) NULL,
[IsCancelledForReclassification] [bit] NULL,
[IsSurveyServiceRequest] [bit] NULL,
[ProblemOccurredUTCDate] [datetime] NULL,
[ProblemOccurredUTCYMD] [int] NULL,
[ProblemOccurredInBuildingTimeZoneDate] [datetime] NULL,
[CreationUTCDate] [datetime] NOT NULL,
[CreationUTCYMD] [int] NOT NULL,
[SubmittedUTCDate] [datetime] NULL,
[SubmittedInBuildingTimeZoneDate] [datetime] NULL,
[DueUTCDate] [datetime] NULL,
[DueUTCYMD] [int] NULL,
[DueInBuildingTimeZoneDate] [datetime] NULL,
[RequestedFutureDueUTCDate] [datetime] NULL,
[ProviderAdjustedDueInBuildingTimeZoneDate] [datetime] NULL,
[ProviderAdjustedDueInBuildingTimeZoneYMD] [int] NULL,
[Tier1WorkCompletionByBuildingTimeZoneDate] [datetime] NULL,
[Tier1WorkCompletionByBuildingTimeZoneYMD] [int] NULL,
[ModifiedUTCDate] [datetime] NULL,
[ModifiedByPersonnelId] [int] NULL,
[CompletionUTCDate] [datetime] NULL,
[CompletionUTCYMD] [int] NULL,
[CompletionInBuildingTimeZoneDate] [datetime] NULL,
[IsActivityComplete] [bit] NOT NULL,
[IsSLAMet] [bit] NULL,
[OwningTeamName] [varchar](255) NULL,
[CostCenterCode] [varchar](40) NULL,
[CaseOriginType] [nvarchar](100) NOT NULL,
[DeviceType] [nvarchar](100) NOT NULL,
[FSCProviderAccountId] [int] NOT NULL,
[CreatedFromSystemCode] [nvarchar](100) NULL,
[RequestorPersonnelId] [int] NOT NULL,
[RequestorEmailAlias] [varchar](30) NOT NULL,
[RequestorFullName] [varchar](100) NULL,
[RequestorIsSuperUser] [bit] NULL,
[RequestorIsProviderUser] [bit] NOT NULL,
[RequestorHeadCountTypeGroupDesc] [varchar](30) NOT NULL,
[RequestorCSCompanyAgencyName] [varchar](30) NOT NULL,
[RequestorProfitCenterCode] [char](10) NOT NULL,
[RequestorCostCenterCode] [char](10) NOT NULL,
[ContactPersonnelId] [int] NOT NULL,
[ContactEmailAlias] [varchar](30) NOT NULL,
[ContactFullName] [varchar](100) NOT NULL,
[ContactIsSuperUser] [bit] NOT NULL,
[ContactIsProviderUser] [bit] NOT NULL,
[ContactHeadCountTypeGroupDesc] [varchar](30) NOT NULL,
[ContactCSCompanyAgencyName] [varchar](30) NOT NULL,
[ContactProfitCenterCode] [char](10) NOT NULL,
[ContactCostCenterCode] [char](10) NOT NULL,
[OwnerPersonnelId] [int] NOT NULL,
[RoomTypeCode] [varchar](50) NULL,
[CreatedDate] [datetime] NOT NULL,
[CreatedBy] [varchar](30) NOT NULL,
[UpdatedDate] [datetime] NULL,
[UpdatedBy] [varchar](30) NULL,
[OverriddenStatus] [varchar](50) NULL
)

USQL外部表架构:

CREATE EXTERNAL TABLE IF NOT EXISTS dbo.TABLE1_Local
(
FSCServiceRequestId int,
ServiceRequestCRMId Guid,
TicketNumberTitle string,
ProblemDescription string,
FSCServiceRequestStatusId int,
FSCServiceRequestPriorityId int,
PriorityOverrideReason string,
RequestorPhoneNumber string,
FSCProblemRoomNumber string,
BuildingId int?,
FSCProblemClassId int,
FSCProblemTypeId int,
ReclassificationReason string,
RequestCancellationReason string,
IsCancelledForReclassification bool?,
IsSurveyServiceRequest bool?,
ProblemOccurredUTCDate DateTime?,
ProblemOccurredUTCYMD int?,
ProblemOccurredInBuildingTimeZoneDate DateTime?,
CreationUTCDate DateTime,
CreationUTCYMD int,
SubmittedUTCDate DateTime?,
SubmittedInBuildingTimeZoneDate DateTime?,
DueUTCDate DateTime?,
DueUTCYMD int?,
DueInBuildingTimeZoneDate DateTime?,
RequestedFutureDueUTCDate DateTime?,
ProviderAdjustedDueInBuildingTimeZoneDate DateTime?,
ProviderAdjustedDueInBuildingTimeZoneYMD int?,
Tier1WorkCompletionByBuildingTimeZoneDate DateTime?,
Tier1WorkCompletionByBuildingTimeZoneYMD int?,
ModifiedUTCDate DateTime?,
ModifiedByPersonnelId int?,
CompletionUTCDate DateTime?,
CompletionUTCYMD int?,
CompletionInBuildingTimeZoneDate DateTime?,
IsActivityComplete bool,
IsSLAMet bool?,
OwningTeamName string,
CostCenterCode string,
CaseOriginType string,
DeviceType string,
FSCProviderAccountId int,
CreatedFromSystemCode string,
RequestorPersonnelId int,
RequestorEmailAlias string,
RequestorFullName string,
RequestorIsSuperUser bool?,
RequestorIsProviderUser bool,
RequestorHeadCountTypeGroupDesc string,
RequestorCSCompanyAgencyName string,
RequestorProfitCenterCode string,
RequestorCostCenterCode string,
ContactPersonnelId int,
ContactEmailAlias string,
ContactFullName string,
ContactIsSuperUser bool,
ContactIsProviderUser bool,
ContactHeadCountTypeGroupDesc string,
ContactCSCompanyAgencyName string,
ContactProfitCenterCode string,
ContactCostCenterCode string,
OwnerPersonnelId int,
RoomTypeCode string,
CreatedDate DateTime,
CreatedBy string,
UpdatedDate DateTime?,
UpdatedBy string,
OverriddenStatus string
)
FROM MYDATASOURCE LOCATION "[rel].[TABLE1NAME]";

2 个答案:

答案 0 :(得分:1)

我能够通过从外部表中删除IDENTITY列来实现它。

答案 1 :(得分:0)

这似乎是一个已知的问题,修复工作正在进行中。 如果是这种情况,在推出修复程序之前的解决方法是用括号括起查询字符串,例如。

SELECT * FROM EXTERNAL <data source name> 
EXECUTE @"(<original_query_string>)"