Azure-ADF 抽取数据

1,Azure 访问地址

1,国际版

https://portal.azure.com/#homehttps://portal.azure.com/#home2,世纪互联中国版

Microsoft Azure 由世纪互联运营https://portal.azure.cn/2,创建资源组并且所有的后续组件都是再此资源下面创建。

3,创建Data Factory 工具

4,核心组件

  1. 管道(Pipeline)
  • 功能:逻辑工作流容器

  • 特点

    • 由多个活动组成

    • 支持参数化

    • 可调度执行

  • 典型使用:定义完整的数据处理流程

  1. 活动(Activity)
  • 功能:管道中的单个处理步骤

  • 类型

    • 数据移动(如Copy)

    • 数据转换(如Data Flow)

    • 控制流(如If Condition)

  • 示例:从Blob复制数据到SQL DB

  1. 数据集(Dataset)
  • 功能:输入/输出数据的结构定义

  • 特点

    • 指向具体数据存储

    • 定义数据格式

    • 支持分区定义

  • 示例:定义Azure SQL表的结构

  1. 链接服务(Linked Service)
  • 功能:连接外部资源的定义

  • 特点

    • 包含连接信息

    • 支持多种认证方式

    • 可重用

  • 示例:连接到Azure SQL Database的服务

  1. 集成运行时(Integration Runtime)
  • 功能:执行环境基础设施

  • 类型

    • Azure IR(完全托管)

    • 自托管IR(本地/混合云)

    • Azure-SSIS IR(运行SSIS包)

  • 选择依据:网络环境与性能需求

  1. 触发器(Trigger)
  • 功能:管道执行调度机制

  • 类型

    • 计划触发器(定时)

    • 事件触发器(如Blob上传)

    • 手动触发器

  • 示例:每天凌晨1点触发数据加载

5,抽取Demo

1)创建元数据表以及需要抽取的2个表。

CREATE TABLE [META].[META_SOURCE_OBJECTS]

