shell将数据写入excel,电子表格shell造数据
1. shell造数据
Shell脚本是方便管理员进行设置的程序文件。
Shell脚本与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。
但是它比Windows下的批处理更强大,比用其他编程程序编辑的程序效率更高,它使用了Linux/Unix下的命令。
换一种说法也就是,Shell脚本是利用shell的功能所写的一个程序。
这个程序是使用纯文本文件,将一些shell的语法与指令写在里面,然后用正规表示法,管道命令以及数据流重导向等功能,以达到我们所想要的处理目的。
更明白地来说,Shell脚本就像早期dos年代的.bat,最简单的功能就是将许多指令汇整写一起,让使用者很容易地就能够一个操作执行多个命令;
而Shell脚本更是提供了数组,循环,条件以及逻辑判断等重要功能,让使用者可以直接以shell来写程序,而不必使用类似C程序语言等传统程序编写的语法。
2. 电脑shell数值数据如何写
scp 没这功能,不过可以用其他工具,比如 rsync,会自动忽略已经同步过的文件。rsync -av /local/path 192.168.xxx.xxx:/remote/path
3. shell实现
可以在shell脚本中加一个for循环。循环中加一个判断,。如果为真,则输出结果,如果为假则输出一个点点点,并添加等待语句。
4. shell 数据
[[]]:条件判断语句$i:i是个变量,$i代表读取变量i的值=~:正则匹配,用来判断其左侧的参数是否符合右边的要求^:以什么开头^[0-9]:以数字开头^[0-9]+:以数字开头,且数字有1到多个——加号表示1到多个$:以什么结尾^[0-9]+$:以1到多个数字开头,且结尾。——意即:只能有数字,不能有其他字符&&:左边的条件满足,右边的命令才会执行。echo1:屏显1(在屏幕上显示,也叫打印)所以:[[$i=~^[0-9]+$]]&&echo1的意思是:变量i的值是纯数字,就屏显1
5. shell技术
Gnome Shell 是 Gnome 的下一代窗口管理程序
目前,GNOME Shell 仍然处于早期开发阶段。开发 GNOME Shell 所用到的技术包括 Javascript、Clutter、以及 GNOME 平台库。混合窗口管理部分的代码来自 Metacity。由 GNOME Shell 的开发者 Owen Taylor 所提供的 GNOME Shell 截图显示,GNOME Shell 主要由包括活动面板、应用程序、最近文档、托盘图标、系统时间、已登录用户、工作区等在内的几个部分组成。
6. shell中数值数据运算
加双引号就可以了var=1if [ "$var" = "1" ]; thenecho "String match!"elseecho "Not match!"fi这就将数字的比较转化为了字符串的比较。(数字的比较是用 -eq 操作符)
var1="$var" 这样就转化了
7. shell数据分析
* 将IPython这个交互式Shell作为你的首要开发环境。
* 学习NumPy(Numerical Python)的基础和高级知识。
* 从pandas库的数据分析工具开始。
* 利用高性能工具对数据进行加载、清理、转换、合并以及重塑。
* 利用matplotlib创建散点图以及静态或交互式的可视化结果。
* 利用pandas的groupby功能对数据集进行切片、切块和汇总操作。
* 处理各种各样的时间序列数据。
* 通过详细的案例学习如何解决Web分析、社会科学、金融学以及经?济学等领域的问题。
8. shell 操作数据库
若要将大量的数据值插入到数据库的一个或多个表中,使用insert into语句来实现将是一项无聊的工作。
1、LOAD DATA通过读取本地文件系统上的文件,可以将大量数据添加到数据库中。
mysql> LOAD DATA INFILE ‘datafile.txt’ INTO TABLE db2.table_name;
mysql> LOAD DATA INFILE ‘datafile.txt’ INTO TABLE db2.table_name FIELDS TERMINATED BY ‘,’ OPTIONALLY ENCLOSED BY ‘”‘;
mysql> load data infile “file.txt” into table table_name fields terminated by ‘\t’ (sid,name);
2、还有一个mysqlimport命令可以批量增加,mysqlimport直接从文件读取批量数据。它相当于LOAD DATA语句的一个接口。
mysqlimport可以自动生成一个LOAD DATA语句,该语句把filename.txt文件中的数据装入table_name表中。
mysqlimport根据文件名导入表名,即将文件名第一个圆点前的所有字符作为表名。例如,文件class.txt被装入class表中。
例如:
mysqlimport -L -uroot -proot db01 table_name.txt;
mysqlimport -local table_name filename.txt;
3、datafile.txt内容:
“1”,”a string”,”100.20″
“2”,”a string containing a , comma”,”102.20″
“3”,”a string containing a \” quote”,”102.20″
“4”,”a string containing a \”, quote and comma”,”102.20″
4、假如你有x表,导入了一个y表,将y表数据插入x表:
insert into x select * from y;
9. shell 数据结构
sql和shell结构和作用都不相同。sql是用于访问和处理数据库的一种结构化查询语言,用于数据库查询和程序设计,更新和管理关系型数据库操作语言。
shell是一种操作接口,操作系统运行起来之后,会给用户提供一个接口,这个接口就叫做shell,让用户可以通过shell来调用操作系统内部的复杂实现。
10. shell造数据 hadoop
为了避免底层业务变动对上层需求影响过大,屏蔽底层复杂的业务逻辑,尽可能简单、完整的在接口层呈现业务数据,建设高内聚松耦合的数据组织,使数据从业务角度可分割,显得尤为重要。从整个集团业务条线出发,形成数据仓库总体概念框架,并对整个系统所需要的功能模块进行划分,明确各模块技术细节,建设一套完整的开发规范。
分层规范
ODS(原始数据层):也被称为贴源层,ODS层是数据仓库准备区,为DWD层提供基础原始数据。
DWD(明细数据层):和ODS粒度一致的明细数据,对数据进行去重,脏数据过滤,空处理,保证数据质量。
DWS(服务数据层):轻度汇总数据及建宽表(按主题)存放数据。
ADS(应用数据层):存放应用类表数据。
ODS - DWD - DWS - ADS
ODS - DW(轻度数据汇总层、高度数据汇总层) - DM(数据集市)
表规范
命名
维表 命名形式:dim_描述
事实表 命名形式:fact_描述_[AB]
临时表 命名形式:tmp_ 正式表名_ [C自定义序号]
宽表 命名形式:dws_主题_描述_[AB]
备份表 命名形式:正式表名_bak_yyyymmdd
表命名解释:
1)表名使用英文小写字母,单词之间用下划线分开,长度不超过40个字符,命名一般控制在小于等于6级。
2)其中ABC第一位"A"时间粒度:使用"c"代表当前数据,"h"代表小时数据,"d"代表天数据,"w"代表周数据,"m"代表月数据,"q"代表季度数据, "y"代表年数据。
3)其中ABC的第二位"B"表示对象属性,用"t"表示表,用"v"表示视图。
4)其中ABC的第三位"C"自定义序号用于标识多个临时表的跑数顺序。
注释
注释要结合表的英文名,要求注释简洁明了,体现出表的业务出处、主题和用途。
存储格式
所谓的存储格式就是在Hive建表的时候指定的将表中的数据按照什么样子的存储方式,如果指定了方式,那么在向表中插入数据的时候,将会使用该方式向HDFS中添加相应的数据类型。在数仓中建表默认用的都是PARQUET存储格式,相关语句如下所示:
STORED AS INPUTFORMAT
'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat'
OUTPUTFORMAT
'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat'
字符集
Hadoop和hive 都是用utf-8编码的,在建表时可能涉及到中文乱码问题,所以导入的文件的字符编码统一为utf-8格式。
约定
理论上在数仓落地的表不应该出现null未知类型,对于可能出现null的字段,如果为字符型统一为空字符串,如果是数值则给0。
字段规范
命名
1)使用英文小写字母,单词之间用下划线分开,长度不超过30个字符,命名一般控制在小于等于4级;
2)和源数据ods层表字段名一致,如为新增字段,尽量言简意赅;
3)英文名尽量专业,符合业界要求,不得使用汉语拼音;
4)尽量避免使用关键字。如无法避免,使用”`”转义;
5)指标字段能使用缩写的尽量使用统一的缩写,如申请金额统计apply_amt_sum。
注释
注释本着简洁、详实、完整的原则,对于有业务含义的字段,在注释中需要枚举并解释其业务含义,如ods_loan_apidata_order_info.order_status 订单状态:1待支付,2支付不成功,3支付成功;
类型
日期时间等格式统一用string类型,字符串也是用string,数值的话,会根据字段定义来确定,对于有小数点要求的,比如某些金额、利率,需要用到decimal类型,无小数点要求的用浮点类型double和整数类型(int,bigint)。
代码规范
sql编码
1)关键字右对齐,代码注释详尽,查询字段时每行不超过三个字段,缩进时空四格等相关书写规范。
2)明细数据层依赖于ods层,应用数据层依赖于服务数据层,原则上,不允许跨层查询。
3)如果SQL语句连接多表时,应使用表的别名来引用列。
4)WHERE条件中参数与参数值使用的类型应当匹配,避免进行隐式类型转化。
5)在SELECT语句中只获取实际需要的字段。
shell脚本
调度脚本主要是通过跑shell脚本,shell脚本的注意点:
1)命名与所跑的目标表名相同,注释要完善,后缀以.sh结尾。
2)脚本头需要加上分割线、作者、日期、目的、描述等信息。
11. shell脚本造数据
set d = 0;
if [ $3 -eq $1]
then
echo $3
d=$(($1-$2))
fi
echo $d
