SAP HANA:从CSV文件中将数据插入/导入表格的最佳方式

问题描述 投票:0回答:2

我们希望为用户提供上传和插入/导入数据到表格的可能性。用户的数据是CSV文件。

我们考虑了三种可能性:

  • 通过XSJS应用程序导入Direkt - >(批处理)插入每一行
  • 通过IMPORT FROM声明导入
  • SDI(复制)

目前我们赞成直接导入(XSJS插入),因为用户可以打开文件选择对话框并选择文件。 (简单)

不幸的是,插入物非常慢(20分钟/ 1 Mio行)。 批量插入减少至约5分钟 并行调用Batch-Import XSJS,包装为100k,减少到大约1分钟。

但是,带有4个线程的CSV导入命令IMPORT FROM比1分钟(大约15秒)快得多

所以问题是如何快速将数据导入HANA(最好使用XSJS技术)

系统环境

我们在XS引擎中构建了一个Web用户界面,用于执行各种数据密集型任务。

新任务是将数据加载到SAP HANA以进行进一步处理。

数据来自合作伙伴公司的CSV文件

import insert database-performance hana
2个回答
2
投票

通过XSJS提供数据是一种需要数据通过许多系统边界的方法。使用基于JDBC / ODBC的数据加载工具通常是更好的方法。

IMPORTIMPORT FROM都是服务器端命令,需要访问SAP HANA节点也可以访问的文件系统共享。

它们主要用于“技术”数据加载,例如制作系统副本和开发人员/管理员数据移动。 最终用户不是目标受众。

鉴于您提到您的最终用户应该能够加载数据,为他们提供这样的数据加载工具(甚至可能自己编写一个简单的工具)可能是一个选项。

或者,如果数据结构不经常改变,使用SDI可能是一个可行的选择。


0
投票

我们用Java做了一些快速测试(带有多线程的java是XSJS的两倍)。

由于客户想要web-gui和Java Webstart已被弃用,并且我们现在使用Web解决方案还有一些问题:

  1. var conn = $.hdb.getConnection();
  2. conn.executeUpdate('INSERT INTO ' + schemaName + '.' + targetTableName + ' VALUES(' + placeholder + ')', argsArray);

重要的是要

  • 使用较新的$.hdb连接而不是$.db连接(许多教程使用$.db连接。
  • 使用批量插入
© www.soinside.com 2019 - 2024. All rights reserved.