通常步骤:(不一定必须按照此步骤执行,可以调换部分步骤顺序)
1.准备CSV文件
2.写control file(CTL文件)
语法:
IMPORT DATA
INTO TABLE <schema>.<tablename> [(<field specs>)]
FROM <os_data_filename>
[RECORD DELIMITED BY '<eor>']
[FIELDS [DELIMITED BY '<eoc>']
[OPTIONALLY ENCLOSED BY '<moq>']]
[ERROR LOG <os_bad_filename>]
例子:(创建一个CTL文件带有如下代码,成为native SQL,可用文本文档然后修改文件格式即可)
IMPORT DATA
INTO TABLE S0004108322.USERS
FROM '/dropbox/S0004108322/USERS.CSV'
ERROR LOG '/dropbox/S0004108322/USERS.ERR'
此处可以省略一些不必要的参数设置(例如RECORD DELIMITED BY,FIELD DELIMITED BY 和OPTIONALLY ENCLOSED BY)因为它们默认值是:数据记录之间用逗号分开,每条记录占一行。还有一点需要注意,在LINUX操作系统中,区分大小写,所以CSV文件目录以文件名一定要注意大小写。
3.将CSV文件、CTL文件导入HANA server,可自定义文件目录。我们可以选择直接在HANA server端创建这两个文件,或者在本地创建完在导入到HANA server,导入方式可以通过FTP、SFTP或者其他方式(像远程连接桌面)导入到HANA server。(获取连接SAP HANA服务器的FTP账号的相关信息: SELECT * FROM SYSTEM.FTP_SERVER)
4.在HANA studio创建target table,当然可以通过图形化界面操作也可以通过SQL editor创建
CREATE COLUMN TABLE S0004108322.USERS (
UID INTEGER PRIMARY KEY,
LAST NVARCHAR(20) NOT NULL,
FIRST NVARCHAR(20) NOT NULL,
GENDER VARCHAR(1) NOT NULL,
COUNTRY VARCHAR(2) NOT NULL);
5.执行import,
IMPORT FROM '/dropbox/S0004108322/USERS.CTL'
或:IMPORT FROM '/dropbox/S0004108322/USERS.CTL' WITH THREADS 10 BATCH 50000
UPDATE S0004108322.USERS MERGE DELTA INDEX;
6.检查导入结果,可以检查target table内容,也可以检查导入日志,第2步中的文件目录,如果导入成功,日志为空,如果有错误,请查看
http://wiki.sdn.sap.com/wiki/display/inmemory/Common+Import+Errors