Azure数据工厂-将XML源加载到SQL Sink-嵌套属性

时间:2020-08-10 07:02:36

标签: sql-server xml azure-data-factory azure-data-factory-2

经过几个月的手动每周处理一些XML文件的工作之后,我想在Data Factory中使该过程自动化。这些文件是医学摘要/期刊以及任何关联的图像

当前过程分为两部分-将摘要的详细信息加载到详细信息类型表中,然后将具有关联的abstractid的图像加载到单独的表中

抽象细节可以在Data Factory中正常工作-我已经采用了原始流程:

DECLARE @hdoc int

EXEC sp_xml_preparedocument @hdoc OUTPUT, @x

SELECT *
INTO Abstracts

FROM OPENXML (@hdoc, '/Jrnl-OR-COnf/Abstract', 2)
WITH (
        [AbstractID] [int],
        [SourceID] [int],
        [AbstractNum] [nvarchar](50),
        [AbstractType] [varchar](50),
        [Jrnl-OR-ConfID] [int],
        [Source] [nvarchar](20),
        [Jrnl-OR-ConfName] [nvarchar](500) ,
        [TitleAbbreviation] [varchar](512),
        [Location] [nvarchar](256),
        [PubPresDate] [date],
        [AddedDate] [date],
        [ISSN] [nvarchar](25),
        [AbstractTitle] [nvarchar](1024),
        [AbstractText] [nvarchar](max),
        [Authors] [nvarchar](max),
        [Affiliations] [nvarchar](max),
        [URL] [nvarchar](300)
)

并将其添加到“复制”活动

ADF1

但是-图像的第二个处理过程未正确处理,因为ADF似乎没有为每个图像正确地迭代属性数组,有些修改后,我尝试使用“ / off并没有得到所需的结果

这是它在SQL中正常工作的方式

SELECT *
INTO AbstractImages

FROM OPENXML (@hdoc, '/Jrnl-OR-COnf/Abstract/Images/Image', 2)
WITH (
        [AbstractID] [int] '../../AbstractID',          --Element
        [ImageData] [varbinary](max),                   --Element
        [imgID] [smallint] '@imgID'                     --Attribute
        )

EXEC sp_xml_removedocument @hdoc

我在ADF中的尝试:

ADF2

因此,我不太确定如何确保ADF迭代每个抽象ID链接到更高级别对象的图像属性数组。

很可能只是我的实现未遵循'../../AbstractID'的正确等效项

最后我只有AbstractId元素,没有ImgData或imgID

0 个答案:

没有答案