介绍进行本快速入门的操作前,需要做的准备工作。
前提条件
已注册阿里云账号,阿里云账号注册流程
账号授权
如果您使用【阿里云-子账号】进行实例创建和管理、查看,需要由【阿里云-主账号】进行授权,需要授权的类型可参看:
权限策略名称:
AliyunGraphcomputeFullAccess 管理图计算服务(Graph Compute)的权限。
AliyunGraphcomputeReadOnlyAccess 只读访问图计算服务(Graph Compute)的权限。
具体参考:
Step1:新增授权
https://ram.console.aliyun.com/permissions/new
Step2:子账号可进行权限查看
https://ram.console.aliyun.com/policies
Step3: VPC权限
如果需要对VPC专有网络进行创建,还需要有【AliyunVPCReadOnlyAccess】-只读访问专有网络(VPC)的权限
数据授权
选择MaxCompute数据源(原ODPS),请一定进行授权操作,参见离线存储授权
需要给账号【ALIYUN$openias】授权。
Tips:ALIYUN$openias 为iGraph引擎系统的MaxCompute账号,承担MaxCompute数据索引构建的功能。
请注意字段限制问题:
当前数据源中的字段类型支持MaxCompute 1.0、2.0的基础数据类型
MaxCompute数据版本
MaxCompute数据类型
iGraph支持
对映iGraph字段类型
BIGINT
✓
INT64
DOUBLE
✓
DOUBLE
DECIMAL
✓
推荐STRING、DOUBLE;
注:如选择数值类型,需依赖精度范围内能强制转换,否则会转换失败或者丢失精度
STRING
✓
STRING
DATETIME
✓
STRING
BOOLEAN
✓
STRING
2.0数据类型版本基础类型
TINYINT
✓
INT8
SMALLINT
✓
INT16
INT
✓
INT32
BIGINT
✓
INT64
BINARY
✕
不推荐使用
注:长度限制2M以内
FLOAT
✓
推荐 FLOAT
DOUBLE
✓
推荐 DOUBLE
DECIMAL(precision,scale)
✓
推荐 STRING、DOUBLE
注:如选择数值类型,需依赖精度范围内能强制转换,否则会转换失败或者丢失精度
VARCHAR(n)
✓
推荐 STRING;
注:如选择数值类型,需依赖字段能强制转换
CHAR(n)
✓
STRING
STRING
✓
STRING
DATE
✓
推荐STRING;
注:iGraph查询返回与 1970-01-01 00:00:00 UTC 的偏移天数
DATETIME
✓
推荐STRING、INT64;
注:iGraph类型查询结果为Unix时间戳,默认返回【毫秒】的字符串
TIMESTAMP
✓
推荐STRING、INT64;
注:iGraph类型查询结果为Unix时间戳,默认返回【秒】的字符串
BOOLEAN
✓
STRING
1.0和2.0复杂类型
ARRAY
✕
不支持
MAP
✕
不支持
STRUCT
✕
不支持
Tips:
数据源类型【MaxCompute+增量表】:MaxCompute全量部分会经过iGraph转换,增量部分不会经过转换,需要用户自行转换后写入才能和全量部分数据保持一致。
MaxCompute表中不能包含【复杂类型-ARRAY|MAP|STRUCT】字段,否则会造成索引数据无法构建。
创建数据源
如果您的数据需要GraphCompute做定时全量,还需要创建MaxCompute项目和对应的数据源表;
具体步骤可参考:
创建MaxCompute项目,该项目所属区域需要与GraphCompute的区域一致:
阿里云账号或RAM用户已开通DataWorks服务和开通MaxCompute,且位于同一地域。
如果您需要以RAM用户身份创建MaxCompute项目,请确认已获取RAM用户账号并已授予AliyunDataWorksFullAccess权限。
具体参看:创建MaxCompute项目
添加工作空间成员:
如果您的账号是子账号,需要由主账号或者项目OWNER授权【空间管理员】的角色,方便后续进行GraphCompute公共账号的授权操作;
具体参看:授权给其他用户
创建表:
创建分区表:
注意:
分区表的分区字段需要指定【ds|dt】;
支持Maxcompute1.0/2.0的基础数据源,不允许有复杂类型字段;
实例:
create table if not exists bank_data_pt ( age BIGINT comment '年龄', job STRING comment '工作类型', campaign BIGINT comment '本次活动联系的次数', pdays DOUBLE comment '与上一次联系的时间间隔', previous DOUBLE comment '之前与客户联系的次数', poutcome STRING comment '之前市场活动的结果', emp_var_rate DOUBLE comment '就业变化速率', cons_price_idx DOUBLE comment '消费者物价指数', fixed_deposit BIGINT comment '是否有定期存款' )partitioned by (ds STRING comment '分区标示');
授权GraphCompute系统账号【ALIYUN$openias】可读权限;注意:海外区域(如新加坡区域)需要额外账户权限,具体可联系技术支持。
1) 添加角色
// 添加 openias账号权限 add user `ALIYUN$openias`; // 通过list users;确认是否已经添加成功 list users;
2) 授权可读权限
// 授权 // [project] 替换为您的真实project // [table] 替换为您真实的table grant Read ON PROJECT [project] to user `ALIYUN$openias`; grant List ON PROJECT [project] to user `ALIYUN$openias`; grant Describe ON TABLE [table] to user `ALIYUN$openias`; grant Select ON TABLE [table] to user `ALIYUN$openias`;
3) 敏感字段单独授权
# 显式授权访问t1中敏感度不超过2级的数据 $ GRANT LABEL 2 ON TABLE t1 TO USER `ALIYUN$openias`; # 显式授权访问t1(col1, col2)中敏感度不超过3级的数据 $ GRANT LABEL 3 ON TABLE t1(col1, col2) TO USER `ALIYUN$openias`; # 对整个项目空间都进行敏感字段的授权 $ set label 4 to user `ALIYUN$openias`;
数据导入
具体参考MaxCompute使用DataWorks(离线与实时)