介紹進行本快速入門的操作前,需要做的準備工作。
前提條件
已注冊阿里云賬號,阿里云賬號注冊流程
賬號授權
如果您使用【阿里云-子賬號】進行實例創建和管理、查看,需要由【阿里云-主賬號】進行授權,需要授權的類型可參看:
權限策略名稱:
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(離線與實時)