问题标签 [data-ingestion]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
postgresql - 来自平面文件的 GPFdist 插入会在插入时引发错误“用于编码“UTF8”的字节序列无效:0x00”
我在写入以从大型平面文件中提取数据的过程中遇到问题。我正在使用具有 UTF8 规范的 python 包装器预处理平面文件,如下所示:
wrFile = io.open("outFile","w+",encoding='utf8')
我正在使用以下命令逐行读取源文件:
lineACT = linecache.getline("inFile", i+j)
lineNxt = linecache.getline("inFile", i+j+1)
此外,在预处理行之后,我正在编写文件,如下所示:
wrFile.write(lineACT)
因此,遍历 infile 中的行数,我正在创建 outfile。
postgresql
现在,可以使用以下查询将文件提取到外部表中。加载器应用程序已写入Java
,所有配置都使用属性文件传递:
UNIX
在盒子上运行它会给我一个例外:
注意: outFile 中的每一行是 1655 个字符。outTable和deltaTable的列结构也是1655。当我检查 errorTable 时,我在errmsg
列中找到了这个:
现在,我猜测数据库不接受文件中的null
字符'0x00'
,因为我检查的 db 的编码属性是'UTF8'
我尝试使用以下 bash 命令从文件中删除空字符:
&
但到目前为止没有任何效果。有人可以就如何使这项工作提出一些建议吗?
--
提前致谢!
elasticsearch - 如何为摄取附件弹性搜索插件禁用 base64 存储?
该文档显示了有关如何通过摄取附件插件将 base64 文档存储到弹性搜索中的示例。但在此之后,我得到了弹性搜索索引包含解析的文本和 base64 字段源。为什么需要它?有没有办法删除base64文本字段并在文档被索引后只保留文本而不是内容?
google-analytics - 使用 GET 方法将数据流式传输到 Google BigQuery?
我需要一个好的解决方案,最好是现有的解决方案,例如 Google Rest API,以便将数据流式传输/插入 BigQuery。由于许多设计原因,我不想使用 POST 方法发送数据。我预计每秒有 1000 次写入。数据将附加在 url 的查询参数中。它与谷歌分析非常相似,使用 Get 方法发送分析数据。
mysql - 如何使用 sqoop 将加密的列数据从 mysql 导入 hdfs?
Imgine 我有一个包含在 mysql 上加密的学生 ID 的表,如何使用 sqoop 将该数据导入 hdfs?
java - 如何将数据从 Java 应用程序提取到 BigQuery
我想从我的 java 应用程序中将数据提取到 BigQuery。如果我们直接使用 BigQuery API,是否存在任何性能问题?应用程序正在 AWS 中运行。
mysql - Nifi - 截断并加载到 mysql 数据库表
我正在从 SFTP 站点读取 CSV 文件并使用 Nifi 将其加载到 mysql db。
我有以下工作流程,似乎工作正常。在开始加载数据之前,我只需要一些帮助来弄清楚如何截断表。
尼菲流:
ListSFTP -> FetchSFTP -> InferAvroSchema -> ConvertCSVtoAvro -> ConvertAvrotoJSON -> SplitJSON -> ConvertJSONtoSQL -> PutSQL
这个流程似乎工作正常,但是每次我运行它时,我都需要先截断表,然后再开始加载。
有人可以帮我提供一些关于我如何实现这一目标的信息。或者有没有比我写的更好的流程,请指教。
谢谢,阿迪尔
postgresql - 是什么减慢了我的 PostgreSQL 批量导入速度?
因为在 Debian stable 上安装非常容易,所以我决定使用 PostgreSQL 9.6 为我需要处理的一些数据构建一个数据仓库。第一步是以最少的转换将数据加载到数据库中,主要是纠正一些已知的格式错误以及布尔值的表示方式。我已经检查过这些更正是否有效:将n
行写入磁盘所花费的时间与n
.
但是,使用 PostgreSQL 批量加载这些数据COPY FROM
(无论如何;\copy
、或 psycopg2copy_expert
或COPY FROM '/path/to/data.csv'
)需要超线性的时间量。渐近时间复杂度似乎比O(exp(sqrt(n)))
. 这就是我已经:
- 将隔离级别设置为
READ UNCOMMITTED
, 和 - 将主键约束设置为
DEFERRED
.
这是我看到的最严重的违规者之一,一个 17M 行的表:
禁用fsync
会使进程加快 10 倍,因此 I/O 显然是一个巨大的瓶颈。然而,除此之外,时间行为并没有太大变化:
当我使用代理键而不是业务键时,这个问题完全消失了:当我使用自动递增的整数列作为主键时,摄取又需要时间,这正是我想要的。因此,我不仅对我的问题有一个完全有效的解决方法,而且我还知道复杂的主键是罪魁祸首(业务键通常是一个短 VARCHAR 列的元组)。Θ(n)
但是,我想了解当 PostgreSQL 以业务键为键时,为什么要花这么长时间来摄取数据,以便我更好地了解我的工具。特别是,我不知道如何调试这个摄取过程,因为EXPLAIN
在COPY
. 可能是复合主键将数据排序到存储中需要更长的时间,或者这是由于索引,或者主键约束实际上仍然是NOT DEFERRED
;如果解决方法不是那么有效,或者由于其他原因不受欢迎,我如何才能发现这里实际发生了什么?
apache-nifi - Nifi-合并内容处理器-合并策略
合并内容处理器中的 Bin Packing 算法和碎片整理合并策略有什么区别 nifi 关于性能的任何比较
bigdata - apache gobblin 和 spring-cloud-dataflow 有什么区别,如何选择?
作为官方文档
Apache Gobblin 是一个通用数据摄取框架,用于从各种数据源(例如数据库、rest API、FTP/SFTP 服务器、文件管理器等)中提取、转换和加载大量数据到 Hadoop。
Spring Cloud Data Flow 是一个用于构建数据集成和实时数据处理管道的工具包。管道由 Spring Boot 应用程序组成,使用 Spring Cloud Stream 或 Spring Cloud Task 微服务框架构建。
- 他们之间有什么区别?
- 彼此的进步是什么?
- 在相应的场景中如何选择它们?
非常感谢任何回复
python - Python 多处理循环
我希望用来multiprocessing
加速一个缓慢的循环。但是,从我所看到的多处理示例来看,我不确定这种实现是否是好的实践、可行或可能。
循环大致有两个部分:data ingestion
和data processing
. 我希望在处理进行时开始数据摄取的下一部分,以便数据尽快可用。
伪代码:
- 多处理是否适合这种功能?
- 如何做到这一点?
提前致谢。