创建表并将其填充到 HANA RODBC R 时出现问题
Problems creating and populating tables to HANA RODBC R
我正在尝试使用 R 中的 RODBC 包将数据写入 HANA (SPS 11) 中特定模式中的 table,遇到问题希望有人能提供帮助。
我正在使用 sqlSave 创建文件并写入文件,使用以下命令,但得到奇怪的结果。
res <- sqlSave(ch, dim_product_master_test, tablename = table.for.save, rownames = FALSE, verbose = TRUE)
查询:创建TABLE MYSCHEMA."DIM_PRODUCTSX" ("ProdSrcMonth" varchar(255), "Category" varchar(255), "SubCategory" varchar(255) , "Brand" varchar(255), "Material" INTEGER, "Product" varchar(255), "EAN" varchar(255) ....等)
我收到错误:
sqlColumns(channel, tablename) 错误:
'MYSCHEMA."DIM_PRODUCTSX"': table 在频道
上找不到
但是,正在创建table,那么它似乎无法添加或找到数据。
我尝试了不同的引号方案(包括围绕架构名称)但结果相同。
查询:创建 TABLE "MYSCHEMA"."DIM_PRODUCTSY" ("ProdSrcMonth" varchar(255), "Category" varchar(255), "SubCategory" varchar(255), "Brand" varchar(255), "Material" INTEGER, "Product" varchar(255), "EAN" varchar(255) ... 等
sqlColumns(channel, tablename) 错误:
'"MYSCHEMA"."DIM_PRODUCTSY"': table 在频道
上找不到
尝试引用两者,但没有区别。同样,创建 table 但无法更新它。
如果我只是将数据框扔到 sqlSave,它会很高兴地创建 table 并添加数据,但我需要更多的控制。
此外,有人知道如何创建列存储 tables 吗?似乎默认为行存储。
提前致谢。
通常,事先在 SAP HANA 中指定目标 table 是个好主意。这样 COLUMN/ROW 存储设置和每列的特定数据类型都可以按应有的方式设置(例如,即使需要 UNICODE 数据,sqlSave
似乎也不会创建 NVARCHAR
列待保存)。
这是一个对我来说开箱即用的例子(也是 SPS11):
library("RODBC")
ch<-odbcConnect("SK1", uid="DEVDUDE",pwd="*******")
table.for.save <- 'AIRQUALITY'
aqdata <- airquality
sqlSave(ch,dat = aqdata, tablename = table.for.save, verbose = TRUE, rownames = FALSE)
odbcClose(ch)
Query: CREATE TABLE "AIRQUALITY" ("Ozone" INTEGER, "SolarR" INTEGER, "Wind" DOUBLE, "Temp" INTEGER, "Month" INTEGER, "Day" INTEGER)
Query: INSERT INTO "AIRQUALITY" ( "Ozone", "SolarR", "Wind", "Temp", "Month", "Day" ) VALUES ( ?,?,?,?,?,? )
Binding: 'Ozone' DataType 4, ColSize 10
Binding: 'SolarR' DataType 4, ColSize 10
Binding: 'Wind' DataType 8, ColSize 15
Binding: 'Temp' DataType 4, ColSize 10
Binding: 'Month' DataType 4, ColSize 10
Binding: 'Day' DataType 4, ColSize 10
Parameters:
no: 1: Ozone 41//no: 2: SolarR 190//no: 3: Wind 7.4//no: 4: Temp 67//no: 5: Month 5//no: 6: Day 1//
...
我正在尝试使用 R 中的 RODBC 包将数据写入 HANA (SPS 11) 中特定模式中的 table,遇到问题希望有人能提供帮助。
我正在使用 sqlSave 创建文件并写入文件,使用以下命令,但得到奇怪的结果。
res <- sqlSave(ch, dim_product_master_test, tablename = table.for.save, rownames = FALSE, verbose = TRUE)
查询:创建TABLE MYSCHEMA."DIM_PRODUCTSX" ("ProdSrcMonth" varchar(255), "Category" varchar(255), "SubCategory" varchar(255) , "Brand" varchar(255), "Material" INTEGER, "Product" varchar(255), "EAN" varchar(255) ....等)
我收到错误:
sqlColumns(channel, tablename) 错误: 'MYSCHEMA."DIM_PRODUCTSX"': table 在频道
上找不到但是,正在创建table,那么它似乎无法添加或找到数据。
我尝试了不同的引号方案(包括围绕架构名称)但结果相同。
查询:创建 TABLE "MYSCHEMA"."DIM_PRODUCTSY" ("ProdSrcMonth" varchar(255), "Category" varchar(255), "SubCategory" varchar(255), "Brand" varchar(255), "Material" INTEGER, "Product" varchar(255), "EAN" varchar(255) ... 等
sqlColumns(channel, tablename) 错误: '"MYSCHEMA"."DIM_PRODUCTSY"': table 在频道
上找不到尝试引用两者,但没有区别。同样,创建 table 但无法更新它。
如果我只是将数据框扔到 sqlSave,它会很高兴地创建 table 并添加数据,但我需要更多的控制。
此外,有人知道如何创建列存储 tables 吗?似乎默认为行存储。
提前致谢。
通常,事先在 SAP HANA 中指定目标 table 是个好主意。这样 COLUMN/ROW 存储设置和每列的特定数据类型都可以按应有的方式设置(例如,即使需要 UNICODE 数据,sqlSave
似乎也不会创建 NVARCHAR
列待保存)。
这是一个对我来说开箱即用的例子(也是 SPS11):
library("RODBC")
ch<-odbcConnect("SK1", uid="DEVDUDE",pwd="*******")
table.for.save <- 'AIRQUALITY'
aqdata <- airquality
sqlSave(ch,dat = aqdata, tablename = table.for.save, verbose = TRUE, rownames = FALSE)
odbcClose(ch)
Query: CREATE TABLE "AIRQUALITY" ("Ozone" INTEGER, "SolarR" INTEGER, "Wind" DOUBLE, "Temp" INTEGER, "Month" INTEGER, "Day" INTEGER) Query: INSERT INTO "AIRQUALITY" ( "Ozone", "SolarR", "Wind", "Temp", "Month", "Day" ) VALUES ( ?,?,?,?,?,? )
Binding: 'Ozone' DataType 4, ColSize 10 Binding: 'SolarR' DataType 4, ColSize 10 Binding: 'Wind' DataType 8, ColSize 15 Binding: 'Temp' DataType 4, ColSize 10 Binding: 'Month' DataType 4, ColSize 10 Binding: 'Day' DataType 4, ColSize 10 Parameters: no: 1: Ozone 41//no: 2: SolarR 190//no: 3: Wind 7.4//no: 4: Temp 67//no: 5: Month 5//no: 6: Day 1// ...