知方号

知方号

报表开发工程师面试准备

报表开发工程师面试准备

现在也没搞明白报表开发工程师是做什么的,明天上午就要面试了,先按照职位描述的内容进行复习。

了解hadoop

hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。 Hadoop的框架最核心的框架设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,MapReduce为海量数据提供了计算。

HDFS

HDFS采用master/slave架构。一个HDFS集群是由一个Namenode和一定数目的Datanodes组成。Namenode是一个中心服务器,负责管理文件系统的名字空间(namespace)以及客户端对文件的访问。集群中的Datanode一般是一个节点一个,负责管理它所在节点上的存储。HDFS暴露了文件系统的名字空间,用户能够以文件的形式在上面存储数据。从内部看,一个文件其实被分成一个或多个数据块,这些块存储在一组Datanode上。Namenode执行文件系统的名字空间操作,比如打开、关闭、重命名文件或目录。它也负责确定数据块到具体Datanode节点的映射。**Datanode负责处理文件系统客户端的读写请求。**在Namenode的统一调度下进行数据块的创建、删除和复制。 Namenode和Datanode被设计成可以在普通的商用机器上运行。这些机器一般运行着GNU/Linux操作系统(OS)。HDFS采用Java语言开发,因此任何支持Java的机器都可以部署Namenode或Datanode。由于采用了可移植性极强的Java语言,使得HDFS可以部署到多种类型的机器上。一个典型的部署场景是一台机器上只运行一个Namenode实例,而集群中的其它机器分别运行一个Datanode实例。这种架构并不排斥在一台机器上运行多个Datanode,只不过这样的情况比较少见。

集群中单一Namenode的结构大大简化了系统的架构。Namenode是所有HDFS元数据的仲裁者和管理者,这样,用户数据永远不会流过Namenode。

MapReduce

由一台机器作为Master,其他机器作为Slave,因为这些计算单元同时工作,所以也就出现了“集群”的概念。Master作为任务调度者,给多个Slave分配计算任务(Map),最后由Master汇集结果(Reduce),这其实也MapReduce思想所在。

了解hive

hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReuduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。 Hive是建立在 Hadoop 上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种可以存储、查询和分析存储在 Hadoop 中的大规模数据的机制。Hive 定义了简单的类 SQL 查询语言,称为 HQL,它允许熟悉 SQL 的用户查询数据。同时,这个语言也允许熟悉 MapReduce 开发者的开发自定义的 mapper 和 reducer 来处理内建的 mapper 和 reducer 无法完成的复杂的分析工作。

熟练掌握SQL

学习的时候,sql就学得很浅薄,不知道这次面试能不能通过了,只能尽力复习。对于数据报表开发来说,存储过程很重要,首先简单复习一下数据库的存储过程。 对于存储过程的复习主要参照这篇文章。 存储过程(procedure) 是一组为了完成特定功能的SQL语句集合,经编译后存储在数据库中,用户通过指定存储过程的名称并给出参数来执行。 存储过程可以包括逻辑控制语句和数据操纵语句,它可以接受参数、输出参数、返回单个或多个结果集以及返回值。 由于存储过程在创建时就在服务器上进行了编译并存储在数据库中,所以存储过程运行要比单个的SQL语句块要快。在调用时只需要提供存储过程名和必要的参数名。 创建一个存储过程的例子。 我们需要CREATE PROCEDURE语句创建一个存储过程,接着补充存储过程的代码,如果存储过程接受参数,需要被包括在名称后。

```sqlcreate PROCEDURE myStoredProcedure AS#或者create PROCEDURE myStoredProcedure @{Parameter Name} {data type} AS

一个更加详细的例子(真心觉得一些简单的例子是快速上手的捷径,对简单的例子进行模仿即能快速实现突破)。

```sqlcreate PROCEDURE LatestTasks @Count int ASSET ROWCOUNT @CountSELECT TaskName AS LastestTasks, DateCreatedFROM TaskORDER BY DateCreated DESC

上面已经建立好存储过程,如何执行它呢?可以执行或者调用EXEC,如果存储过程要求提供参数,将参数放在程序名的后面。

```sqlEXECUTE LatestTasksEXEC LatestTasksEXEC LatestTasks @Count = 5

修改存储过程的例子。 如果需要修改现有的存储过程,只需要换掉CREATE,使用ALTER。

```sqlALTER PROCEDURE LatestTasks @Count int ASSET ROWCOUNT @CountSELECT TaskName AS "Lastest Tasks", Description,DateCreatedFROM TasksORDER BY DateCreated DESC

SQL Server 系统存储过程 SQL Server包含了大量的系统存储过程,以帮助数据库管理任务。通过GUI执行的任务可以通过系统存储过程来完成。

配置安全账户建立

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。