在 Talend 中读取 Access DB 提取

Posted

技术标签:

【中文标题】在 Talend 中读取 Access DB 提取【英文标题】:Read Access DB Extract in Talend 【发布时间】:2017-12-26 01:44:56 【问题描述】:

我需要阅读 Talend 中的 Access DB Extract。 Talend 'tAccessInput' 中有一个组件用于读取 Access DB 表。但它需要连接到 Access 数据库。

但是,根据我的要求,我获得了 Access db 的提取,比如 MasterTables.accdb,它不是实时数据库连接。我需要使用 Talend 提取此 Access DB Extract 中存在的表。

另外,我知道有一个从 Access DB Extract 导出的选项,方法是打开提取并导出所需的表,但我不会手动执行。

那么,有没有一个组件/步骤可以帮助我使用 Talend 实现我的要求。

【问题讨论】:

为什么不能使用 tAccessInput ?您可以告诉它使用现有连接(首先使用 tAccessConnection 连接到您的 db 文件),或者直接在组件本身中使用您的数据库文件配置它,方法是取消选中“使用现有连接”,并为其提供路径到您的访问数据库文件。 嗨@iMezouar,我的系统上没有访问数据库服务器。我刚刚获得了一个访问数据库的提取,其中包含我们需要处理的几个表,因此我没有连接到访问数据库服务器。有什么方法可以让我阅读这段摘录吗? 您不需要服务器。您只需要数据库文件(.mdb 或 .accdb)。在 tAccessInput 属性中,您有一个名为 database 的字段,您可以在其中指定 .accdb 文件的文件路径、用户和密码(如果受保护)。试试看,让我知道。 hi @iMezouar 所以我试着按照建议去做,但是 tAccessInput 如何知道要读取哪个表,因为我必须定义一个模式 您知道您的数据库中有哪个表吗?如果是这样,您可以在查询中指定它。我不确定 Access 的确切语法,但“从表中选择 *”应该可以。 【参考方案1】:

在@iMezouar 的指导下(感谢输入),我能够使用 Talend 的 tAccessInput 组件并达到我的要求。下面是 我遵循的步骤:

步骤 1- 配置 tAccessInput 组件。设置数据库字段 .accdb 提取的路径。将用户名和密码留空 如果提取没有密码保护

第 2 步 - 在表名称字段中提供您要使用的表的名称 想从您的访问摘录中读取

第 3 步 - 转到编辑架构部分并添加 上述步骤中提供的表名

第 4 步 - 现在转到查询类型并选择猜测查询。一旦你有 单击此按钮,它将在“查询”部分填充 相关查询

第 5 步 - 如果您打算执行任何操作,接下来将 tAccessInput 连接到 tMap 处理,否则将其直接连接到输出组件。就我而言 它的 tFileOutputDelimited 并且您的作业已准备好运行以提取数据 从访问转储

第 6 步 - 如果您在运行控制台中收到警告问题,即“错误 表的元数据:元数据中表的行数为XXX 但是 UCanAccess 已经找到并加载了 XXY 记录。都会 工作正常,但最好修复你的数据库',只需打开 访问转储,转到数据库工具选项卡并选择“压缩和修复” 数据库'。然后保存文件。这也将消除警告问题。

【讨论】:

以上是关于在 Talend 中读取 Access DB 提取的主要内容,如果未能解决你的问题,请参考以下文章

如何为从 Access DB 读取的 Datafactory 指定“只读”

无法使用 Talend 连接到 Access 2007 数据库

Talend - 从 xml 文件中读取 Ldap 的 xml 架构

如何将 db(oracle) 查询的结果存储为全局变量,以便在 talend 的 RUN-IF 条件中使用?

Access DB查询结果提取

如何在 Spring 批处理中读取 MS Access db(.mdb 文件)并加载到 mysql db