介紹進行本快速入門的操作前,需要做的準備工作。
前提條件
登入阿里雲帳號,具體流程請參考阿里雲帳號註冊流程
帳號授權
如果您使用【阿里雲-子帳號】進行執行個體建立和管理、查看,需要由【阿里雲-主帳號】進行授權,需要授權的類型可參看:
權限原則名稱:
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】-唯讀訪問Virtual Private Cloud的許可權
資料授權
選擇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和DataWorks,且位於同一地區。
如果您需要以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(離線與即時)