datacleaner第六部分

第六部分,DataCleaner监视web服务

第十七章。工作引发

文摘

DataCleaner网络监视器通常处理的调度工作,但有时你需要手动触发。有时需要手动触发他们的第三方系统。

在这一章,一个web服务引发DataCleaner DataCleaner监视web应用程序的工作是解释说。

触发服务

web服务可及的HTTP URL:

/DataCleaner-monitor/repository/{tenant}/jobs/{job}.trigger

从触发器web服务的响应是一个JSON文档看起来像这样:

{ "status":"PENDING", "logOutput":null, "endDate":null, "beginDate":null, "resultId":"Customer completeness-1349876418933", "triggeredBy":"admin" }

选择这些参数还可以添加:

参数 描述
设置为“真正的”如果服务器应该等到回应之前执行的工作。这将确保客户能够阅读“地位”,要么是“成功”或“失败”(除非出现超时)。
timeoutMillis 在结合使用“块”。设置的最大响应之前等待的毫秒数。

使用这些参数,一个典型的反应是这样的:

{ "status":"SUCCESS", "logOutput": "2012-10-10 16:04:02 - Job execution BEGIN\n 2012-10-10 16:04:02 - Row processing of table Table[name=CUSTOMERS,type=TABLE,remarks=null] BEGIN\n - Query: SELECT \"CUSTOMERS\".\"PHONE\", \"CUSTOMERS\".\"POSTALCODE\", \"CUSTOMERS\".\"ADDRESSLINE1\", \"CUSTOMERS\".\"COUNTRY\", \"CUSTOMERS\".\"CUSTOMERNUMBER\", \"CUSTOMERS\".\"CONTACTFIRSTNAME\", \"CUSTOMERS\".\"CITY\", \"CUSTOMERS\".\"CUSTOMERNAME\", \"CUSTOMERS\".\"CONTACTLASTNAME\" FROM PUBLIC.\"CUSTOMERS\"\n - Expected row count: 133\n 2012-10-10 16:04:02 - Row processing of table Table[name=CUSTOMERS,type=TABLE,remarks=null] SUCCESS\n 2012-10-10 16:04:02 - Result gathered from analyzer: ImmutableAnalyzerJob[name=null,analyzer=Completeness analyzer]\n 2012-10-10 16:04:03 - Job execution SUCCESS", "endDate":"Wed Oct 10 16:04:03 CEST 2012", "beginDate":"Wed Oct 10 16:04:02 CEST 2012", "resultId":"Customer completeness-1349877840924", "triggeredBy":"admin" }

轮询执行状态

通常是不实际使用“块”服务参数,如果工作是一项长期的工作。而不是您可以检索作业执行URL使用此服务的状态:

/DataCleaner-monitor/repository/{tenant}/logs/{resultId}

resultId的URL在这一部分想匹配的resultId来自触发器服务的反应。

服务的响应将执行状态的XML表示。例如:

<ns4:execution-log xmlns="http://eobjects.org/datacleaner/schedule/1.0" xmlns:ns2="http://eobjects.org/datacleaner/shared/1.0" xmlns:ns3="http://eobjects.org/datacleaner/timeline/1.0" xmlns:ns4="http://eobjects.org/datacleaner/execution-log/1.0"> <ns4:result-id>Customer duplicates-1347004507995</ns4:result-id> <ns4:job-begin-date>2012-09-07T09:55:10.607+02:00</ns4:job-begin-date> <ns4:job-end-date>2012-09-07T09:55:19.661+02:00</ns4:job-end-date> <ns4:execution-status>SUCCESS</ns4:execution-status> <ns4:trigger-type>MANUAL</ns4:trigger-type> <ns4:triggered-by>admin</ns4:triggered-by> <schedule> <alerts/> </schedule> <ns4:log-output> 2012-09-07 09:55:10 - Job execution BEGIN 2012-09-07 09:55:10 - Row processing of table Table[name=CUSTOMERS,type=TABLE,remarks=null] BEGIN - Query: SELECT "CUSTOMERS"."PHONE", "CUSTOMERS"."STATE", "CUSTOMERS"."POSTALCODE", "CUSTOMERS"."ADDRESSLINE1", "CUSTOMERS"."ADDRESSLINE2", "CUSTOMERS"."COUNTRY", "CUSTOMERS"."CUSTOMERNUMBER", "CUSTOMERS"."CONTACTFIRSTNAME", "CUSTOMERS"."CITY", "CUSTOMERS"."CUSTOMERNAME", "CUSTOMERS"."CONTACTLASTNAME" FROM PUBLIC."CUSTOMERS" - Expected row count: 130 2012-09-07 09:55:12 - Row processing of table Table[name=CUSTOMERS,type=TABLE,remarks=null] SUCCESS 2012-09-07 09:55:12 - Result gathered from analyzer: ImmutableAnalyzerJob[name=null,analyzer=Duplicate detection] 2012-09-07 09:55:19 - Job execution SUCCESS </ns4:log-output> </ns4:execution-log>

第18章。库导航

文摘

