loadTable
语法
loadTable(database, tableName, [partitions], [memoryMode=false])
参数
database 字符串,表示数据库的路径,也可以是数据库句柄。可以是分布式数据库或本地磁盘数据库。
tableName 字符串,表示表的名称,它需要使用反引号(`)或双引号。
partitions 标量或向量,表示要加载的分区。注意,只有本地磁盘数据库支持该参数,分布式数据库不支持该参数。
memoryMode 布尔值,表示是否把数据加载到内存。如果 memoryMode =false,表示只加载元数据到内存;如果 memoryMode =true, 表示将实际数据加载到内存。注意,只有本地磁盘数据库支持该参数,分布式数据库不支持该参数。对于分布式数据库,只将元数据加载到内存中。
详情
将数据加载到内存中。
-
对于分布式数据库,返回包含元数据的表对象。
-
对于本地磁盘数据库,如果 memoryMode =false,返回包含元数据的表对象;如果 memoryMode =true,返回包含实际数据的内存分区表。
例子
例1. 分布式数据库
n=1000000
ID=rand(100, n)
dates=2017.08.07..2017.08.11
date=rand(dates, n)
x=rand(10.0, n)
t1=table(ID, date, x);
dbDate = database(, VALUE, 2017.08.07..2017.08.11)
dbID=database(, RANGE, 0 50 100);
db = database("dfs://compoDB", COMPO, [dbDate, dbID]);
pt = db.createPartitionedTable(t1, `pt, `date`ID).append!(t1)
t2=table(0..100 as ID,take(2017.08.07..2017.08.11,101) as date)
dt = db.createTable(t2, `dt).append!(t2)
-
加载维度表:
tmp = loadTable("dfs://compoDB", `dt)
select count(*) from tmp
count |
---|
101 |
-
加载分区表:
tmp = loadTable("dfs://compoDB", `pt)
select count(*) from tmp
count |
---|
1000000 |
-
对于分布式数据库,
loadTable
函数不支持加载指定分区的数据。如果需要将某些分区的数据加载到内存中,可以在 SQL 语句中指定过滤条件。
tmp = loadTable("dfs://compoDB", `pt)
select * from tmp where date=2017.08.07