数据源
准备原始数据
2份原始模拟数据源的链接可在此下载:点我与点我 使用sqliteBrower打开db.
元数据:
dataSetId :6b144f42e3504c959b8f4ddc6f1b4ec1
各列字段代表的意义:
COL_0_0
:购买商品的类别
COL_0_1
:购买者的省份
COL_0_2
:我们按照用户消费总金额将用户分成十级,按分级统计其各项数据
COL_0_3
:购买者的性别
COL_0_4
:下单的时间段区间
COL_0_5
:用户数量
COL_0_6
:所有用户消费总金额之和
COL_0_7
:年龄的累计之和
COL_0_8
:人均消费值
dataSetId :0571da869e6a40d3ae156412f6b3f2b7
各列字段代表的意义:
COL_0_0
:浏览的时间
COL_0_1
:一周内的访问次数
COL_0_2
:用户价值等级
COL_0_3
:购物分类
COL_0_4
:用户数
COL_0_5
:消费总额
定义多维结构
将多维数据源的结构以json定义:
[
{
"dataSetId": "c8ab6752-4ec9-47bf-8dc2-f5d843e596d3",
"encrypt": "123456",
"dimensions": [
{
"granularities": [
{
"key": "COL_0_3",
"title": "性别"
}
],
"key": "Dimension_1",
"title": "性别"
},
{
"granularities": [
{
"key": "COL_0_0",
"title": "购买分类"
}
],
"key": "Dimension_2",
"title": "消费类型"
},
{
"granularities": [
{
"key": "COL_0_1",
"title": "省份"
}
],
"key": "Dimension_3",
"title": "区域"
},
{
"granularities": [
{
"key": "COL_0_2",
"title": "用户价值组"
}
],
"key": "Dimension_4",
"title": "用户价值分类"
},
{
"granularities": [
{
"key": "COL_0_4",
"title": "时刻段"
}
],
"key": "Dimension_5",
"title": "时间"
}
],
"measures": [
{
"key": "COL_0_5",
"title": "用户数"
},
{
"key": "COL_0_6",
"title": "消费总额"
},
{
"key": "COL_0_7",
"title": "年龄累计"
}
]
},
{
"dataSetId": "7064bc90-5d89-48cc-8b8c-9d5aeac08e48",
"dimensions": [
{
"granularities": [
{
"key": "COL_0_0",
"title": "周访问时间"
}
],
"key": "Dimension_1",
"title": "访问时间"
},
{
"granularities": [
{
"key": "COL_0_1",
"title": "周访问频率"
}
],
"key": "Dimension_2",
"title": "频率"
},
{
"granularities": [
{
"key": "COL_0_2",
"title": "用户价值组"
}
],
"key": "Dimension_3",
"title": "用户价值分类"
},
{
"granularities": [
{
"key": "COL_0_3",
"title": "购买分类"
}
],
"key": "Dimension_4",
"title": "消费类型"
}
],
"encrypt": "123456",
"measures": [
{
"key": "COL_0_4",
"title": "用户数"
},
{
"key": "COL_0_5",
"title": "消费总额"
}
]
}
]
使用服务器生成多维数据db
将上面的json转化为NXCubeStructure,并生成多层级的sqlitedb.此处源数据从sqlite里读的,因此使用NXProducerSQLiteDataSource. 若源数据从mysql,oracle读的,使用相应的NXProducerMysqlDataSource,NXProducerOracleDataSource。
NXCubeStructure cube=NXCubeStructure.fill("json structure string abrove");
NXProducerSQLiteDataSource productor = new NXProducerSQLiteDataSource(){
@Override
public String getTargetDatabaseFolderPath() {
return "db file generate path folder";
}
};
productor.createCube("datasetid", cube.getDataSetId(), cube.getDimensions(), cube.getMeasures(), cube.getEncrypt());
接下来需要定义图表配置文件。 点我跳转