# 维度字典

## 1. 什么是“维度字典”

针对已经存在的事件属性和用户属性，可以上传属性值的自定义映射关联。 在过滤，分组中可以使用带有维度字典的属性。如下图所示，维度字典的属性右侧会有字典标示，屏幕宽度，操作系统版本，性别都是有维度字典的属性。

![](https://3928609189-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Levm4x0IpHBx6dxiaCM%2F-LeydYULqjq7WfRLX0IT%2F-LeydkfovS0VPXRB92A7%2Fdimension-dict-property.png?generation=1557976802387947\&alt=media)

## 2. 使用示例

### 2.1 界面上传维度字典

点击页面左下角的元数据，可以在用户属性页面和事件属性页面上传属性的维度字典。

* 首先建立维度字典，字典命名加上 .txt 后缀。
* 支持上图所示的分隔方式，选择的分隔符样式必须和维度字典中分隔符一致。分隔符左边是原始值，右边是替换的值。注意：字典中的分隔符样式都要使用英文的分隔符。同时字典每一行分隔符左边不要出现和分隔符相同的字符。这里因为维度字典每一行用","分隔，所以分隔符样式选择","。

```
640,a
1080,b
1920,c
2048,d
```

1.浏览属性页面

如下图所示，只有文本类型和数值类型的属性可以上传维度字典，点击按钮可上传。

![](https://3928609189-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Levm4x0IpHBx6dxiaCM%2F-LeydYULqjq7WfRLX0IT%2F-Leydkfx--pNnR6EEUrY%2Fdict_view.png?generation=1557976803315650\&alt=media)

2.上传维度字典

![](https://3928609189-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Levm4x0IpHBx6dxiaCM%2F-LeydYULqjq7WfRLX0IT%2F-Leydkfzc8MolXb2Pf0U%2Fupload_dict.png?generation=1557976792161586\&alt=media)

* 上传可以选择新增上传，现有的字典会保留。覆盖会清空之前的字典再上传。点击确认开始上传。 &#x20;

  注意：维度字典 &#x20;

  **（神策分析 1.12 版本之前）是一对一映射**，即逗号的左边列和右边列的取值都必须是唯一的。 &#x20;

  **（神策分析 1.12 及版本之后）维度字典支持多对一**，针对已经存在的事件属性和用户属性，可以上传属性值的自定义多对一映射关系。

3.清空维度字典

所有有维度字典的属性右侧会出现删除按钮，表示可以清除维度字典。 ![](https://3928609189-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Levm4x0IpHBx6dxiaCM%2F-LeydYULqjq7WfRLX0IT%2F-Leydkg04XMGGt-8ozr2%2Fdelete_dict.png?generation=1557976802699165\&alt=media)

### 2.2 上传维度字典api

通过发送 http post 请求［/property/dict/upload］，可以上传字符串类型或数值类型属性的维度字典。

* Parameters
  * propertyName: 上传的属性名，必须是已有属性的属性名，比如 $os\_version, Gender
  * type: 上传的属性类型，property 或者 profile，表示是事件属性还是用户属性。
  * isIncrement: bool 类型，表示是否增量上传。false表示全量上传，会清空之前对应属性的字典再上传。true表示增量上传。
  * file: 上传一个属性的维度字典，最大不超过 100M。维度字典每行用逗号分隔，逗号左边是属性值，逗号右边是用户定义的属性值对应的映射后的值。文件必须是 UTF-8 编码。
  * split: 可选参数，默认是逗号分隔。比如自定义字典使用“|“分割，则 split 值为“|“。
* Response 200

比如用户要上传事件属性 $os\_version 的维度字典，发送如下指令：

```
curl 'http://$WEB_URL/api/property/dict/upload?project=$PROJECT_NAME&propertyName=$os_version&type=property&isIncrement=true&token=$API_SECRET' -X POST -F "file=@$PATH"
```

* 替换 $WEB\_URL, $PROJECT\_NAME, $API\_SECRET, $PATH 四个参数。$WEB\_URL 是网站的 URL；$PROJECT\_NAME 是 project名； $API\_SECRET 可以使用 admin 账号登陆系统后，在账户管理界面获取；$PATH 是属性维度字典在本地的路径。
* file:&#x20;

```
8.1,第一版
8.2,第二版
8.0,第三版
```

注意：维度字典\
\&#xNAN;**（神策分析 1.12 版本之前）是一对一映射**，即逗号的左边列和右边列的取值都必须是唯一的。\
\&#xNAN;**（神策分析 1.12 及版本之后）维度字典支持多对一**，针对已经存在的事件属性和用户属性，可以上传属性值的自定义多对一映射关系。

### 2.3 下载维度字典

![](https://3928609189-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Levm4x0IpHBx6dxiaCM%2F-LeydYULqjq7WfRLX0IT%2F-LeydkgDsrvIuinW8EqJ%2Fdimension-dict-property-download.png?generation=1557976802360858\&alt=media)

对于有维度字典的属性，可以下载已有的数据字典，默认保存为 txt 文件。

### 2.4 筛选表达式

对于有维度字典的属性，不管是字符串类型还是数值类型，筛选条件都只有四类：

* equal / notEqual，表示等于/不等于
* isSet / notSet，表示有值/没值

### 2.5 结果展示

以事件分析为例，获取2015-10-18至2015-10-20买入黄金的总次数，其中操作系统是第一版。因为操作系统版本是有维度字典的属性，过滤条件和结果分组列表中，都是显示的用户定义后的值。对于字典中没有覆盖的值，会显示原来的值。在漏斗分析，留存分析等功能中，有维度字典的属性使用情况类似。

![](https://3928609189-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Levm4x0IpHBx6dxiaCM%2F-LeydYULqjq7WfRLX0IT%2F-LeydkgHLQKykq7zWr_2%2Fdimension-dict-result.png?generation=1557976792127955\&alt=media)

### 2.6 清空维度字典

参数含义和上传维度字典类似，比如要清空刚才上传的$os\_version的维度字典，则执行下面的指令。

```
curl 'http://$WEB_URL/api/property/dict/empty?propertyName=$os_version&type=property&token=$API_SECRET' -X POST
```
