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