当前位置: 首页 > news >正文

网站建设 硬件关键词优化软件有哪些

网站建设 硬件,关键词优化软件有哪些,微电影制作,青海网站建设公司哪家好摘要#xff1a; 一、概述 因为自家公司是做B2B类Saas服务的#xff0c;难免会产生精准计费的问题#xff0c;所以在通过多套方案的选型及对比以后#xff0c;我们最终确定了以下的方式进行自有业务平台的流量计算方案。因为涉及到具体的操作#xff0c;所以阅读本文的前提…摘要 一、概述 因为自家公司是做B2B类Saas服务的难免会产生精准计费的问题所以在通过多套方案的选型及对比以后我们最终确定了以下的方式进行自有业务平台的流量计算方案。因为涉及到具体的操作所以阅读本文的前提是我默认您已经具备了阿里云相关产品的使用经验。 一、概述 因为自家公司是做B2B类Saas服务的难免会产生精准计费的问题所以在通过多套方案的选型及对比以后我们最终确定了以下的方式进行自有业务平台的流量计算方案。因为涉及到具体的操作所以阅读本文的前提是我默认您已经具备了阿里云相关产品的使用经验。 目前的流量构成主要为 1.用户访问业务平台产品的页面响应流量即http返回页面的大小。 2.用户访问业务平台中图片所产品的流量所有的图片存放在OSS中通过CDN暴露在公网访问。 3.用户的API请求产生的响应流量即Json返回值页面的大小。 我们的目标 1.我们的计费颗粒为按天计算所以我们只需要确保第二天能得到前一天的流量数据即可。对实时性的要求不是那么的高。 2.需要所有的数据都参与运算并且能支持多渠道的日志来源。 3.需要支持重新计算有些时候因为一些特定原因需要重新获取某个时间段的流量数据需要得到和之前一致的数据结果前提是原始日志相同的情况下。 4.不能产生大量成本最好是不要购买服务器不要进行太大的支出。 5.所有流量计算出的结果按年、月、日、时存入Mysql数据库便于实时查表显示给客户。 二、流量统计流程三、获取访问日志 目前所有的访问都基于HTTP展开那么无论是apache还是nginx都是自带访问日志功能的只需要把这些文本日志清洗一下存到数据库就行了或者有更简单的方式将这些日志通过阿里云的日志服务收集起来然后定时投递到数加的ODPS表里即可。 这里给一个日志服务的传送门https://www.aliyun.com/product/sls 相对于自己收集日志并清洗我还是更加建议使用阿里云的日志服务查询快且稳定、收费也低、客户支持力度很棒、迭代速度很快。 值得一提的是数加平台支持一键导入CDN日志如果你的业务恰恰好是全CDN加速的那么你只需要收集CDN日志就可以进行较为精准的流量统计了。 我们收集到的访问日志格式大概是这样的 [12/Nov/2017:00:09:15 0800] 112.28.172.8 - 0 “http://www.xxx.com/Article/86892.html” “GET http://www.xxx.com/Public/css/style.css” 200 393 21427 HIT “Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36” “text/css” 分割后按顺序分别是时间访问IP代理IPresponsetimereferermethod访问URLhttpcoderequestsizeresponsesizecache命中状态UA头文件类型。 其中最重要的就是2个字段URL、responsesize。 URL字段是整个访问的URL路径可以用于分析文件类型和客户平台。 Responsesize是指整个请求响应的数据大小。 你也可以结合httpcode和缓存命中来进行更精准的计算我下面的介绍不涉及这一块内容一通百通明白后自己调整一下ODPS的SQL语句就行了。 日志导入ODPS 如果我们需要将日志数据导入到ODPS中那么需要完成ODPS表的创建这一块进入到数加平台即可完成与我们平时开发中创建MYSQL、MSSQL表的方式差不多只是有些数据类型上的差异。同时ODPS表也支持了一个很重要也很有用的概念——分区。 你可以在创建ODPS表的时候指定一个或多个字段来对某一些数据进行分区常见的就是按时间分区比如日志时间格式化到小时级别用作分区这样就能把某个小时的数据置入特定分区。设置分区的目的主要是在后期运算、覆写、重跑时更便利。 那么日志导入到ODPS的方式有几种 1.如果你的日志在阿里云日志服务中直接配置一下ODPS投递即可具体查询文档还是比较简单的就不啰嗦了。 2.如果你的日志数据在自建系统中那么可以考虑使用“数加平台的-数据集成”功能来完成数据的导入和同步支持的数据库种类超级多具体请看文档https://help.aliyun.com/document_detail/53008.html 市面上90%的数据库都支持的。 此处我们得到一个ODPS数据表名为cdn_logs里面存放的是所有的cdn访问日志名字只是演示你可以自定义。我的建表语句是这样的 CREATE TABLE cdn_logs ( station_node STRING COMMENT ‘节点’, unix_time BIGINT COMMENT ‘访问时间’, method STRING COMMENT ‘请求方法’, procotol STRING COMMENT ‘请求协议’, domain STRING COMMENT ‘域名’, uri STRING COMMENT ‘请求的uri’, uri_parameter STRING COMMENT ‘请求参数’, imgsrc_type BIGINT COMMENT ‘图片压缩类型ID’, return_code BIGINT COMMENT ‘返回码’, rt BIGINT COMMENT ‘延时’, request_size BIGINT COMMENT ‘请求大小’, response_size BIGINT COMMENT ‘响应大小’, hit_info STRING COMMENT ‘命中信息’, client_ip BIGINT COMMENT ‘真实用户IP’, proxy_ip STRING COMMENT ‘中间代理ip’, remote_address BIGINT COMMENT ‘客户端IP’, bacend_server STRING COMMENT ‘回源IP’, refer_procotol STRING COMMENT ‘引用协议’, refer_domain STRING COMMENT ‘引用域名’, refer_uri STRING COMMENT ‘引用uri’, refer_parameter STRING COMMENT ‘引用参数’, content_type STRING COMMENT ‘请求返回类型’, user_agent STRING COMMENT ‘UA’, port BIGINT COMMENT ‘客户端口’, transfer_success BIGINT COMMENT ‘传输是否成功’, last_modify STRING COMMENT ‘服务器上文件的最后修改时间’, user_info STRING COMMENT ‘用户信息’, traceid STRING COMMENT ‘访问错误排查跟踪id’, sent_http_via STRING COMMENT ‘http via头’, reserve_1 STRING COMMENT ‘保留字段1’, reserve_2 STRING COMMENT ‘保留字段2’, reserve_3 STRING COMMENT ‘保留字段3’ ) PARTITIONED BY ( log_date STRING COMMENT ‘日期分区’, domain_id BIGINT COMMENT ‘ID分区’ ) LIFECYCLE 100000; 四、进行离线计算任务配置 我们已经拥有了一个基础数据表cdn_logs在此之外我们还需要创建2个表分别为 cdn_logs_format表——对cdn_logs表进行格式化后得到的进一步清洗数据此处需要贴近业务进行各种DIY操作这个表的生命周期建议是参考自己的日志量来规划如果日志少就设为永久否则设置成周期。建表语句如下 CREATE TABLE cdn_logs_format ( unix_time BIGINT COMMENT ‘访问时间’, uri_parent STRING COMMENT ‘首层目录名’, method STRING COMMENT ‘请求方法’, procotol STRING COMMENT ‘请求协议’, domain STRING COMMENT ‘域名’, uri STRING COMMENT ‘请求的uri’, return_code BIGINT COMMENT ‘返回码’, rt BIGINT COMMENT ‘延时’, response_size BIGINT COMMENT ‘响应大小’, client_ip BIGINT COMMENT ‘真实用户ip’, remote_address BIGINT COMMENT ‘客户端ip’, bacend_server STRING COMMENT ‘回源ip’, refer_domain STRING COMMENT ‘引用域名’, refer_uri STRING COMMENT ‘引用uri’, content_type STRING COMMENT ‘请求返回类型’, user_agent STRING COMMENT ‘ua’ ) PARTITIONED BY ( log_date STRING COMMENT ‘日期分区’ ) LIFECYCLE 100000; aggr_product_traffic表——最终的流量统计结果表这个表结果少建议生命周期永久建表语句 CREATE TABLE aggr_product_traffic ( clientcode STRING COMMENT ‘客户端代码’, year BIGINT COMMENT ‘年’, month BIGINT COMMENT ‘月’, day BIGINT COMMENT ‘日’, hour BIGINT COMMENT ‘小时’, mi BIGINT COMMENT ‘分钟’, traffic BIGINT COMMENT ‘流量’, create_at BIGINT COMMENT ‘创建汇总时的时间戳’, targetdate STRING COMMENT ‘汇总结果时间’ ) COMMENT ‘产品流量汇总表’ PARTITIONED BY ( aggr_date STRING COMMENT ‘分区时间’, product STRING COMMENT ‘产品代码’ ) LIFECYCLE 100000; 把准备工作准备完成后我们需要在数加里配置对应的离线任务在配置离线任务之前可以使用数加的“数据开发IDE”进行试验这里需要注意试验是有成本的但是很便宜一瓶可乐钱大概可以玩一天。 开始之前我们需要明白几个关键词 虚节点没意义的节点没实际功能虚拟出来便于理解整体逻辑关系的可建可不建。 任务节点说白了就是一个具体的操作比如跑SQL语句或同步数据。 调度周期这个很重要关系到了你的任务颗粒细度可以设置为分钟、小时、天、周、月大部分是够用的。 离线任务我们一定要明白一个概念所有在数加平台运行的离线任务都是非实时的所有的ODPS表查询也都是非实时的虽然SQL语句查询的方式很像实时数据库但是你不能直接连接到ODPS进行业务数据实时展示所以在流程的最后我们一般需要放一个数据同步的节点用来将运算完成的ODPS数据同步到自己的数据库中进了自己数据库还不是任你揉捏~ 进入到数加平台的“数据开发”模块在左侧创建任务此处我们选择工作流任务便于理解整体的逻辑以下是我的实现逻辑不一定适合所有人请自行调整图片看不清请放大看格式化cdn日志我是通过SQL语句结合一些小技巧来完成的因为我们是一家to B的Saas服务商所以在文件的存储上有自己的规律比如 http://www.xxx.com/client123/logo.png http://www.xxx.com/client999/logo.png 分别代表了两个客户的文件URL我们需要通过字符串切割把客户标识找出来也就是连接中 client123和client999 这一部分。 以下是我的SQL语句 ALTER TABLE cdn_logs_format DROP if exists PARTITION (log_date’bdp.system.bizdate′);INSERTintoTABLEcdnlogsformatPARTITION(logdate′{bdp.system.bizdate}’) SELECT unix_time , TOLOWER(split_part(uri, ‘/’, 2)) AS uri_parent , method, procotol, domain, uri, return_code , rt, response_size, client_ip, remote_address, bacend_server , refer_domain, refer_uri, content_type, user_agent FROM cdn_logs WHERE log_date ‘${bdp.system.bizdate}’ 上面的语句中最核心的其实就3个部分。 第一部分是维护cdn_logs_format表的特定分区判断是否存在脏数据如果存在删除掉这个分区的内容。${bdp.system.bizdate}这个是内置变量最终运行时会被替换为日期。 第二部分是通过split_part方法切割出url中的第一级目录也就是我们业务中的客户标识部分。 第三部分是把查询到的内容INSERT into到cdn_logs_format表中。 在完成了基础日志的格式化之后我们需要对同一个客户的访问请求进行合并汇总需要用到下面的SQL语句 ALTER TABLE aggr_product_traffic DROP IF EXISTS PARTITION (product ‘emp’, aggr_date ‘${bdp.system.bizdate}’); INSERT INTO TABLE aggr_product_traffic PARTITION (product ‘emp’, aggr_date ‘bdp.system.bizdate′)SELECTuriparentASclientcode,datepart(TODATE(logdate,‘yyyymmdd′),‘yyyy′)ASyear,datepart(TODATE(logdate,‘yyyymmdd′),‘mm′)ASmonth,datepart(TODATE(logdate,‘yyyymmdd′),‘dd′)ASday,datepart(TODATE(logdate,‘yyyymmdd′),‘hh′)AShour,datepart(TODATE(logdate,‘yyyymmdd′),‘mi′)ASmi,SUM(responsesize)AStraffic,UNIXTIMESTAMP(TODATE(‘{bdp.system.bizdate}’, ‘yyyymmdd’)) AS create_at , to_char(TO_DATE(‘bdp.system.bizdate′,‘yyyymmdd′),‘yyyy−mm−dd′)AStargetdateFROMcdnlogsformatWHERElogdate‘{bdp.system.bizdate}’ GROUP BY uri_parent,log_date 上面的语句中核心其实就是group by sum方法做过关系型数据库开发的同学一定很熟悉我也就不赘述了。 至此我们就通过2个任务分别完成了基础日志的处理及流量数据的合并汇总。 五、运算结果同步到自有数据库 这一步就不截图展示了很简单配置好数据源一一对应数据库字段即可傻瓜操作so easy然后找你的开发同学做个好看的图表出来后你的客户看到的就是这个效果六、后记 因为只是偏场景方向的某一个侧重点展示所以对经常使用数加平台的同学来说这个可能太浅了帮助不大。但是对未接触过数加产品的同学来说其实数加有好多产品都挺有意思的只不过因为大数据这一块因为大家领域、场景重叠的少导致分享的东西很难产生共鸣。
http://www.pierceye.com/news/276770/

