数据库内概述
数据库内处理无需将数据移出数据库即可对大型数据集进行融合与分析,而传统分析方法需要将数据移到单独的环境中进行处理,相比之下,前者可以显著提高性能。
在数据库中执行分析可以节省处理时间。数据库内工作流将 Designer 作为界面,可轻松与标准工作流整合,以实现额外的数据融合和分析。
限制
“数据库内”工具目前不支持空间对象。
如果多次打开同一工作流,更改了其中一个工作流,然后运行所有工作流,就可能会经历意外的行为表现。在更改工作流前,请关闭同一工作流的所有版本。
支持的数据库
驱动程序支持
数据库内处理需要 64 位 Alteryx 和 64 位数据库驱动程序。
要在 Alteryx Server 上运行工作流,必须将 ODBC 驱动程序配置为系统 DSN。对于数据库内处理,除了要将 ODBC 连接配置为系统 DSN,“连接类型”还必须是“系统”。
数据库内支持 | 预测型数据库内支持 |
---|---|
是 (2016) | |
是 | |
是 | |
如需查看 Alteryx 支持的数据平台的完整列表,请前往 受支持的数据源和文件格式 。
数据库内工具
查看以下数据库内工具列表。
数据库内工具锚点和连接
由于数据库内工作流处理是在数据库内进行的,因此数据库内工具与标准 Alteryx 工具不兼容。多个可视化指示符展示连接的兼容性。
标准工具使用绿色箭头锚点连接到另一工具。连接以单线显示。
数据库内工具使用蓝色方形数据库锚点连接到另一个数据库内工具。2 个数据库内工具之间的连接以双线显示。由于其数据库内处理的性质,不会显示连接进度。
要将标准工具连接到“数据库内”工具,请使用“动态输入”和“动态输出”工具或“数据流”工具。
数据库内的工作原理
数据通过 数据流传入 和 数据流传出 工具传入和传出数据库内的工作流,或通过使用 “库内连接”工具 直接连接到数据库。“数据流传入”和“数据流传出”工具使用数据库内锚点连接到库内工具,使用标准工作流锚点连接到标准工作流工具。
工作原理
使用“库内连接”工具定义与数据库的连接,或使用“数据流传入”工具将数据从标准工作流传输到数据库中的临时表。
将其他数据库内工具连接到工作流以处理数据。
使用 “库内写入数据”工具 在数据库中创建或更新表格,或使用“数据流传出”工具将库内结果传输到工作流以进行标准处理。
运行工作流以在数据平台中处理数据。在处理完整个数据库内工作流之前,没有任何结果会返回到 Alteryx 引擎。
数据库内的性能优势
在大量数据流入和流出数据库时,工作流处理可能需要很长时间。您可以使用数据库内处理来加快工作流执行。
例如,在标准工作流中,大型数据库表格要先被拉入内存中方可与小型电子表格结合处理。大部分运行时间都用在传入数据库记录上。在数据库内工作流中,小型电子表格会传入到数据库中,从而显著减少运行时间。
常见问题
需要提供读取权限才能访问基础数据库。
需要具有写入权限才能在数据库中创建表格。
临时表将在运行结束时被删除。如果 Alteryx 在“数据流传入”工具运行时崩溃,则下次运行数据库内工作流时,将清除数据库中 Alteryx 在过去三天内创建的所有临时文件。
要允许跨会话显示临时表,Alteryx 必须创建一个永久表,该永久表会在工作流结束时被彻底删除。必须具有 CREATE(创建)权限才能从数据库传入数据流并将数据写入数据库。例外情况是 Microsoft SQL Server。
在这一过程中,基础规则的维护与通过标准的输入数据和输出数据工具的数据库连接相同。如果存在数据库超时或每天可以运行的查询数有限制,则会影响与数据库的连接。
SELECT 语句由“库内连接”工具触发,其他查询由下游工具创建并嵌套在此查询中。添加以下三个工具之一即可完成查询并将其发送到基础数据库:库内写入、数据流传出、库内浏览。
您可以在“库内连接”工具的“查询”框中输入自己的 SQL 语句,该语句也嵌入在 SELECT 语句中。
基础数据库的 SQL 查询在每个“库内浏览”、“数据流传出”或“库内写入数据”工具的运行时触发。
“库内数据浏览”工具可配置为在运行工作流时将数据缓存为 .yxdb 文件。
在缓存数据后,如果工作流重新运行,并且数据库连接或查询(包括要浏览的记录数)未更改,将不会重新执行查询。而是从缓存中拉取数据。
输出消息指示是否缓存了数据。单击该链接将在单独的窗口中以 .yxdb 文件的形式打开数据结果。
在没有改变上游工具的情况下重新运行工作流程时,都会使用数据库内的缓存。对上游工具进行任何改变都将触发新查询,并创建新缓存。
不能,“浏览前 [100] 条记录”选项仅限制“库内浏览”工具中显示的记录数。工作流中的其他工具将处理在任何给定点通过的记录数。
字段具有 CLOB/LOB 数据类型,不适用于“筛选”或“公式”工具中的大多数比较运算符。如果出现错误,表明没有返回任何列,即使数据与比较匹配也是如此。这是 SQL 和 Oracle 的预期行为,因为它们不支持与 LOB 数据进行比较