350
windows
5.1 數據的導入__第五章 Data Pipeline_使用手冊_分析型數據庫-阿裏雲
分析型數據庫支持多種數據入庫方式,包括但不限於:
(1)內置將MaxCompute中的海量數據快速批量導入;
(2)支持標準的insert/delete語法,可使用用戶程序、Kettle等第三方工具寫入實時寫入表;
(3)支持阿裏雲數據集成(CDP),將各類數據源導入批量導入表或實時寫入表。阿裏雲大數據開發平台;
(4)支持阿裏雲數據傳輸(DTS),從阿裏雲RDS實時同步數據變更到分析型數據庫。
本章節主要描述(1)和(3)兩種數據導入方式,其餘導入方式詳見本手冊第八章。
SQL方式將MaxCompute數據導入
分析型數據庫目前內置支持從阿裏雲外售的MaxCompute(原ODPS)中導入數據。
將MaxCompute數據導入分析型數據庫有幾種方法:直接使用SQL命令進行導入,或通過MDS for AnalyticDB界麵進行導入、通過數據集成(原CDP)配置job進行導入。
通過DMS for AnalyticDB界麵導入數據已在《快速入門》進行了介紹;通過數據集成導入數據可以參考下一小章節。下麵主要詳細介紹通過SQL命令將MaxCompute數據導入AnalyticDB。
步驟一: 準備MaxCompute表或分區。
首先我們需要創建好數據源頭的MaxCompute表(可以是分區表或非分區表,目前要求AnalyticDB中的字段名稱和MaxCompute表中的字段名稱一致),並在表中準備好要導入的數據。
如在MaxCompute中創建一個表:
use projecta;--在MaxCompute的某個project中創建表
CREATE TABLE
odps2ads_test (
user_id bigint ,
amt bigint ,
num bigint ,
cat_id bigint ,
thedate bigint
)
PARTITIONED BY(dt STRING);
往表中導入數據並創建分區,如:dt=’20160808’。
步驟二:賬號授權。
首次導入一個新的MaxCompute表時,需要在MaxCompute中將表Describe和Select權限授權給AnalyticDB的導入賬號。公共雲導入賬號為garuda_build@aliyun.com以及garuda_data@aliyun.com(兩個都需要授權)。各個專有雲的導入賬號名參照專有雲的相關配置文檔,一般為test1000000009@aliyun.com。
授權命令:
USE projecta;--表所屬ODPS project
ADD USER ALIYUN$xxxx@aliyun.com;--輸入正確的雲賬號
GRANT Describe,Select ON TABLE table_name TO USER ALIYUN$xxxx@aliyun.com;--輸入需要賦權的表和正確的雲賬號
另外為了保護用戶的數據安全,AnalyticDB目前僅允許導入操作者為Proejct Owner的ODPS Project的數據,或者操作者為MaxCompute表的owner(大部分專有雲無此限製)。
步驟三:準備AnalyticDB表,注意創建時更新方式屬性為“批量更新”,同時把表的Load Data權限授權給導入操作者(一把表創建者都默認有該權限)。
如表:
CREATE TABLE db_name.odps2ads_test (
user_id bigint,
amt int,
num int,
cat_id int,
thedate int,
primary key (user_id)
)
PARTITION BY HASH KEY(user_id)
PARTITION NUM 40
TABLEGROUP group_name
options (updateType='batch');
--注意指定好數據庫名和表組名
步驟四:在AnalyticDB中通過SQL命令導入數據。
語法格式:
LOAD DATA
FROM 'sourcepath'
[IN VERSION dataVersion]
[OVERWRITE] INTO TABLE tablename [PARTITION (partition_name,...)]
說明:
如果使用MaxCompute(原ODPS)數據源,則sourcepath為:
odps://<project>/<table>/[<partition-1=v1>/.../<partition-n=vn>]
- ODPS項目名稱
project
。 - ODPS表名
table
。 - ODPS分區
partition-n=vn
,可以是多級任意類型分區。
數據版本dataVersion,是分析型數據庫管理一次導入數據用的批次號,可用於未來可能開放的數據回滾等feature,通常情況下可以不需要填寫。
- 數據版本必須是long型,且取值在表上單調遞增。
- 如果不指定則取當前時間(秒),格式是
yyyyMMddHHmss
,如20140812080000
。
- 覆蓋導入選項(
OVERWRITE
),導入時如果指定數據日期的表在分析型數據庫線上已存在,則返回異常,除非顯示指定覆蓋。 - 分析型數據庫表名(
tablename
),格式table_schema.table_name
,其中table_name
是分析型數據庫表名,table_schema
是表所屬DB名,表名不區分大小寫。 PARTITION,分析型數據庫表分區,分區格式
partition_column=partition_value
,其中partition_column
是分區列名,partition_value
是分區值- 分區值必須是
long
型; - 分區值不存在時表示動態分區,例如第一級hash分區;
- 不區分大小寫;
- 目前最多支持二級分區。
- 分區值必須是
執行返回值: ‘
‘、,任務ID,用於後續查詢導入狀態.任務ID是唯一標識該導入任務,返回的是字符串,最長256字節。
示例:
LOAD DATA
FROM 'odps://<project>/odps2ads_test/dt=20160808'
INTO TABLE db_name.odps2ads_test
--注意<project> 填寫MaxCompute表所屬的項目名稱
`
步驟五:查看成功導入的數據。
通過數據集成(CDP)將RDS等其他數據源的數據導入
當表的數據源是RDS、OSS等其它的雲係統,我們可以通過阿裏雲的數據集成(原CDP)產品進行數據同步。
批量更新表導入
專有雲上批量導入
專有雲上可以通過大數據開發套件的數據同步任務進行操作,數據同步任務即通過封裝數據集成實現數據導入。具體步驟請看“大數據開發套件”的用戶指南相關數據源配置和數據同步任務配置章節。
前提條件:
- 分析型數據庫目標表更新方式是“批量更新”。
- 在分析型數據庫中給MaxCompute的base_meta這個project的owner賬號至少授予表的Load Data權限,base_meta的owner賬號信息可以在CMDB中查到。
注意“大數據開發套件”中數據同步任務目標為ads數據源的“導入模式”配置項需要選擇“批量導入”。
公共雲上批量導入
公共雲上可在 https://www.aliyun.com/product/cdp/ 上開通數據集成(可能需要申請公測),
前提條件:
- 分析型數據庫目標表更新方式是“批量更新”。
- 在分析型數據庫中給cloud-data-pipeline@aliyun-inner.com這個賬號至少授予表的Load Data權限。
數據集成配置示例:
{
"type": "job",
"traceId": "rds to ads job test",
"version": "1.0",
"configuration": {
"setting": {
},
"reader": {
"plugin": "mysql",
"parameter": {
"instanceName": "你的RDS的實例名",
"database": "RDS數據庫名",
"table": "RDS表名",
"splitPk": "任意一個列的名字",
"username": "RDS用戶名",
"password": "RDS密碼",
"column": ["*"],
}
},
"writer": {
"plugin": "ads",
"parameter": {
"url": "在分析型數據庫的控製台中選擇數據庫時提供的連接信息",
"schema": "分析型數據庫數據庫名",
"table": "分析型數據庫表名",
"username": "你的access key id",
"password": "你的access key secret",
"partition": "",
"lifeCycle": 2,
"overWrite": true
}
}
}
}
運行該job即可。
結束批量導入任務
用戶可以自行結束批量導入任務,運行如下命令:
kill loaddata 'jobId'
其中jobId為該任務的任務ID(load data命令返回值)。
實時更新表導入
專有雲上實時導入
專有雲上可以通過大數據開發套件的數據同步任務進行操作,數據同步任務即通過封裝數據集成實現數據導入。具體步驟請看“大數據開發套件”的用戶指南相關數據源配置和數據同步任務配置章節。
前提條件:
- 分析型數據庫目標表更新方式是“實時更新”。
- 在分析型數據庫中給MaxCompute的base_meta這個project的owner賬號至少授予表的Load Data權限,base_meta的owner賬號信息可以在CMDB中查到。
注意“大數據開發套件”中數據同步任務目標為ads數據源的“導入模式”配置項需要選擇“實時導入”。
公共雲上實時導入
前提條件:
- 分析型數據庫目標表更新方式是“實時更新”。
- 在分析型數據庫中給cloud-data-pipeline@aliyun-inner.com這個賬號至少授予表的Load Data權限。
數據集成配置示例:
reader配置與前麵批量導入的配置一樣,writer配置需要變為(以原表列和目標表列相同為例,若不同需要在column選項中配置Mapping):
"writer": {
"name": "adswriter",
"parameter": {
"writeMode": "insert",
"url": "在分析型數據庫的控製台中選擇數據庫時提供的連接信息",
"schema": "分析型數據庫數據庫名",
"table": "分析型數據庫表名",
"column": ["*"],
"username": "你的access key id",
"password": "你的access key secret",
"partition": "id,ds=2015"
}
其他數據導入方式
用戶亦可利用阿裏雲數據傳輸(DTS)進行RDS到分析型數據庫的實時數據同步(請參照手冊第八章的相關內容)。
分析型數據庫亦兼容通過kettle等第三方工具,或用戶自行編寫的程序將數據導入/寫入實時寫入表。
另外,分析型數據庫進行實時插入和刪除時,不支持事務,並且僅遵循最終一致性的設計,所以分析型數據庫並不能作為OLTP係統使用。
最後更新:2016-12-06 11:56:37
上一篇:
4.4 多計算引擎和Hint__第四章 DML_使用手冊_分析型數據庫-阿裏雲
下一篇:
5.2 數據導入狀態查詢__第五章 Data Pipeline_使用手冊_分析型數據庫-阿裏雲
DomainType__數據類型_API文檔_雲解析-阿裏雲
使用管理VPN__金融雲新手上路_金融雲-阿裏雲
采集-日誌管理__最佳實踐_日誌服務-阿裏雲
修改鏡像屬性__鏡像相關接口_API 參考_雲服務器 ECS-阿裏雲
視頻轉碼 JAVA SDK 安裝及調用___視頻專區_媒體轉碼-阿裏雲
阿裏雲全球化邁入2.0階段,或將助推阿裏取得更大突破
應用類型__產品使用手冊_開放搜索-阿裏雲
服務端驗簽及加解密__安全組件教程_移動安全-阿裏雲
企業郵箱在iPhone6(ios8)上如何設置__客戶端使用_郵箱常見問題_企業郵箱-阿裏雲
2.1 在線圖片處理__2. OSS最佳實踐_開放存儲OSS 體驗_體驗館-阿裏雲
相關內容
常見錯誤說明__附錄_大數據計算服務-阿裏雲
發送短信接口__API使用手冊_短信服務-阿裏雲
接口文檔__Android_安全組件教程_移動安全-阿裏雲
運營商錯誤碼(聯通)__常見問題_短信服務-阿裏雲
設置短信模板__使用手冊_短信服務-阿裏雲
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
消息通知__操作指南_批量計算-阿裏雲
設備端快速接入(MQTT)__快速開始_阿裏雲物聯網套件-阿裏雲
查詢API調用流量數據__API管理相關接口_API_API 網關-阿裏雲
使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