Alteryx使用Write Data In-Db创建Hive表时触发Error 10004错误求助
从你的描述来看,这个问题确实有点费解——明明待写入的数据集里完全没有'Sinistre'相关的列,但错误却反复提到它。结合错误提示里的Error running PreSQL,我给你几个具体的排查方向:
优先检查Write Data In-DB工具的PreSQL配置
错误明确指向PreSQL执行失败,这是最可能的原因。打开Write Data In-DB工具的PreSQL选项卡,看看里面是不是残留了之前工作流的SQL语句,比如引用了包含'Sinistre'列的旧表操作(比如ALTER TABLE、关联查询之类的)。哪怕你没手动写PreSQL,也可能误触了自动生成的选项,仔细核对一下。检查上游In-DB工具的底层SQL逻辑
虽然你列出的输出列里没有'Sinistre',但上游的In-DB工具(比如In-DB Select、Join、Filter)可能在生成的SQL里悄悄引用了这个列。右键上游的每个In-DB工具,选择View In-DB Query,查看完整的SQL语句,搜索'Sinistre'关键词——说不定是某个自定义SQL里的残留,或者Join时不小心带进来了这个列但后续没过滤掉。验证数据库端的关联对象
试试直接在数据库客户端(比如Hive CLI、Beeline)手动创建目标表,用你提供的列定义:CREATE TABLE your_target_table ( nom_expert STRING, num_expert DOUBLE, date_contact STRING, typo_chemise STRING, nom_contact STRING, prenom_contact STRING, ref_evenement STRING, email_contact STRING, tel_mobile_contact STRING, tel_domicile_contact STRING, num_soc STRING, entite STRING )如果手动创建没问题,那说明是Alteryx工具生成的SQL有问题;如果手动创建也报错,那就要排查数据库里有没有同名的视图、同义词,或者关联的触发器/约束引用了'Sinistre'列。
清空Alteryx的元数据缓存
Alteryx有时候会缓存旧的元数据,导致工具识别的列和实际数据流不一致。你可以:- 点击菜单栏的
Options->Clear Cache,清空全局缓存 - 删掉当前的Write Data In-DB工具,重新拖一个新的进来,重新配置目标表和写入方式
- 右键上游的数据集工具,选择
Refresh Metadata,刷新元数据后再运行
- 点击菜单栏的
检查Simba驱动的兼容性
错误里的[Simba][Hardy]是Hive数据库的驱动标识,可能驱动版本和你的Hive集群版本不兼容,导致Alteryx生成的SQL语法不符合集群要求。可以尝试更新Alteryx的Hive In-DB驱动,或者在驱动配置里调整参数(比如开启/关闭某些SQL兼容模式)。
内容的提问来源于stack exchange,提问作者asmoth