(

SYSTEM_NAME\] \[nvarchar\](100) NULL,--source_system_name 指定系统EBS系统 \[DATABASE_NAME\] \[nvarchar\](100) NULL,--source_DB_NAME 指定数据库APPS DB \[SCHEMA_NAME\] \[nvarchar\](100) NULL,--Synapse-schema_name 指定架构ODS \[OBJECT_NAME\] \[nvarchar\](255) NULL,--Synapse-Object_name 指定表名Customer \[INGEST_PATTERN\] \[nvarchar\](50) NULL,--Full,Increment,Special 指定抽取模式 increment \[TRIGGER_TIME\] \[nvarchar\](100) NULL,--0100 start-time at 01:00 AM 指定抽取开始时间 \[ACTIVITY_CONFIG\] \[nvarchar\](4000) NULL,--{"field_name":"CREATED_DATE_TIME"} 指定增量字段 \[ENABLED\] \[bit\] NOT NULL,-- enabled_status Y是启动,N是不启动 \[USER_DEFINE_CONFIG\] \[nvarchar\](4000) NULL,--{"target_name":"EKKO"}--用户自定义例如表,或者需要指定抽取的时间 getdate()-30 \[CREATE_TIME\] \[datetime\] NULL --指定创建时间 ) DECLARE @DynamicQuery NVARCHAR(MAX); SELECT @DynamicQuery = STRING_AGG( CONCAT('SELECT ', '''', SYSTEM_NAME, ''' AS SYSTEM_NAME, ', '''', DATABASE_NAME, ''' AS DATABASE_NAME, ', '''', SCHEMA_NAME, ''' AS SCHEMA_NAME, ', '''', OBJECT_NAME, ''' AS OBJECT_NAME, ', '''', INGEST_PATTERN, ''' AS INGEST_PATTERN, ', '''', TRIGGER_TIME, ''' AS TRIGGER_TIME, ', '''', ACTIVITY_CONFIG, ''' AS ACTIVITY_CONFIG, ', '''', ENABLED, ''' AS ENABLED, ', '''', USER_DEFINE_CONFIG , ''' AS USER_DEFINE_CONFIG ,', '''', CREATE_TIME , ''' AS CREATE_TIME ,', '''', JSON_VALUE(ACTIVITY_CONFIG, '$.field_name') ,''' AS field_name,', '', USER_DEFINE_CONFIG , ' AS Filter_Date ' ), ' UNION ALL ' ) FROM META.META_SOURCE_OBJECTS where object_name ='GLD_BILLING_BUNDLE_TRIPS' system_name='EBS' and ENABLED=1; -- 添加调试输出 PRINT @DynamicQuery; EXEC sp_executesql @DynamicQuery; --其中 json_value function直接可以使用, 参数user_define_config 是动态参数 1,新增lookup组件![](https://i-blog.csdnimg.cn/direct/3a1906c5f150479dbc98b780ff0276fc.png) 2,新增 forEach组件获取上一步lookup中查询的表数据 @activity('table_lists').output.value ![](https://i-blog.csdnimg.cn/direct/baf8f4af63504cf78970be41a3bd0d44.png) 3,新增Switch 组件判断抽取模式@item().INGEST_PATTERN ![](https://i-blog.csdnimg.cn/direct/c0d2d5ae09fe446b80d4815af82a2c82.png) 4,根据不用条件执行对应的抽取 如下是Full 模式源数据 查询语句@concat('SELECT \* FROM ', item().SCHEMA_NAME ,'.',item().OBJECT_NAME) ![](https://i-blog.csdnimg.cn/direct/7f5ddb80ab874d0a9e83a6f925918d7f.png) 目标执行语句@{concat('truncate table ', 'STG_GOLD.', item().OBJECT_NAME)} ![](https://i-blog.csdnimg.cn/direct/08d210d4547e41c28a463542148e97bc.png) Mapping 不需要设置,但是Setting需要有个存储账号来存储信息 ![](https://i-blog.csdnimg.cn/direct/1be50b99304244e29056b1dd9958cf22.png) 5,对于stateful 源数据 @concat('SELECT \* FROM ', item().SCHEMA_NAME, '.', item().OBJECT_NAME, ' WHERE ', item().field_name, ' \>= to_date(''', item().LAST3MONTH_DAY, ''',''yyyy-MM-dd'')') ![](https://i-blog.csdnimg.cn/direct/fb928a5cb9f548d79da1ab0ef2a20a75.png) 对于目标 @concat('DELETE FROM STG_GOLD.', item().OBJECT_NAME, ' WHERE ', item().field_name, ' \>= CONVERT(DATE, ''', item().LAST3MONTH_DAY, ''') ' ) ![](https://i-blog.csdnimg.cn/direct/bcd589dca7c2460c9d1b5baade1b658c.png) setting 设置 ![](https://i-blog.csdnimg.cn/direct/776b0be6b2b94b1882a4fb70532c1c8e.png) 对于抽取Ihistorian 数据 DECLARE @errorMessage nvarchar(4000) DECLARE @TestVar NVARCHAR(MAX) DECLARE @Interval nvarchar(max) ='60' DECLARE @TestServer NVARCHAR(MAX) = 'PA4' DECLARE @FullTag NVARCHAR(MAX) = @TestServer + '/' + @TestVar DECLARE @StartTime DATE = FORMAT(DATEADD(DAY,-1,DATEADD(HOUR, 8, GETUTCDATE())),'yyyy-MM-dd') DECLARE @EndTime DATE = FORMAT(DATEADD(DAY,-0,DATEADD(HOUR, 8, GETUTCDATE())),'yyyy-MM-dd') DECLARE @TMP_TABLE TABLE ( [TAGNAME] [varchar](200) NULL,[TIME_STAMP] [datetime] NULL,[VALUE] [varchar](50) NULL,[QUALITY] [varchar](50) NULL ) DECLARE @TAG_TABLE TABLE (TAG NVARCHAR(MAX)) DECLARE C_DATE CURSOR FOR SELECT CONVERT(NVARCHAR(10),DATEADD(DAY,number-1,@StartTime),120) AS StartTime, CONVERT(NVARCHAR(10),DATEADD(DAY,number+1,@StartTime),120) AS EndTime , T.TAG AS TestVar FROM master..spt_values CROSS JOIN @TAG_TABLE T WHERE type = 'p' AND number <= DATEDIFF(DAY,@StartTime,@EndTime) INSERT INTO @TAG_TABLE select 'PA4/Beijing_PBSG.Beijing_PBSG.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Beijing_PBSG.Beijing_PBSG.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Beijing_PBSG.Beijing_PBSG.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Changzhou_CND.Changzhou_CND.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Changzhou_CND.Changzhou_CND.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Changzhou_CND.Changzhou_CND.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Chongqing_LSG.Chongqing_LSG.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Chongqing_LSG.Chongqing_LSG.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Chongqing_LSG.Chongqing_LSG.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Guangzhou_PGIG.Guangzhou_PGIG.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Guangzhou_PGIG.Guangzhou_PGIG.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Guangzhou_PGIG.Guangzhou_PGIG.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Hefei_PHFIG.Hefei_PHFIG.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Hefei_PHFIG.Hefei_PHFIG.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Hefei_PHFIG.Hefei_PHFIG.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Huizhou_PHIG1.Huizhou_PHIG1.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Huizhou_PHIG1.Huizhou_PHIG1.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Huizhou_PHIG1.Huizhou_PHIG1.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Huizhou_PHIG2.Huizhou_PHIG2.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Huizhou_PHIG2.Huizhou_PHIG2.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Huizhou_PHIG2.Huizhou_PHIG2.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/JiaXing_PJIG.JiaXing_PJIG.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/JiaXing_PJIG.JiaXing_PJIG.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/JiaXing_PJIG.JiaXing_PJIG.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Jining_PJNIG.Jining_PJNIG.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Jining_PJNIG.Jining_PJNIG.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Jining_PJNIG.Jining_PJNIG.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Jiujiang_Bluestar.Jiujiang_Bluestar.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Langfang_LGL.Langfang_LGL.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Langfang_LGL.Langfang_LGL.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Langfang_LGL.Langfang_LGL.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/LuAn_Julan.LuAn_Julan.ECOVAR.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/LuAn_Julan.LuAn_Julan.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/LuAn_Julan.LuAn_Julan.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/LuAn_Julan.LuAn_Julan.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Maanshan_BMG.Maanshan_BMG.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Maanshan_BMG.Maanshan_BMG.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Maanshan_BMG.Maanshan_BMG.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Meishan_PSMI.Meishan_PSMI.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Meishan_PSMI.Meishan_PSMI.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Meishan_PSMI.Meishan_PSMI.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Nanjing_BYG.Nanjing_BYG.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Nanjing_BYG.Nanjing_BYG.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Nanjing_BYG.Nanjing_BYG.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Nanjing_LNCIP.Nanjing_LNCIP.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Nanjing_LNCIP.Nanjing_LNCIP.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Nanjing_LNCIP.Nanjing_LNCIP.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Nanjing_NPNIG.Nanjing_NPNIG.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Nanjing_NPNIG.Nanjing_NPNIG.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Nanjing_NPNIG.Nanjing_NPNIG.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Ningbo_LGN1.Ningbo_LGN1.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Ningbo_LGN1.Ningbo_LGN1.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Ningbo_LGN1.Ningbo_LGN1.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Ningbo_LGN4.Ningbo_LGN4.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Ningbo_LGN4.Ningbo_LGN4.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Ningbo_LGN4.Ningbo_LGN4.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Ningbo_LZG.Ningbo_LZG.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Ningbo_LZG.Ningbo_LZG.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Ningbo_LZG.Ningbo_LZG.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Qingdao_PQIG.Qingdao_PQIG.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Qingdao_PQIG.Qingdao_PQIG.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Qinzhou_PGXG.Qinzhou_PGXG.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Qinzhou_PGXG.Qinzhou_PGXG.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Qinzhou_PGXG.Qinzhou_PGXG.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Quanzhou_LFG.Quanzhou_LFG.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Quanzhou_LFG.Quanzhou_LFG.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Quanzhou_LFG.Quanzhou_LFG.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Quanzhou_LFG2.Quanzhou_LFG2.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Quanzhou_LFG2.Quanzhou_LFG2.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Quanzhou_LFG2.Quanzhou_LFG2.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Quanzhou_LQG.Quanzhou_LQG.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Quanzhou_LQG.Quanzhou_LQG.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Quanzhou_LQG.Quanzhou_LQG.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Shanghai_BSG.Shanghai_BSG.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Shanghai_BSG.Shanghai_BSG.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Shanghai_BSG.Shanghai_BSG.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Shanghai_PSS.Shanghai_PSS.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Shanghai_PSS.Shanghai_PSS.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Shanghai_PSS.Shanghai_PSS.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Shanghai_SPBI.Shanghai_SPBI.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Shanghai_SPBI.Shanghai_SPBI.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Shaoguan_PSG.Shaoguan_PSG.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Shaoguan_PSG.Shaoguan_PSG.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Shaoguan_PSG.Shaoguan_PSG.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Suzhou_SIPIII.Suzhou_SIPIII.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Suzhou_SIPIII.Suzhou_SIPIII.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Suzhou_SIPIII.Suzhou_SIPIII.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Taixing_Jinyan.Taixing_Jinyan.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Taixing_Jinyan.Taixing_Jinyan.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Taixing_Jinyan.Taixing_Jinyan.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Wuwei_PAIG.Wuwei_PAIG.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Wuwei_PAIG.Wuwei_PAIG.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Wuwei_PAIG.Wuwei_PAIG.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Xiamen_Haicang.Xiamen_Haicang.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Xiamen_Haicang.Xiamen_Haicang.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Xiamen_Haicang.Xiamen_Haicang.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Xiamen_Jimei.Xiamen_Jimei.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Xiamen_Jimei.Xiamen_Jimei.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Yangzhou_PYIG.Yangzhou_PYIG.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Yangzhou_PYIG.Yangzhou_PYIG.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Yangzhou_PYIG.Yangzhou_PYIG.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Yantai_LGY.Yantai_LGY.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Yantai_LGY.Yantai_LGY.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Yantai_LGY.Yantai_LGY.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Zhangzhou_LZG.Zhangzhou_LZG.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Zhangzhou_LZG.Zhangzhou_LZG.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Zhangzhou_LZG.Zhangzhou_LZG.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/ZhenJiang_PZIG.ZhenJiang_PZIG.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/ZhenJiang_PZIG.ZhenJiang_PZIG.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/ZhenJiang_PZIG.ZhenJiang_PZIG.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Zibo_BQG.Zibo_BQG.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Zibo_BQG.Zibo_BQG.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Zibo_BQG.Zibo_BQG.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' OPEN C_DATE FETCH NEXT FROM C_DATE INTO @StartTime,@EndTime,@TestVar WHILE (@@FETCH_STATUS = 0) BEGIN INSERT INTO @TMP_TABLE EXEC [dbo].[api_gs_avgarray] @TagName = @TestVar, @Server = @TestServer, @StartDate = @StartTime, @EndDate = @EndTime, @Interval = @Interval, @errorMessage = @errorMessage FETCH NEXT FROM C_DATE INTO @StartTime,@EndTime,@TestVar END CLOSE C_DATE DEALLOCATE C_DATE SELECT TAGNAME,dateadd(hour,8,TIME_STAMP) as TIME_STAMP,VALUE ,QUALITY FROM @TMP_TABLE where dateadd(hour,8,TIME_STAMP) >= dateadd(day,-1,cast( dateadd(hour,8,getdate()) as date)) order by TIME_STAMP asc 对于调用excel 子文件 6,监控