了解数据上云的流程,对数据进入阿里云平台的技术方案进行了解,方案主要涉及技术的流程,成本以等方面的考虑。
阿里云的使用-个人云时代
借助云技术,开创新时代
大数据离线计算--阿里云使用demo
1.使用的流程--将数据存储到OSS
2.在Maxcompute创建外部表,同时创建内部表,将数据通过内部表形式导入到Maxcompute
3.在Maxcompute计算
4.quick BI 读取Maxcompute 数据-创建报表
1.过程:
01.源头对接:
数据采集-
将采集的数据发送至OSS
02.上云处理
01.按照文件目录以及文件分区设置好OSS
02.只需要创建一个外部表,便可把这张表作为源表进行查询
03.创建Maxcompute内部表,并将数据从外部表中导入
04.内部表持续累加,外部表周期性删除即可
05.对内部表进行maxcompute分析,并将结果保存
06.对计算结果进行BI展示
涉及的阿里云产品
OSS
Maxcompute
QuickBI
03.服务输出:
Maxcompute 计算结果保存以及调用
邮件发送报表
2.涉及其他方面:
1.创建OSS对象,并存储数据
01.OSS开通服务
02.创建存储空间(bucket)
通过管理控制台等方式进行文件存储操作
01.OSS首先创建存储空间(bucket)
02.向存储空间中上传您的数据或文件(即OSS中的对象Object)
上传方式:
大文件上传(断点续传)
小文件上传(普通上传)
流式文件上传(追加上传)
网页上传(表单上传)
下载方式
文件访问URL
OSS直接下载
配合CDN加速下载
03.上传和下载场景
客户端直传
服务器上传
04.授权管理
访问控制
基础访问控制(Accesskey)
主子账号控制(RAM)
临时访问授权(STS)
访问日志
05.对象存储OSS多种工具
OSS客户端工具 可视化文件管理
OSSFS工具 云端数据本地挂载
OSS FTP工具 论坛附件云端存储
OSS迁移工具 海量数据无缝迁移
Aliyun OSSUTIL 全新上线更好用
OSS图片处理工具
OSS上文件路径
OSS 的连接格式为oss://oss-cn-shanghai-internal.aliyuncs.com/Bucket名称/目录名称/。目录后不要加文件名称
自定义 Extractor 实现更复杂的数据处理抽取逻辑
I、 01.Bucket ali
02. directory:
test
parttag=2017-11-26/C_****.json
parttag=2017-11-26/C_****.json
example
parttag=2017-11-26/
bucket 为oss-odps-test ali
endpoint 为oss-cn-shanghai-internal.aliyuncs.com, oss-cn-beijing.aliyuncs.com
数据文件的存放路径为/demo/vehicle.csv da/parttag=2017-11-26/C_****.json
2.在Maxcompute创建外部表,同时创建内部表,将数据通过内部表形式导入到Maxcompute
01. 前提条件:
实名认证云账号,生成 AccessId 和 Accesskey
给云账号赋建表权限
02. 创建表方式
a) 可视化建表
b) 语句建表
以下采用语句建表
2.1-- 创建外部表
DROP TABLE IF EXISTS lt_da_item_external;
CREATE EXTERNAL TABLE IF NOT EXISTS lt_da_item_external
(
item_id string,
item_geohash string,
item_category string
)
STORED BY 'com.aliyun.odps.CsvStorageHandler'
WITH SERDEPROPERTIES (
'odps.properties.rolearn'='acs:ram::***********:role/aliyunodpsdefaultrole'
)
LOCATION 'oss://oss-cn-shanghai-internal.aliyuncs.com/compt/alidata/item/';
DROP TABLE IF EXISTS lt_da_user_external;
CREATE EXTERNAL TABLE IF NOT EXISTS lt_da_user_external(
user_id string,
item_id string,
behavior_type string,
user_geohash string,
item_category string,
time string)
STORED BY 'com.aliyun.odps.CsvStorageHandler'
WITH SERDEPROPERTIES (
'odps.properties.rolearn'='acs:ram::***********:role/aliyunodpsdefaultrole'
)
LOCATION 'oss://oss-cn-shanghai-internal.aliyuncs.com/compt/alidata/user/';
2.2-- 创建内部表
DROP TABLE IF EXISTS lt_da_item;
CREATE TABLE IF NOT EXISTS lt_da_item
(item_id string,
item_geohash string,
item_category string);
DROP TABLE IF EXISTS lt_da_user;
CREATE TABLE IF NOT EXISTS lt_da_user(
user_id string,
item_id string,
behavior_type string,
user_geohash string,
item_category string,
time string);
2.3-- 导入数据-- 外部分区表数据导入内部表操作 lt_da_item_external
INSERT OVERWRITE TABLE lt_da_item
SELECT item_id,item_geohash ,item_category FROM lt_da_item_external ;
INSERT OVERWRITE TABLE lt_da_user
SELECT user_id. item_id,behavior_type,user_geohash ,item_category,time FROM lt_da_user_external ;
III、添加表数据
ALTER TABLE ca_test_amp_external
ADD PARTITION (parttag='2017-11-26') location '/parquetdata/test/data/amp/20170929'
-- 外部分区表数据导入内部表操作
INSERT OVERWRITE TABLEca_test_amp
PARTITION(parttag = '2017-11-16')
SELECT l,version FROM ca_test_amp_external WHERE parttag = '2017-11-26';
IV-01、针对内部表进行计算
IV-02、 针对内部表进行计算,并保留计算结果
V、将计算结果使用报表进行可视化
3.在Maxcompute计算
-- 查看所有表
show tables;
--查看外部表数据
-- 查看表描述
desc lt_da_user_external;
+------------------------------------------------------------------------------------+
| Owner: ALIYUN$yt | Project: input_demo |
| TableComment: |
+------------------------------------------------------------------------------------+
| CreateTime: 2017-11-27 15:12:29 |
| LastDDLTime: 2017-11-27 15:12:29 |
| LastModifiedTime: 2017-11-27 15:12:29 |
+------------------------------------------------------------------------------------+
| ExternalTable: YES |
+------------------------------------------------------------------------------------+
| Native Columns: |
+------------------------------------------------------------------------------------+
| Field | Type | Label | Comment |
+------------------------------------------------------------------------------------+
| item_id | string | | |
| item_geohash | string | | |
| item_category | string | | |
+------------------------------------------------------------------------------------+
SELECT item_id,item_geohash ,item_category FROM lt_da_item_external limit 100;
4.Quick BI
选定数据源--创建数据集--新建工作表或新建仪表盘--数据门户
附录:
00.名词解释
对象存储 OSS
阿里云对象存储服务(Object Storage Service,简称 OSS)
可以通过调用 API,在任何应用、任何时间、任何地点上传和下载数据,
也可以通过 Web 控制台对数据进行简单的管理。
OSS 适合存放任意类型的文件,适合各种网站、开发企业及开发者使用。
按实际容量付费真正使您专注于核心业务。
01.-- 单独插入
insert into table lt_da_user
values ('a',1),('b',2),('c',3);
创建内部表,并从其他表复制表结构
CREATE TABLE table_name LIKE table_name2 ;
02.-- 出现错误
Semantic analysis exception - external table checking failure, error message: {"RequestId":"455DA0B3-28FC-4639-9AD6-9EED6AABFB1D",
"HostId":"sts.aliyuncs.com","Code":"NoPermission","Message":"You are not authorized to do this action. You should be authorized by RAM."}
注意设置权限,需要有OSS权限以及大数据权限
AliyunOSSFullAccess
AliyunODPSRolePolicy
分区:
在实际的生产环境中,使用分区,可以避免很多问题。从OSS到Maxcompute
-- 分区表的生命周期
--分区表的最后一个分区被回收后,该表不会被删除。生命周期只能设定到表级别,不能再分区级
ALTER TABLE table_name SET lifecycle days;
1.OSS上存储数据时需要遵循location的路径格式。如有效的路径存储layout:
//oss-odps-test/log_data/year=2016/month=06/day=01/logfile
参考:
https://help.aliyun.com/document_detail/30267.html?spm=5176.doc30265.6.554.19UEfT
MaxCompute常用语句汇总(更新ing) https://yq.aliyun.com/articles/222955?utm_content=m_32180
帮助企业做好MaxCompute大数据平台成本优化的最佳实践 https://yq.aliyun.com/articles/257512?spm=5176.8091938.0.0.uoFG4n
访问 OSS 非结构化数据 https://help.aliyun.com/document_detail/45389.html?spm=5176.product27797.6.690.q1k51L
DDL语句 https://help.aliyun.com/document_detail/27862.html?spm=5176.doc45389.2.12.IJG4cn