如何用旧世界计算的新InDatabase扩展构造一个简单的数据库查询

Jana_OWCJana_OWC 主持人,成员,KB贡献者职位:14因素二世
大家好!

我在去年年底/今年年初发布了一些关于旧世界计算扩展的教程,我很高兴终于能够为您提供另一个教程,解释使用我们的新扩展查询数据库的第一步InDatabase扩展,现在可在RapidMiner市场!

这个扩展将极大地方便您的数据库任务与RapidMiner,使您能够使用扩展的操作符查询数据库或在SQL中编写自定义查询。最重要的是,它带来了交易安全到RapidMiner,确保数据一致性和正确的结果!

第一个教程将展示第一个查询的基本步骤,但稍后将介绍更高级的步骤,讨论更复杂的查询,如何在享受事务安全性的同时更新数据库,以及如何使用自动生成ID特色-敬请期待!

第一步:列出表格

在本教程中,我们将使用预测性维护场景:假设您正在为一个拥有各种机器的工厂工作。这些机器发送传感器数据,如电压、压力或振动,以及是否发生了几种错误之一。对于我们的预测性维护任务,已经为我们编译了一个数据库,其中包含了从机器收集的几个月的数据。该数据库还包含识别信息,如ID、机器的年龄、制造商以及测量的日期和时间。

首先,让我们看一下我们正在处理的内容:我们将使用List Tables操作符查看数据库中存储了多少表和哪些表。为此,只需找到操作符并将其添加到流程中。指定数据库连接,连接端口到流程面板的结果端口,并执行流程。



结果表明:我们有两个表,机械日志和机器。听起来像一个好主意,有这些表在一个例子集,能够执行我们的预测性维护任务。


下一个:使用查询数据库操作符

SQL还是查询构建操作符?

首先删除List Tables操作符,然后将扩展的Query Database操作符拖放到流程面板上。看一下这些参数,您可以看到可以定义数据库连接并使用SQL输入自定义查询。下面的参数与自定义查询本身有关:启用通用引号,以便能够对表名使用单引号标识符('),对查询中的字符串使用双引号值("),从而实现跨数据库系统的基本兼容性。您还可以选择使用显式参数类型并向列表中添加参数。此外,您还可以指定希望使用的日期格式。在底部的优化名称功能也是可用的,如果你选择不写自己的自定义查询,但使用扩展的查询构建操作符:这个功能起源于我们的Jackhammer扩展,并适用于关于名称的最佳实践到你的例子集,渲染属性名称到UpperCamelCase。



为了演示查询构建操作符,我们今天不编写自定义查询,因此只需要指定数据库连接。为了构建带有操作符的查询,我们现在向流程添加一个Define query操作符,并在这里指定数据库连接。一旦我们将它连接到Query Database操作符,关于自定义查询的参数将被隐藏。

使用操作符构建查询:进入子流程

现在输入Define Query操作符的子流程。在这里,我们将添加查询的构建块。我们从Use Table开始指定我们想要使用的表。由于我们希望将这两个表连接到一个示例集中,因此需要其中两个表。在参数中,分别选择表名、machinery_log和machines。如果单击下拉按钮时没有建议,请单击刷新按钮以显示建议。



接下来,将Join操作符拖到流程上。在操作符的参数中,您可以选择连接类型(inner、left或right),我们将其保留为inner。您还可以为在连接后的结果示例集中出现两次的属性输入后缀。这里的默认值是_new,但您可以将其更改为任何您喜欢或对您和您的数据有意义的值(例如,如果您的表已经包含以_new结尾的列名,您可能希望更改它,以避免混淆)。



正如您所看到的,Join操作符上方有一个小小的感叹号警告符号,这是因为我们还没有设置连接条件。双击操作符以进入子流程,然后在操作符面板中找到扩展的Conditions文件夹,以查看可用的条件:Condition操作符用于Filter Rows操作符,但现在相关的是Equals、and和Or。我们需要Equals操作符,以便可以对两个表中的ID列执行连接。在操作员参数中选择这些列并进行所有连接。



现在我们可以执行这个过程来第一次看到我们的ExampleSet:

这里我们有一个由两个表组成的连接的ExampleSet。它正确地使用了ID列来连接它们。当然,这个属性我们有两次,所以最好清除我们的ExampleSet中的备用属性。还要注意的是,属性名还没有使用UpperCamelCase,也就是说,我们在这里没有采用最佳实践。幸运的是,我们可以使用扩展的优化名称功能,只需要记住在查询数据库操作符的参数中检查相关选项。

微调:过滤属性和优化名称

要进行更改,请回到流程并启用优化名称。



然后在Query Database操作符后面添加Select Attributes操作符,并输入必要的详细信息。请注意,属性将以新的名称到达操作符,但如果你有同步元数据和自动验证,在进程菜单下找到,激活,RapidMiner应该意识到这一点,这意味着你可以简单地从下拉菜单中选择_new属性,一切都应该正常工作。如果没有,检查是否激活了正确的设置,然后再试一次,或者,作为最后的解决方案,手动输入属性的名称,因为它将出现在UpperCamelCase中,所以对于我们的示例,这将是MachineIdNew。



现在我们可以点击播放按钮,看看这两个改动是否达到了我们的预期效果:



看上去不错!我们只剩下一个ID属性,所有名称都符合最佳实践。我们现在可以使用这个ExampleSet来执行预测性维护任务。在下一篇教程中,我们将展示如何使用扩展的操作符来构造更复杂的查询。
Pavithra_Rao sgenzer
    登录注册置评。