在这一章里,我们将学习如何使用web服务url导航DataCleaner储存库。存储库可以在根DataCleaner监视web应用程序的水平。访问当然是局限于租户的主文件夹。因此,所有这些web服务位于url从形式:

/DataCleaner-monitor/repository/DC/...

其中“直流”是租户标识符和DataCleaner-monitor是web应用程序归档文件的名称。

工作文件

工作文件是可用的保留文件夹名称“工作”。让所有的工作文件清单(以JSON格式),至:

/DataCleaner-monitor/repository/DC/jobs

其中“直流”是租户标识符和DataCleaner-monitor是web应用程序归档文件的名称。

结果将像这个例子的结果:

[ {"repository_path":"/DC/jobs/Contributor name cleansing.analysis.xml", "name":"Contributor name cleansing","filename":"Contributor name cleansing.analysis.xml"}, {"repository_path":"/DC/jobs/Customer completeness.analysis.xml", "name":"Customer completeness","filename":"Customer completeness.analysis.xml"}, {"repository_path":"/DC/jobs/Customer duplicates.analysis.xml", "name":"Customer duplicates","filename":"Customer duplicates.analysis.xml"}, {"repository_path":"/DC/jobs/product_profiling.analysis.xml", "name":"product_profiling","filename":"product_profiling.analysis.xml"} ]

进一步导航到一个存储库路径,你可以阅读完整的XML描述的工作,如所描述的分析工作文件一章:

/DataCleaner-monitor/repository/DC/jobs/product_profiling.analysis.xml

“直流”租户标识符的地方,“product_profiling”工作和“DataCleaner-monitor”的名字是web应用程序存档的名字。

结果文件

结果文件中可用保留文件夹名称“结果”。让所有的工作文件清单(以JSON格式),至:

/DataCleaner-monitor/repository/DC/results

其中“直流”是租户标识符和DataCleaner-monitor是web应用程序归档文件的名称。

结果将像这个例子的结果:

[ {"repository_path":"/DC/results/Customer completeness-1345128427583.analysis.result.dat", "filename":"Customer completeness-1345128427583.analysis.result.dat"}, {"repository_path":"/DC/results/Customer completeness-1345200106074.analysis.result.dat", "filename":"Customer completeness-1345200106074.analysis.result.dat"} ]

进一步导航到一个存储库的路径,你将能够检查分析结果,显示在HTML格式。

/DataCleaner-monitor/repository/DC/results/Customer completeness-1345200106074.analysis.result.dat

“直流”租户标识符的地方,“客户完整性”是工作的名称,“1345200106074”是结果的时间戳和“DataCleaner-monitor”是web应用程序存档的名字。

上传内容存储库

文件可以使用HTTP POST上传请求上载到存储库中。可上传的文件的类型是:

  1. (.analysis DataCleaner工作。xml文件)使用这个URL模板,上传:

    POST /DataCleaner-monitor/repository/{tenant}/jobs/{job}.analysis.xml

    请求参数的文件是一个多部分文件包含新工作文件的内容。

  2. (.analysis.result DataCleaner结果。dat文件)使用这个URL模板,上传:

    POST /DataCleaner-monitor/repository/{tenant}/results/{result}.analysis.result.dat

    请求参数的文件是��个多部分文件包含新的结果文件的内容。

  3. 配置(conf.xml文件)使用这个URL模板,上传:

    POST /DataCleaner-monitor/repository/{tenant}/conf.xml

    请求参数的文件是一个多部分文件包含配置文件的内容。

修改结果的元数据

在某些情况下,您可以有结果DataCleaner监控存储库中没有正确配置。特别是我们有时看到这些情况:

  1. 的注册日期的结果可能不是正确的,如果结果是比它所代表的数据在稍后的时间。

  2. 相关工作的名称是错误的,如果从桌面应用程序,但结果是上传客户端工作的引用。

为了解决这种情况,有一个结果修改web服务可用。服务需要管理的安全角色。

请求URL的URL是一样的检查结果,但.analysis.result。dat”被替换为“.modify”:

POST /DataCleaner-monitor/repository/{tenant}/results/{result}.modify

POST请求的身体需要一个JSON文档,指定新的结果的元数据文件。这里有一个例子:

{ "job":"name of new job", "date":"2012-10-17 21:47:00", "overwrite":true }

重命名工作

重命名工作DataCleaner监控存储库是修改可能通过专用网络服务的工作。

请求URL相同的URL vieweing工作XML,但是.analysis。xml”被替换为“.modify”:

POST /DataCleaner-monitor/repository/{tenant}/jobs/{job}.modify

POST请求的身体需要一个JSON文档,指定新的结果的元数据文件。这里有一个例子:

{ "name":"new name of job", "overwrite":true }

复制工作

DataCleaner监控存储库中复制一份工作是复制可能通过专用网络服务的工作。

请求URL相同的URL vieweing工作XML,但是.analysis。xml”被替换为“.copy”:

POST /DataCleaner-monitor/repository/{tenant}/jobs/{job}.copy

POST请求的身体需要一个JSON文档,指定新的结果的元数据文件。这里有一个例子:

{ "name":"name of copy " }

删除工作

DataCleaner监控存储库中删除一个工作是删除可能通过专用网络服务的工作。

