oracle - 如何将 ODI 接口转换为 SQL 查询?
问题描述
我正在开发 ODI 10 项目,该项目有 153 个接口,分为几个包。我想做的是用 INSERT 语句创建一个 PL/SQL 过程,而不是有 153 个接口。这些接口或多或少相似,即它们具有相同的源表和相同的目标(在我的例子中,目标是 Essbase Hyperion 多维数据集),转换和过滤器是不同的。因此,每当我必须更新列值之类的内容时,我都必须打开 153 个接口并在每个接口中进行更新。在一个过程中,我可以很容易地做到这一点,我可以替换所有值。
所以我觉得最好创建一个 PL/SQL 过程,因为这样我可以更好地维护代码。
有没有办法将接口转换为 SQL 查询?我想要一个直接的数据转储,我不想做一个复杂的增量加载。我只是想截断表格并加载数据。
提前致谢。
解决方案
可以从日志表中的 Operator 获取 ODI 生成的 SQL 代码。它也可以在存储库中检索。
这是一个查询 ODI 12c 的示例(10g 现在已经很久不支持了):
SELECT s.sess_no, s.nno, step_name, scen_task_no, def_txt
FROM SNP_SESS_STEP s, SNP_SESS_TASK_LOG t
WHERE s.sess_no = t.sess_no
AND s.nno = t.nno;
从 ODI 11g 开始,还可以模拟执行而不是实际执行。此功能将仅显示在 ODI Studio 中生成的代码,而不是运行它。
最后,升级到更新的 ODI 将允许使用 ODI SDK。有了它,您可以一次以编程方式对所有映射进行更改。可重用映射也可能有所帮助,因为听起来某些逻辑被多次实现。这将能够简化此类更改,同时保持 ELT 工具的优势(调度、监控、流程的可视化表示、跨技术......)。
免责声明:我是 Oracle 员工
推荐阅读
- javascript - 尝试在 JSON 中的两个项目上设置不同的样式
- python - 如何修改数据框中新创建的列的多个行范围?
- sql - 获取值的总和与条件匹配的行
- azure-active-directory - 有没有办法判断用户是否使用 Azure AD 日志中的 MFA
- c# - 动态 SQL Pivot 参数查询实体框架
- python - Python PyMuPDF / Fitz 从 extractImage 旋转图像
- c++ - 类中 ifstream 指针的分段错误
- gensim - 将 gensim LDA 模型保存到 ONNX
- python - 康达不创造环境
- ios - Xcode 应用瘦身,如何减少 IPA 列表