用于解析和分析Kettle XML文件的库
KettleParser的Python项目详细描述
About
KettleParser是一个Python库,它解析Kettle XML文件(.ktr和.kjb)以进行快速分析。它接受转换或作业的XML元数据并对其进行解析,以便您可以轻松地访问各种属性,而不必使用。您可以获取有关步骤、跳数、连接的信息,并将转换或作业转换为用于结构分析的python图形对象。
Usage
通过调用get_attribute方法,可以访问步骤、跃点和连接的所有元数据。有关更多信息,请参阅以下转换并通读下面的示例。
Parsing
目前,kettleparser只支持解析本地保存的完整kettle文件,而不支持原始xml字符串。这个 Parseclass是解析kettle文件(.ktr或.kjb)的主类。只要调用类并将文件路径传递给您的kettle文件即可:
>>>importKettleParser>>>my_transformation=KettleParser.Parse("/path/to/my_transformation.ktr")
Steps
转换中的所有步骤都可以通过steps属性进行迭代:
>>>forstepinmy_transformation.steps:...step.get_attribute("name")'Text file input'...step.get_attribute("type")'TextFileInput'
每种类型的步骤都有不同的属性,但您希望使用的常见属性是:
- name:步骤的名称–这将是同一转换中所有步骤的唯一值
- type:步骤类型
- copies:启动该步骤的副本数(仅限(.ktr文件)
要按启用或禁用的步骤进行筛选,请分别使用get_enabled_steps()或get_disabled_steps()方法。
Hops
转换中的所有跳都可以通过hops属性进行迭代:
>>>forhopinmy_transformation.hops:...hop.get_attribute("from")'Text file input'...hop.get_attribute("to")'Select values'...hop.get_attribute("enabled")True
每个跳包含三个主要属性:
- from:源步骤的名称
- to:目标步骤的名称
- enabled:是否已启用跃点?(布尔值)
对于转换,hops对象包含所有跃点:启用和禁用,包括错误处理(请注意,启用/禁用和错误处理不是互斥的)。要轻松筛选不同类型的跃点,请使用以下方法:
- get_enabled_hops():只返回已启用的跃点(包括错误处理)
- get_disabled_hops():只返回已禁用的跃点(包括错误处理)
- get_error_hops():只返回错误处理跃点的跃点(包括启用和禁用的跃点)
Graph
还可以通过调用kettlegraph类将转换表示为图形对象。这个类接受一个hop对象列表,用它来构建图形。
>>>importKettleParser>>>my_transformation=KettleParser.Parse("/path/to/my_transformation.ktr")>>>my_graph=KettleParser.KettleGraph(my_transformation.hops)
调用graph属性以获取python图形对象:
>>>my_graph.graph{'Text file input':['Select values'],'Filter rows':['Dummy (do nothing)','Text file output'],'Select values':['Filter rows']}
还可以通过使用find_all_paths()方法并将其传递给步骤名称来查找两个步骤之间的所有路径。此方法是一个生成器,允许您遍历所有可能的路径(请注意,非常复杂的转换在步骤之间可能有数千条路径):
>>>paths=my_graph.find_all_paths("Text file input","Text file output")>>>paths.next()['Text file input','Select values','Filter rows','Text file output']