扬声器
|
成绩单
|
| 乔治·拉明 (Siltronic AG) |
大家好。 |
| |
今天我想谈谈从分布式和复杂的来源获取数据的策略和示例。 |
| |
我的名字是 Georg Raming,我的工作是 ??? 的流程开发在 Siltronic 生长单晶。 我在统计评估和流程方面有一些经验 |
| |
以及产品数据和统计教育。 我还负责 Siltronic 的 JMP 软件以及数百名用户的培训活动。 |
| |
Siltronic 是全球领先的高度专业化超纯硅晶圆制造商之一。 |
| |
一些技术提示。 因此,在本演示文稿中,我使用数据表而不是数据库,但此处显示的概念最初用于通过 ODBC 连接从关系数据库获取数据。 |
| |
JMP 查询生成器对于 JMP 数据表和数据库表的工作方式类似。 |
| |
今天演讲的目标是什么? 它旨在建立一些方法,以简单有效的方式将数据从数据库获取到 JMP 或 JMP 表中。 |
| |
我们首先来谈谈构建块。 |
| |
因此,其中一个可能是 JMP 数据表。 |
| |
因此,如果您从数据库查询生成了数据表,它可能如下所示。 因此,我在这里采用了 JMP Big Class 中著名的示例表,并通过 JMP 查询生成器查询了数据。 我删除了表格附带的所有脚本。 |
| |
并且你会发现 |
| |
对于此数据表,如果您通过 JMP 查询生成器、多个脚本和表变量进行查询。 |
| |
所以在该变量中,您可以看到 SQL。 所以数据表的定义是从表或数据库中得出的。 |
| |
你有这些脚本,一个源脚本,只需 |
| |
像这样获取原始数据表的另一个副本。 在这里您可以看到原始脚本也在那里,但这些脚本又来自 JMP 查询生成器。 |
| |
还有一个修改查询脚本,可让您在 JMP 数据表上编辑此查询并运行它。 |
| |
并且有一个从数据库更新的查询。 所以如果你改变了数据表中的数据 |
| |
或者数据表中有新数据,只需按此按钮即可更新数据。 |
| |
像这样。 这里的脚本也再次来自示例表。 |
| |
好的,下一个构建块是 JMP 查询生成器。 |
| |
因此,一旦数据库中有一个或多个表,您想要像这里一样进行查询,我从 JMP 示例表中获取了 Big Class 和 Big Class Families |
| |
目录并使用 JMP 查询生成器,例如 |
| |
在桌子上。 JMP 查询生成器。 |
| |
JMP 看到这些打开的表格 |
| |
主字段中也有一个,我可以像这样添加一个辅助表,然后 JMP 会自动在两个表之间创建联接。 那么他们是如何加入的。 您可以编辑此连接 |
| |
像这样。 |
| |
您将在此处看到详细信息。 |
| |
然后你可以继续构建查询 |
| |
像这样。 这里两张桌子都有。 |
| |
在这里您还可以再次编辑连接 |
| |
也许你想添加所有 |
| |
列, |
| |
像这样。 |
| |
也许你想放一个过滤器, |
| |
像这样。 |
| |
并运行查询。 然后你又 |
| |
使用来自的脚本获取此结果表 |
| |
我们这里不需要示例表。 |
| |
我删除它们。 这些是脚本,JMP Query Builder 编写的脚本和变量 |
| |
就像我以前用过的一样。 再说一遍,在这里你可以 |
| |
编辑此查询。 查询的脚本保存在此处的结果表中,就像我们之前在此处定义的那样。 |
| |
这就是 JMP 查询生成器的工作原理。 |
| |
如前所述,它在数据库表上的工作方式与在 JMP 示例表上的工作方式相同。 |
| |
下一个建筑...我还在这里放置了一些脚本,您始终可以从可视化查询生成器切换 |
| |
到自定义 SQL |
| |
询问。所以这在这里有效。 另一个红色三角形菜单。 |
| |
转换为自定义 SQL,以及您在此处直观定义的内容, |
| |
您可以在文本 SQL 查询中定义。 |
| |
你可以运行它。 |
| |
当查看此查询或按“修改查询”按钮时, |
| |
您将看到文本查询。 所以这只是一种方法 |
| |
从可视化查询转换为自定义 SQL 查询。 |
| |
所以让我收拾一下 |
| |
一些桌子。 好的。 |
| |
下一个构建块是从数据库获取数据,并且您需要与该数据源的 ODBC 连接。 |
| |
通常 ODBC 数据源和驱动程序是由您的 IT 管理人员设置的。 所以在Windows下,你可以找到 |
| |
这些连接由 ODBC 数据源管理员管理。 |
| |
请记住,数据库源的位数应适合 JMP。 因此,在本例中,我有 64 位 JMP 应用程序,因此我需要 64 位驱动程序 |
| |
而用户来源,你可以自己设置。 |
| |
系统DSN由管理员设置,不同类型数据库的驱动程序也由管理员设置。 |
| |
如果出现故障,您可以使用此选项卡进行跟踪 |
| |
查询去了哪里以及可能出现什么问题。 |
| |
我这边的一个提示是检查这些数据源的连接是否正常工作。 因此,如果您按“配置”和数据源管理员,您可以在提供凭据后听到某个源测试连接的声音。 |
| |
如果一切正常,那么系统会告诉你 |
| |
连接成功。 |
| |
查询不起作用并不是由 Windows 决定的。 |
| |
还有其他详细信息,您可以在文档中的 JMP 手册中找到。 例如,使用 JMP,第三章,您可以在 |
| |
帮助菜单 |
| |
以及 JMP 文档库。 那里有详细记录如何使用所有这些工具。 |
| |
好的,那么在脚本和 JSL 中,在脚本语言中,有三种方法来编写这些 SQL 数据库查询的脚本。 第一个是新的 SQL 查询,我们之前已经使用过。 它位于 JMP 菜单中的表、JMP 表的 JMP 查询生成器下。 |
| |
或者对于数据库,您可以在数据库查询生成器下找到它。 |
| |
New SQL Query 是所有命令中最强大的。 因此,它会生成一个新的查询对象,您可以将其自身保存为 JMP 查询文件。 它可以直接生成数据表并提供非常好的数据来源,正如我们之前在源修改和更新脚本中看到的那样。 |
| |
JSL 中另一个从数据库查询数据的命令是 open database 命令。 您还可以在脚本索引中找到所有这些命令的文档。 像这儿, |
| |
如果我输入 |
| |
打开 |
| |
数据库, |
| |
您可以在这里找到它如何适用于所有命令。 |
| |
连接到数据库并进行一些查询的第三种方法是数据库连接。 |
| |
它需要三个步骤。 第一个是创建数据库连接。 第二种是将您的一个或多个查询放入数据库。 最后,您需要关闭数据库连接。 |
| |
最后,如果你写了一些不错的脚本。 |
| |
您应该让您或者同事可以访问它,至少有两种方法。 因此,一种方法是将其放入加载项中,以便您也可以轻松地将其提供给其他人。 另一种可能性是将其放入自定义菜单中,就像我在这里所做的那样。 |
| |
你可以找到它 |
| |
在菜单中,然后像这样。 我的系统中安装了两个加载项。 |
| |
这是我个人的 |
| |
自定义菜单。 |
| |
那么让我们...我们已经完成了构建块。 让我们看一下例子。 |
| |
第一个示例是使用表脚本来保存表布局和查询。 |
| |
所以它可能看起来像这样。 如果你有一个数据表 |
| |
从数据库中取出一些脚本,也可以得到漂亮的图表, |
| |
您可能想每天使用它。 这里有一个很好的可能性 |
| |
也就是说,复制没有数据的表脚本。 |
| |
然后您就可以使用这个脚本了。 |
| |
我想制作一个新剧本。 对不起。 |
| |
并将其粘贴到脚本窗口中。 |
| |
只需按“运行脚本”按钮即可创建新表。 |
| |
它的形式是???,没有数据。 你可以保存这个脚本,例如,在你的菜单中并获取数据,它可能是一个巨大的数据量。 您只需按“从数据库更新”按钮,表就会填充来自数据库或其他地方的所有数据。 |
| |
所以这是一个很好的可能性 |
| |
简单地使用脚本 |
| |
从数据库获取数据。 |
| |
第二个例子 |
| |
是使用表内部的查询。 |
| |
像这样。 如果你有一个数据表,并且想要查询一些额外的数据,取决于你当前表的内容。 |
| |
所以我会展示它。 |
| |
我删除了一些行。 |
| |
有了这三个名字,我想去另一个表获取一些数据。 |
| |
这是通过这个脚本完成的。 |
| |
从这张表中您可以看到,我获取了姓名并进行了查询 |
| |
从大类家庭的另一个表中查询数据。 |
| |
它是如何运作的? |
| |
您可以在此脚本中找到它。 |
| |
它很短。 在这里,名称取自定义的第一个表查询,如下所示。 |
| |
这些名称将替换到查询中。 |
| |
这里查询被放入 Big Class Families 表中。 |
| |
好吧,我也需要关闭这张桌子。 |
| |
这是一个带有图形用户界面的自定义查询脚本。 因此,例如,如果您的数据库中有一个大型数据表并且经常需要少量数据, |
| |
当然,您可以提取所有数据,但获取经过良好过滤的数据可能更灵活、更高效。 所以它是这样工作的。 |
| |
一张用于过滤数据的表和一张包含大数据表所有列的表。 在这里我们可以以图形方式进行过滤。 假设是女性和年龄,所以我只用了两列来过滤, |
| |
就这样,12岁、13岁。 |
| |
我可能想要拥有所有列或仅删除一列。 |
| |
我查询一下 |
| |
并在这里通过这些限制得到正确的结果。 正如您在此处看到的那样,您可以在源脚本或 SQL 中看到, |
| |
限制在这里 |
| |
从定义的图形用户界面。 |
| |
以及如何 |
| |
脚本工作有效吗? 有点 |
| |
当然,更复杂。 于是就有了过滤查询。 |
| |
列查询。 |
| |
这是一个脚本,一个转换的函数 |
| |
数据过滤条件转化为SQL条件。 |
| |
这是GUI部分,图形用户界面。 |
| |
最后,在这里,对图形用户界面结果进行评估并将其放入此自定义脚本中。 |
| |
下一个示例是两步查询。 因此,我们假设您必须首先查询一些批次 ID。 |
| |
并将这些 ID 放入另一个查询中,也许放入另一个数据表中以获取其他数据, |
| |
你可以这样做。 所以这里我以Big Class数据表作为过滤器。 所以我只过滤了男性 |
| |
和 |
| |
等于或小于13岁的学生。 |
| |
并使用这些名称来查询大类家庭的所有行,就像您在此处看到的那样。 |
| |
和 |
| |
两个表都通过虚拟联接连接,就像您在此处看到的那样。 |
| |
所以 |
| |
该表通过名称将另一个表引用到过滤器表。 我可以使用 |
| |
过滤表的列在此表中,就好像它们是 |
| |
在此表中。 |
| |
因此,这是拥有多个表并使用一个表中的内容的好方法。 |
| |
最后一个例子是 |
| |
如何在后台并行运行两个或多个查询。 所以我这里没有例子。 JMP 社区对此进行了讨论。 如果你有兴趣的话,你可以看一下。 |
| |
现在我已经完成了示例,日志和演示材料脚本可以在线获取。 |
| |
感谢社区的精彩讨论,感谢 JMP 开发人员构建和维护这个出色的软件。 最后,感谢您的关注。 |