相关文章:

  • 相亲网站开发与设计报告广州网站维护
  • 门户网站 技术方案北京感染人数最新消息
  • 网站制作过程流程酷家乐在线设计官网
  • 六年级做网站的软件小程序开发文档微信小程序
  • 做网站要准备哪些汕头建站公司模板
  • 杭州多语言网站建设网站转app工具
  • 一流的网站建设wordpress 读者墙
  • php 视频播放网站开发php做直播类型的网站
  • 网站建设氺金手指排名11wordpress手机端菜单
  • 存储网站建设软件界面设计图
  • 微信 公司网站 怎么做WordPress安装在Windows
  • 商丘给企业做网站的公司已备案域名租用
  • .net商城网站模板下载网站开发怎么对接客户
  • php程序员网站开发域名企业备案对网站的好处
  • 沈阳市城乡建设网站wordpress全文
  • 冉冉科技网站建设网络教学平台网址
  • 深圳网站设计建设公司宁波易通建设网站
  • 许昌网站建设公司网站的空间和域名
  • 公司查询网站查询系统wordpress简书主题
  • 公司网站 钓鱼网站ui设计交付物都包含哪些
  • seo网站导航建设技巧精东影视传媒文化管理公司
  • 做白酒的网站怎么查网站建设是哪家公司
  • 网站域名密码免费网站推广产品
  • 网站建设一般要多少费用申请网站官网
  • 金融网站织梦模板二手车网站建设
  • 怎么自己写代码做网站做网站必须用域名吗
  • 重庆营销网站建设平台怎么添加wordpress模板
  • 网站赚取广告费深圳个人外贸网站建
  • 在线销售型的网站巢湖城市建设投资有限公司网站
  • 苏州高端网站建设设计程序源代码网站