database - 哪个字符最适合用作 ETL 的分隔符?

标签 database format informix etl delimiter

我最近从 Informix 数据库卸载了一个客户表,有几行被拒绝,因为客户名称列包含非转义竖线(竖线符号)字符,这是源数据库中的默认 DBDELIMITER。我发现他们客户表单中的字段有一个输入掩码,允许输入任何字母数字字符,其中可以包括任何字母、数字或符号。因此,我说服用户对该列进行全面更新,将管道符号更改为分号。我还发现其他行在不同的列中包含星号和逗号。我可以想象如果以 csv 格式卸载此表会发生什么,或者星号会造成什么损害!

定义为分隔符的最佳字符是什么? 如果表格已经被竖线、逗号、星号、制表符、反斜杠等污染,清理它们的最佳方法是什么?

最佳答案

我在工作中必须处理大量的叙述性数据。这总是一场噩梦,因为用户倾向于在其中放置任何字符,包括不可打印的字符。您可以运行清理操作,但每次加载数据时都必须执行此操作,而且它可能不会永远有效。最终有人会把你选择的每个字符作为分隔符,如果你的 CSV 处理库可以正确处理转义,这不是问题,但很多不能。如果这是一次性加载/卸载,您可能没问题,但如果您必须更频繁地执行此操作......

在过去,我将分隔符更改为反引号“`”、波浪号“~”或插入符“^”。目前的努力都失败了。我能想到的最佳解决方案是根本不使用 CSV 格式。我切换到 XML。尽管如此,还是有一些XML非法字符,但是可以用atlassian-xml-cleaner-0.1.jar翻译出来。

关于database - 哪个字符最适合用作 ETL 的分隔符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18192944/

相关文章:

Android 多列 SQLite 数据库

C# SQL Server 数据库错误

algorithm - 从给定结果中扣除格式字符串

html - 以 50% 宽度和 100% 高度显示图像

php - 如何在 Windows 中为 PHP 7 安装 PDO 驱动程序 Informix

php - 使用 PHP 打印 MySQL 数据库中的元素作为相应图像的链接

sql - 分组连续行

格式化列表 : use arguments that aren't in list

informix - 如何在 Informix SQL 中创建屏幕表单?

sql - Informix 数据库 - 创建带有日期时间列的表,出现 DEFAULT 值语法错误