准备工作

介绍进行本快速入门的操作前,需要做的准备工作。

前提条件

账号授权

  • 如果您使用【阿里云-子账号】进行实例创建和管理、查看,需要由【阿里云-主账号】进行授权,需要授权的类型可参看:

    • 权限策略名称:

      • AliyunGraphcomputeFullAccess 管理图计算服务(Graph Compute)的权限。

      • AliyunGraphcomputeReadOnlyAccess 只读访问图计算服务(Graph Compute)的权限。

  • 具体参考:

    • Step1:新增授权

      • https://ram.console.aliyun.com/permissions/new

        授权
    • Step2:子账号可进行权限查看

      • https://ram.console.aliyun.com/policies

      graph权限
    • Step3: VPC权限

      • 如果需要对VPC专有网络进行创建,还需要有【AliyunVPCReadOnlyAccess】-只读访问专有网络(VPC)的权限

数据授权

  • 选择MaxCompute数据源(原ODPS),请一定进行授权操作,参见离线存储授权

    • 需要给账号【ALIYUN$openias】授权。

      Tips:ALIYUN$openias 为iGraph引擎系统的MaxCompute账号,承担MaxCompute数据索引构建的功能。

  • 请注意字段限制问题:

    • 当前数据源中的字段类型支持MaxCompute 1.0、2.0的基础数据类型

    MaxCompute数据版本

    MaxCompute数据类型

    iGraph支持

    对映iGraph字段类型

    1.0数据类型版本

    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:

  1. 数据源类型【MaxCompute+增量表】:MaxCompute全量部分会经过iGraph转换,增量部分不会经过转换,需要用户自行转换后写入才能和全量部分数据保持一致。

  2. MaxCompute表中不能包含【复杂类型-ARRAY|MAP|STRUCT】字段,否则会造成索引数据无法构建。

创建数据源

如果您的数据需要GraphCompute做定时全量,还需要创建MaxCompute项目和对应的数据源表;

具体步骤可参考:

  1. 创建MaxCompute项目,该项目所属区域需要与GraphCompute的区域一致:

    • 阿里云账号或RAM用户已开通DataWorks服务开通MaxCompute,且位于同一地域。

    • 如果您需要以RAM用户身份创建MaxCompute项目,请确认已获取RAM用户账号并已授予AliyunDataWorksFullAccess权限。

    • 具体参看:创建MaxCompute项目

  2. 添加工作空间成员:

    • 如果您的账号是子账号,需要由主账号或者项目OWNER授权【空间管理员】的角色,方便后续进行GraphCompute公共账号的授权操作;

    • 具体参看:授权给其他用户

  3. 创建表:

    • 登录安装并登录MaxCompute客户端

    • 创建分区表:

      1. 注意:

        1. 分区表的分区字段需要指定【ds|dt】;

        2. 支持Maxcompute1.0/2.0的基础数据源,不允许有复杂类型字段;

      2. 实例:

        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 '分区标示');
  4. 授权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`;

  5. 数据导入

具体参考MaxCompute使用DataWorks(离线与实时)