请求URL相同的URL vieweing工作XML,但是.analysis。xml”被替换为“delete”:

还请注意, 所有相关的结果,时间表和日程将被删除,删除工作。

POST /DataCleaner-monitor/repository/{tenant}/jobs/{job}.delete

POST请求不需要参数或身体的信息。

19章。度量web服务

文摘

使用web服务访问数据质量标准也可能使用DataCleaner监视器。在这一章里,我们将解释。

指标的背景

数据质量标准都包含在结果文件。根据产生结果的工作,结果可能包含不同的指标。例如,如果你有一个值分布分析仪的工作,你的结果会公开“价值”指标(以及更多)。

事情进一步复杂化,一些指标参数化。一个度量可以参数化 列名或者一个 查询字符串例如,一些分析程序(如字符串分析仪或数字分析仪)记录指标同时为多个列。检索指标从这些分析需要提供一列名称作为一个参数。其他指标的“价值”度量值分布需要一个字符串参数,指定值的计算。

可用的指标列表

得到一系列指标暴露于一个特定的结果,使用以下URL模式:

GET /DataCleaner-monitor/repository/DC/results/[resultname].metrics

这里有一个例子的结果:

[ {"children":null,"analyzerDescriptorName":"Completeness analyzer","metricDescriptorName":"Row count", "analyzerName":null,"analyzerInputName":null,"parameterizedByColumnName":false,"parameterizedByQueryString":false, "metricDisplayName":null,"metricColor":null,"formula":null,"paramColumnName":null,"paramQueryString":null}, {"children":null,"analyzerDescriptorName":"Completeness analyzer","metricDescriptorName":"Valid row count", "analyzerName":null,"analyzerInputName":null,"parameterizedByColumnName":false,"parameterizedByQueryString":false, "metricDisplayName":null,"metricColor":null,"formula":null,"paramColumnName":null,"paramQueryString":null}, {"children":null,"analyzerDescriptorName":"Completeness analyzer","metricDescriptorName":"Invalid row count", "analyzerName":null,"analyzerInputName":null,"parameterizedByColumnName":false,"parameterizedByQueryString":false, "metricDisplayName":null,"metricColor":null,"formula":null,"paramColumnName":null,"paramQueryString":null} ]

从指标列表中我们可以看到,携带3度量的结果 完整性分析仪这个分析器只暴露了一些基本指标,这使得它一个很好的例子,但大多数其他分析仪暴露更多。

特定的度量指标的值

使用可用的指标我们之前看到的,我们可以构建自己的感兴趣的指标列表。这个列表可以发送到相同的URL的HTTP POST请求:

POST /DataCleaner-monitor/repository/DC/results/[resultname].metrics

作为请求体我们需要提供我们感兴趣的指标列表。Null值可以被排除在外。例如:

[ {"analyzerDescriptorName":"Completeness analyzer","metricDescriptorName":"Valid row count"}, {"analyzerDescriptorName":"Completeness analyzer","metricDescriptorName":"Invalid row count"} ]

这将返回一个响应如下:

{ "metricDate":1346154850730, "metricValues":[ {"displayName":"Valid row count","value":123}, {"displayName":"Invalid row count","value":19}] }

第20章。原子转换(数据清洗服务)

文摘

在这一章里,我们将学习如何使用DataCleaner监视器作为web服务调用DataCleaner工作需/动态数据清理操作。像导航库的情况下,这些web服务位于url从形式:

/ DataCleaner-monitor /仓库/ DC /…

其中“直流”是租户标识符和DataCleaner-monitor是web应用程序归档文件的名称。

原子转换服务是什么?

DataCleaner工作通常作用于批记录,例如所有的记录在一个CSV文件。然而,任何DataCleaner工作也可以用来处理单记录。这一特性称为“原子转换”。这种转换可以作为数据处理管道在SOA架构的一部分或在web应用程序中灵活的数据处理需求。

创建一个原子转换是很容易的。可以使用任何DataCleaner工作执行原子转换。简单地创建一个工作做一些转换(从一个简单的字符串长度的操作到一个完整的链地址清洗和正则表达式解析),和工作在DataCleaner监控存储库中。专门的web服务端点将自动使用工作作为一个原子转换。端点URL将:

/DataCleaner-monitor/repository/DC/jobs/[jobname].invoke

调用原子转换

原子转换调用服务的合同是动态的,根据合同所定义的源数据和转换数据的工作。

web服务是基于JSON数据。您需要提供相对应的JSON数据的原始记录格式的工作。

例如,假设一个工作,定义以下JavaScript变换有两个源列(POSTALCODE和国家):

web服务将因此希望每个JSON记录包含两个值。服务接收一个或多个记录在它的有效载荷。使用一个HTTP POST的身体像这样(3记录和2列):

{"rows":[ {"values":["2200","DK"]}, {"values":["2200",""]}, {"values":["DK2200","DK"]} ]}

和产生的响应的身体是这样的:

{ "rows":[ {"values":["DK2200"]}, {"values":["2200"]}, {"values":["DK2200"]} ], "columns":[ "Country postalcode" ] }

注意,请求的内容类型的头��假定为application / json。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值