
笔记
文章平均质量分 50
「已注销」
这个作者很懒,什么都没留下…
展开
-
记一次数仓重构的前因后果,以及抉择的反思
概要专有名次解释笔者是某游戏平台领域xx公司的数据负责人,准确来说是刚接到boss需求紧急调配到这个项目组。刚接到需求的我立刻跟各个同事了解业务情况,当我了解到数仓的问题的时候,我裂开了,(本人曾担任过原数仓的负责人),原来的数据源是1个,以hadoop为中心展开,现在到好,变成了三个(oss + hadoop + dataworks)。现数仓设计图这里可以看到,我们从阿里的sls(日志中心)订阅实时流数据,然后经由ETL工具(nifi)处理,分别写入三个数据源(OSS, EMR(hadoop),原创 2021-03-26 21:36:44 · 923 阅读 · 0 评论 -
数仓基本知识
数仓基本知识概要以下描述包含我对整个数仓及其概念的简化提炼。适合新手了解相关概念,快速上手,老鸟请绕过。业界为什么要用“数仓”?说起数仓,业界为什么要开发数仓的技术?我们有mysql数据库,mongo数据库,业界为什么要推出个”数仓”的技术?因为存储,因为查询。存储: mysql在阿里开500G磁盘空间就将近4w块钱一个月,而且已经达到最大值,如果我们要100个T数据(1T=1024G),我们还能用mysql数据库吗?不能,怎么办?” 数仓!“查询: 众所周知mysql在单表处理上亿的数据,可原创 2021-03-26 17:41:49 · 1055 阅读 · 0 评论 -
hbase-presto-phoenix遇到的坑
phoenix:1.表/字段名要加双引号。2.不加双引号,默认英文单词,创建的表/字段为大写。3.select 字段的时候要加单引号select * from "aaa" where "name" = 'zys'等价于select * from AAA where NAME = 'zys'4.联动hbase, hbase int用phoenix bigint类型,直接用代码操作hbase存int类型(正负数), 会导致在phoenix select * from tb 操作读不出来数据.原创 2020-10-12 12:36:51 · 2236 阅读 · 2 评论 -
yii笔记—后台架构
ps:系统全部地方的相对路径 都是相对入口文件(index.php)处的路劲”品“字型frameset布局。总结:前台的控制器和视图制作出来(模板与Yii框架结合)视图模板关于布局layout使用后台部署 gii生成后台模块后台登陆,产品展示,主题frameset框架部署起来模块:让前台和后台的代码在物理上分割开来当我们有相对独立的业务需求,原创 2015-10-16 14:27:18 · 821 阅读 · 0 评论 -
yii学习笔记—gii 自动代码生成工具
其实 ajax 的一个很简单的实现原理就是建立一个隐藏的 iframe 然后通过这个 iframe 提交信息,再取 iframe 的返回信息,这样页面没有刷新,刷新的只是那个隐藏的 iframeYii自己有一个模块机制,可以帮我们实现后台的搭建 模块:又自己独立的控制器,独立的视图,独立的模型 ,其不可以单独部署。我们创建模块:gii(自动代码生成工具)gii在原创 2015-10-16 11:01:45 · 1032 阅读 · 0 评论 -
yii框架笔记—后台
在后台实现登陆功能通过控制器和视图展示登陆页面我们操作后台与操作前台是完全一样的行为习惯,不同的是我们访问后台http://www.xxx.com/index.php?r=模块/控制器/方法后台在访问的时候,路由需要加上模块的名字。前台访问:http://www.xxx.com/index.php?r=控制器/方法模块:在Yii里面,就是独立原创 2015-10-16 12:58:27 · 377 阅读 · 0 评论 -
yii学习笔记_布局文
头部尾部1.制作布局文件 在layouts下创建文件xxx.php 用$content代表普遍模板内容2.使用布局文件 在父类控制器Controller中 写 public $layout='//layouts/shop'; //自定义布局文件3.调用布局文件 在控制器方法里调用render()方法 调用view 和 布原创 2015-10-16 00:23:07 · 387 阅读 · 0 评论 -
yii笔记—数据库1
【使用数据库】现在我们可以对数据库进行增,删,改查操作MVC,现在我们制作model来操作数据库原创 2015-10-16 21:40:40 · 382 阅读 · 0 评论 -
php+mysql分页原理
1)分页原理所谓分页就是讲数据库里的结果集,分成一页一页的来显示。2)需要的条件怎么分段,当前在第几段(每页有几条,当前在第几页)3)(当前页数-1)x 每页条数,每页条数select * from table limit ($page-1)*pageSize,$pageSize原创 2015-10-19 10:30:16 · 427 阅读 · 0 评论 -
php笔记_autoload call clone destruct
//include("demo.php");//include("test.php");function __autoload($name){ //自动加载函数 include("$name.php");}class My{ public $name = "我的类"; function __tostring(原创 2015-10-22 11:22:47 · 408 阅读 · 0 评论 -
Smarty的配置
include_once("Smarty/Smarty.class.php"); //包含smarty类文件$smarty = new Smarty(); //建立smarty实例对象$smarty$smarty->config_dir="Smarty/Config_File.class.php"; // 目录变量$smarty->caching=false; //是否使用缓存,项目在调试期间,不原创 2015-10-23 14:50:48 · 482 阅读 · 0 评论 -
yii学习笔记,目录基本组成
base 框架核心组件caching 缓存组件db 数据库组件gii 代码自动生成组件logging 日志组件validators 表单验证组件web 应用组件cmd 创建应用系统命令:yiic webapp ../文件名protected文件夹下:components 应用组件config 配置文件(数据库,缓存等等)controll原创 2015-10-08 08:18:35 · 400 阅读 · 0 评论 -
cookie详解
Setcookie(string name,string value,int expire,string path,string domain,int secure);eg:setcookie("cookie","cookievalue",time()+3600,"/forum","xxx.com",1);输出cookie:echo $MyCookie;echo $Cook原创 2015-10-26 13:36:37 · 381 阅读 · 0 评论 -
php-验证码
创建验证码的过程: 生成随机数--》创建图片--》随机数写入图片--》保持在session中PHP水印原理和流程:原创 2015-10-26 18:53:08 · 352 阅读 · 0 评论 -
PHP—水印
<?php$image = "./test.jpeg";$img = getimagesize($image); //print_r($img);switch($img[2]){ case 1: $im = @imagecreatefromgif($image);break; case 2: ...原创 2015-10-27 10:23:59 · 516 阅读 · 0 评论 -
php简易搜索引擎
<?php $conn = mysqli_connect('127.0.0.1','root','123456'); mysqli_select_db($conn,'hqPro'); if($_GET[key]) { $arr = explode(' ',$_GET[key]); $sql = "原创 2015-10-27 22:26:17 · 837 阅读 · 0 评论 -
php网站开发与Ajax的实现
Ajax 由 HTML JavaScript技术 DHTML 和DOM 组成 这一杰出的方法可以将笨拙的Web界面转化成交互性的Ajax应用程序。HTML --->JS PHP文件创建XMLHttpRequest对象:对于Ajax,最核心的一个对象是XMLHttpRequest,所有的Ajax操作都离不开对这个对象的操作在javascript中创建这个对象JS代原创 2015-10-28 16:22:24 · 637 阅读 · 0 评论 -
VE接口-获取经纬度
VEMap.PanToLatLong MethodPans the map to a specific latitude and longitude.将地图映射到特定的纬度和经度VELatLong Class包含全球单点的纬度和经度。VEMap.onclick Eventproperties:latLong点击位置坐标的LatLong f原创 2015-11-17 11:01:04 · 1520 阅读 · 0 评论 -
HTTP请求流程/组成/状态码
一个完整的HTTP请求过程,通常有下面7个步骤:1.建立TCP连接2.Web浏览器向Web服务器发送请求命令3.Web浏览器发送请求头信息4.Web服务器应答5.Web服务器发送应答头信息6.Web服务器向浏览器发送数据7.Web服务器关闭TCP连接HTTP请求由四部分组成:1.HTTP请求的方法或动作,比如是GET还是POST2.正在请求的URL,原创 2015-11-02 10:08:15 · 1011 阅读 · 0 评论 -
php返回json
<?php include './include/conn.php'; //数据库链接文件$sql_notice = mysql_query('SELECT * FROM gg_notice where enable = "1" limit 0,10');$notice = mysql_fetch_array($sql_notice, MYSQL_ASSOC);print_r ($not转载 2015-11-04 10:26:55 · 391 阅读 · 0 评论 -
前台框架bootstrap基础
bootstrap 是 html/CSS框架 ,由于bootstrap基于jquery,所以引用bootstrap之前一定要先引用jquery。原创 2015-11-26 18:04:10 · 1840 阅读 · 0 评论 -
bootstrap笔记
class = "list-unstyled";class = "list-inline";在Bootstrap主要提供了三种代码风格:1、使用来显示单行内联代码2、使用来显示多行块代码3、使用来显示用户输入代码预编译版本的Bootstrap将代码的样式单独提取出来:1、LESS版本,请查阅code.less文件2、Sass版本,请查阅_code.scs原创 2015-11-27 10:45:34 · 424 阅读 · 0 评论 -
bootstrap 水平排列表单
水平排列的表单通过为表单添加 .form-horizontal 类,并联合使用 Bootstrap 预置的栅格类,可以将 label 标签和控件组水平并排布局。这样做将改变 .form-group 的行为,使其表现为栅格系统中的行(row),因此就无需再额外添加 .row 了。水平表单与其他表单不仅标记的数量上不同,而且表单的呈现形式也不同。如需创建一个水平布局的表单,请按下面的几转载 2015-12-30 11:00:21 · 13392 阅读 · 0 评论 -
使用bootstrap图标
在网页中使用图标也非常的简单,在任何内联元素上应用所对应的样式即可:class="glyphicon glyphicon-search">class="glyphicon glyphicon-asterisk">class="glyphicon glyphicon-plus">class="glyphicon glyphicon-cloud">http://getbootstrap.转载 2015-11-27 15:46:10 · 840 阅读 · 0 评论 -
PDO持久连接的实际用处
持久连接的实际用处:假如一个php脚本文件,同时会有多个用户访问该页面。里面涉及到数据库查询操作。如果使用非持久连接的话,那么每个用户都会从新建立一个数据库连接。而持久连接,多个用户访问同一个文件的时候,可以共享一个数据库连接标识。这样减少了连接次数。new PDO("连接信息","root",array(PDO::ATTR_PERSISTENT=>true));原创 2015-12-16 09:51:40 · 652 阅读 · 0 评论 -
ThinkPHP_MVC
最近学习了TP框架,把心得分享一下吧。TP是基于MVC架构的,Model View Controller 。其中示例图展示如下:模型:处理数据和业务逻辑视图:通过布局向用户展示数据控制器:接受用户请求,并调用相应的模型处理原理:浏览器向控制器发送HTTP请求调用网页数据,控制器给模型发送请求参数,模型选择相应的数据表返回原始数据rows,控制器得到了原始数据后向视图原创 2016-01-16 22:10:14 · 457 阅读 · 0 评论 -
制作PHP安装程序的原理和步骤
1.制作php安装程序的原理和步骤:检查目录或文件的权限->修改或添加配置文件->检查配置文件的正确性->导入数据库->锁定或删除文件原理:将数据库的结构内容导入到相应的数据库中,从这个过程中重新配连接数据库的参数和文件,为了保证不被别人恶意用安装文件,当安装完成后需要修改安装文件。2.制作安装用到的PHP函数is_writable("data/config.php");i原创 2015-12-16 10:35:04 · 1553 阅读 · 0 评论 -
php安装包制作
<?phpheader("content-type:text/html;charset=utf8");$host = isset($_POST['host'])?$_POST['host']:"";$user = isset($_POST['user'])?$_POST['user']:"";$password = isset($_POST['password'])?$_POST['pas原创 2015-12-17 15:03:00 · 832 阅读 · 0 评论 -
php备份数据库的原理和方法
1.php备份数据库的原理查找所有表->查找所有字段(需要列出所有字段名,字段类型等相关信息)->查找所有数据(读取数据出来注意特殊符号的转换addslashes())->生成SQL通过相关函数输出SQL相关信息,并格式化后生成文件,保存!2.php中mysql相关函数mysql_list_tables() 表查询函数,类似mysql_query()函数mysql_list_f原创 2015-12-17 15:11:04 · 868 阅读 · 0 评论 -
js 闭包的理解
各种专业文献上的“闭包”(closure)定义非常抽象,很难看懂。我的理解是,闭包就是能够读取其他函数内部变量的函数。由于在Javascript语言中,只有函数内部的子函数才能读取局部变量,因此可以把闭包简单理解成“定义在一个函数内部的函数”。所以,在本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。闭包的用途闭包可以用在许多地方。它的最大用处有两个,转载 2016-01-02 22:17:43 · 917 阅读 · 0 评论 -
mysql恶补_约束1
约束1.约束是保证数据的完整性和一致性。2.约束分为表级和列级约束。3.约束类型包括:NOT NULL(非空约束)PRIMARY KEY(主键约束)UNIQUE KEY(唯一约束)DEFAULT(默认约束)FOREIGN KEY(外键约束)外键约束:保持数据的一致性,完整性.实现一对一或一对多的关系.(关系型数据库)1.父表和子表必须使用相同原创 2016-01-19 16:55:03 · 390 阅读 · 0 评论 -
php与数据库代码开发规范
1.php中对各类变量内容的命名规范2.php中函数,符号,运算写作规范3.php中各类注释规范4.数据库设计与操作规范1.1) 目录:upload,templates,install,manage...2) 文件:index.php register.php config.php3) 变量:$user $pay_time $pay_del_cont...原创 2015-12-18 16:33:39 · 481 阅读 · 0 评论 -
MYSQL获取自增ID的四种方法
MYSQL获取自增ID的四种方法1. select max(id) from tablename2.SELECT LAST_INSERT_ID() 函数LAST_INSERT_ID 是与table无关的,如果向表a插入数据后,再向表b插入数据,LAST_INSERT_ID会改变。在多用户交替插入数据的情况下max(id)显然不能用。这时就该使用LAST_INSERT_ID了,因转载 2016-01-20 18:08:13 · 1210 阅读 · 0 评论 -
php备份数据库
<?phpfunction connect(){ $link = mysqli_connect("127.0.0.1", "root", "123456"); mysqli_select_db($link, "hqpro"); mysqli_query($link,"set names utf8"); return $link;}function get_原创 2015-12-18 21:47:26 · 377 阅读 · 0 评论 -
python_轻量级爬虫开发
课程内容1.爬虫简介2.简单爬虫架构3.URL管理器4.网页下载器(urllib2)5.网页解析器(BeautifulSoup)6.完整实例爬取百度百科Python词条相关的1000个页面数据爬虫简介:爬虫:一段自动抓取互联网信息的程序价值:有价值的互联网数据。简单爬虫架构:时序图:URL管理器:管理待抓取原创 2016-01-21 15:53:15 · 636 阅读 · 0 评论 -
什么是rest service?
REST是一套用来创建Web Service的方法。REST式的Web Service的主旨是让事情尽量的简单化。REST式的Web Service使用HTTP里的方法:GET, POST, DELETE, PUT。你不需要使用URL或请求的内容来指定这个方法。REST式的Web Service使用HTTP状态码作为返回值。REST式的Web Service调用产生的HTTP请求内容只是用翻译 2016-01-05 13:11:40 · 1312 阅读 · 0 评论 -
python_轻量级爬虫开发2
网页下载器:Python有哪几种网页下载器?urllib2 :Python官方基础模块request : 第三方包更强大urllib2下载网页方法1:最简洁方法url = > urllib2.urlopen(url)# coding=utf-8import urllib2#直接请求response = urllib2.urlopen(原创 2016-01-21 20:48:04 · 520 阅读 · 0 评论 -
python_轻量级爬虫开发3
采用beautiful插件创建BeautifulSoup对象from bs4 import BeautifulSoup#根据HTML网页字符串创建BeautifulSoup对象soup = BeautifulSoup( html_doc, #HTML文档字符串 'html.parser',原创 2016-01-21 22:01:21 · 433 阅读 · 0 评论 -
ubuntu自带VI编辑器不好用的解决办法
1. 安装vim full版本由于Ubuntu预安装的是tiny版本,就会导致我们在使用上的产生不便。所以我们要安装vim的full版本。首先,先卸掉旧版的vi,输入以下命令: sudo apt-get remove vim-common然后安装full版的vim,输入命令:sudo apt-get install vim这样安装好了之后的VI就没有那么难用了。转载 2016-01-26 01:33:34 · 3577 阅读 · 0 评论 -
IDL_原函数分析2
PRO read_ascat COMPILE_OPT idl2 ;ENVI调用初始化 ENVI,/restore_base_save_files ENVI_BATCH_INIT file=DIALOG_PICKFILE(path='D:\oilSpill\ASCAT\解压',TITLE='Select unc File', FILTER='*.nc') nid = NCDF原创 2016-01-26 18:39:13 · 870 阅读 · 0 评论