Bootstrap

大数据采集与预处理

以下有关Interceptor说法中不正确的是(  )

A. 拦截器需要实现org.apache.flume.interceptor.Interceptor接口

B. 拦截器采用了端口模式,多个拦截器可以按指定顺序拦截

C. 一个拦截器返回的事件列表被传递给链中的下一个拦截器

D. 如果要删除所有事件,只需返回一个空列表

A. D
B. B
C. A
D. C

我的答案:A正确答案:B

拦截器采用了责任链模式,多个拦截器可以按指定顺序拦截

下面有关Exec source说法正确的是( )

A. Flume source消耗从类似于web服务器这样的外部源传来的events

B. 外部数据源以一种Flume source能够认识的格式发送 event 给 Flume source

C. Flume source 组件可以处理各种类型、各种格式的日志数据

D. Agent是数据流的基本单元

A. A
B. B
C. C
D. D

我的答案:A,B,C,D正确答案:A,B,C

Flume Event 是数据流的基本单元

在Spooling Directory source中,以下说法中不正确的是(  )

A. 一些情况下,如果发生某些下游故障,事件可能会重复发生
B. 当Flume被重新启动或终止,数据会部分丢失
C. 与Exec源不同,这个源是可靠的,不会丢失数据
D. 允许通过将文件放入磁盘上的文件夹目录来摄取数据

我的答案:C正确答案:B

与Exec源不同,这个源是可靠的,不会丢失数据,即使Flume被重新启动或终止。为了获得这种可靠性,必须将惟一命名的、不可变的文件放入假脱机目录。

以下有关selector说法中不正确的是(  )

A. Channel Selectors,可以让不同的项目日志通过不同的Channel到不同的Sink中去。

B. 官方文档上Channel Selectors有两种类型Replicating Channel Selector和Multiplexing Channel Selector

C. Channel选择器是决定Source接收的一个特定事件写入哪些Channel的组件,并告知Channel处理器,然后由其将事件写入到每个channel。

D. 如果source的配置种没有指定选择器,那么会自动使用Multiplexing Channel Selector

A. A
B. D
C. B
D. C

我的答案:C正确答案:B

如果source的配置种没有指定选择器,那么会自动使用
复制Channel选择器(Replicating Channel Selector)

以下有关HDFS Sink说法中正确的是(  )

A. HDFS Sink把events写进Hadoop分布式文件系统(HDFS)
B. HDFS Sink是从HDFS上读数据
C. 它目前支持创建文本,不支持序列文件,但支持在两种文件类型压缩
D. 根据运行时间、数据大小或事件数量非周期性地滚动文件

我的答案:D正确答案:A

以下有关HDFS Sink说法中正确的是(  )

A. HDFS Sink把events写进Hadoop分布式文件系统(HDFS)

B. 它目前支持创建文本,支持序列文件,但支持在两种文件类型压缩

C. 根据运行时间、数据大小或事件数量周期性地滚动文件

D. 它还按时间戳或事件发生的机器等属性对数据进行桶/分区。

A. C
B. D
C. B
D. A

我的答案:A,B,C,D正确答案:B,D

支持创建文本,也支持序列文件,可以周期性滚动文件。

下列有关File Channel说法中不正确的是(  )

A. File Channel将所有事件写到磁盘
B. File Channel不能被设置非阻塞模式,它总是以阻塞模式运行
C. 在程序关闭或机器宕机的情况下会丢失数据
D. 极大的降低flume的吞吐量,但要频繁的发生磁盘I/O

我的答案:B正确答案:C

程序关闭或机器宕机的情况下并不会造成丢失数据的情况发生

以下有关Interceptor说法中不正确的是(  )

A. 拦截器设置在source和channel之间

B. source接收到后,在写入channel之前,拦截器都可以进行转换或者删除这些事件

C. flume内部默认设置了很多intercept组件,但不支持自定义拦截器

D. 每个拦截器只处理同一个source接收到的事件

A. B
B. C
C. A
D. D

我的答案:B正确答案:B

Flume也支持自定义拦截器

下列有关Multiplexing Channel说法中不正确的是(  )

A. 可以根据Event的Header中的某个或几个字段的值将其映射到指定Channel

B. 一般都单独使用,不与其它搭配使用

C. Multiplexing channely 称作为多路复用通道

D. 一种能按先后顺序接收一系列来自不同信号的接收机通道

A. B
B. A
C. C
D. D

我的答案:B正确答案:A

一般都与 Interceptor 拦截器搭配使用

以下有关Interceptor说法中正确的是(  )

A. 时间戳拦截器,Flume中一个最经常使用的拦截器,该拦截器的作用是将时间戳插入到flume的事件报头中

B. 如果不使用任何拦截器,flume接受到的只有message

C. 主机拦截器插入服务器的ip地址或者主机名,agent将这些内容插入到事件的报头中

D. 正则过滤拦截器,在日志采集的时候,可能有一些数据是我们不需要的,这样添加过滤拦截器,可以过滤掉不需要的日志,也可以根据需要收集满足正则条件的日志

A. C
B. D
C. B
D. A

我的答案:B,C,D,A正确答案:A,B,C,D

以下说法中不正确的是(  )

A. 一个Sink只能有一个Channel

B. 多个Sink可以从同一个Channel获取数据

C. 选定的Sink从Channel中接受事件,并将事件写入到下一阶段或最终目的地

D. 每个Sink组可以包含偶数数量的Sink

A. C
B. D
C. B
D. A

我的答案:D正确答案:B

每个Sink组可以包含任意数量的Sink

下列有关channel说法中不正确的是(  )

A. channel可以理解为一种临时的存储
B. flume内置2种channel选择器,一种是复制,一种是分发,默认情况下是分发的形式
C. Source添加events,Sink移除events
D. 设置选择器的时候,也可以通过optional来进行设置

我的答案:D正确答案:B

默认情况下是复制的形式

以下说法中不正确的是(  )

A. 从Channel收集数据,将数据写到目标源(是下一个Source,也可以是HDFS或者HBase)

B. Sink是完全事务性的,Channel批量删除数据之前,每个Sink用Channel启动一个事务

C. Sink将这些事件批量写入到存储或索引系统、或者被发送到另一个Flume Agent

D. Sink不断地轮询Channel中的事件且批量地移除它们

A. D
B. A
C. B
D. C

我的答案:A正确答案:C

Sink是完全事务性的

以下有关selector说法中不正确的是(  )

A. Selector 默认是复制模式

B. 在复制模式下,当source接收到数据后,会复制多分,分发给每一个avro sink

C. selector.optional 标志通道为可选

D. selector.type replicating 表示分发模式

A. B
B. C
C. A
D. D

我的答案:B正确答案:D

selector.type replicating 表示复制模式

下列有关channel说法中不正确的是(  )

A. Channel是线程安全的,可以同时处理几个Source的写入操作和几个Sink的读取操作

B. Flume自带两种Channel:Memory Channel和File Channel

C. Channels是events在agent上进行的存储库

D. 以上说法均不正确

A. D
B. C
C. A
D. B

我的答案:A正确答案:A

以下有关selector说法中不正确的是(  )

A. 复制Channel选择器,复制每个事件到通过Source的channels参数所指定所有Channels

B. 复制Channel选择器还有一个可选参数optional,该参数是空格分隔的channel名字列表

C. 多路复用channel选择器是一种专门用于动态路由事件的channel选择器,通过选择事件应该写入的channel

D. 自定义channel选择器需要实现channelSelector接口或继承AbstractChannelSelector类

A. C
B. B
C. A
D. D

我的答案:A,B,C,D正确答案:A,B,C,D

下列有关Memory Channel说法中正确的是(  )

A. Memory Channel是内存中的链表

B. 适用在不需要关心数据丢失的情景下使用

C. 不适用于流量较高和由于agent故障而准备丢失数据的流程

D. 以上说法均不正确

A. B
B. D
C. A
D. C

我的答案:B正确答案:A

events存储在配置最大大小的内存队列中。对于流量较高和由于agent故障而准备丢失数据的流程来说,这是一个理想的选择。

下面有关Exec source说法不正确的是( )

A. ExecSource可实时搜集数据

B. 在Flume不运行或Shell命令出错的情况下,数据将会丢失。

C. ExecRunnable是Exec Source主要的实现类,继承了Runnable

D. 如果进程因为某些原因退出,Exce Source也将退出但仍然产生数据

A. B
B. D
C. A
D. C

我的答案:D正确答案:B

进程退出,Exce Source退出并且不会再产生数据

在Thrift source中,以下说法中正确的是(  )

A. Flume的Thrift Source是其实现的众多Source中的一个,Flume已经实现了服务器端

B. 我们可以用任意自己熟悉的语言编写自己的Thrift Source客户端来采集数据,然后发送给Thrift Source服务器端。

C. 定义了一个service类ThriftSourceProtocol,服务器端具体实现ThriftSourceProtocol里面的两个方法,再由客户端调用这些方法把数据传给Thrift Source服务器端。

D. Thrift Source定义一个简单的IDL文件来生成不同语言的代码,服务器端通过共享这个IDL文件来构建来完成通信。

A. C
B. B
C. A
D. D

我的答案:C,B,A,D正确答案:A,B,C

Thrift是Google开发的用于跨语言RPC通信,它拥有功能强大的软件堆栈和代码生成引擎,允许定义一个简单的IDL文件来生成不同语言的代码,服务器端和客户端通过共享这个IDL文件来构建来完成通信。

在NetCat TCP source中,以下说法中正确的是(  )

A. 一种类似netcat的源,它侦听给定端口并将每行文本转换为事件

B. 它打开一个指定的端口并侦听数据

C. 每一行文本都被转换成水槽事件,并通过连接的通道发送。

D. 文本必需属性以粗体显示

A. D
B. B
C. C
D. A

我的答案:A,B,C,D正确答案:A,B,C,D

在flume中,以下说法中不正确的是(  )

A. bin/flume-ng agent 使用ng启动agent
B. -Dflume.root.logger=INFO,console 将日志输入到控制台上
C. tar -zxvf flume /opt/ 解压到指定目录opt中
D. flume-ng version 查看flume版本号

我的答案:B正确答案:C

解压到指定目录opt中:tar -zxvf flume -C /opt/

在下面的flume配置文件中,以下说法中不正确的是(  )

A. source,channel和sink各个组件的名称,其中a1是整个agent的名称。

B. 绑定的地址是localhost,端口号是44444,作用就是传输数据。

C. a1.channels.c1.*=*用来说明channel配置,其结构跟source一样,这里是内存类型,最多存储1000条数据。

D. a1.sources = r1说明a1这个agent用到的source有r1这一个,如果用到了多个的话,需要把所用到的都列举出来,r1可以自己定义。

a1.sources = r1

a1.sinks = k1

a1.channels = c1

a1.sources.r1.type = netcat

a1.sources.r1.bind = localhost

a1.sources.r1.port = 44444

a1.sinks.k1.type = logger

a1.channels.c1.type = memory

a1.channels.c1.capacity = 1000

a1.channels.c1.transactionCapacity = 100

a1.sources.r1.channels = c1

a1.sinks.k1.channel = c1

A. C
B. B
C. A
D. D

我的答案:B正确答案:B

端口号是44444,作用就是监听端口数据。

下列说法正确的是(  )

A. 空操作不做任何处理,一般作为流程的终点。

B. 过滤记录直接从输入行中过滤数据,将结果是TURE或FALSE的行输出到不同的节点。

C. Switch/Case可以对多种值进行相同的选择路径。

D. Switch/Case一定得有个默认的路径,先产生路径连接,再进行目标步骤。

A. B
B. D
C. C
D. A

我的答案:D正确答案:D

过滤记录通过使用一个表达式来过滤数据,Switch/Case先进行目标步骤后,再进行路径连接,当然对于多种类型的值进行不同的选择路径。

下列哪些是常见流程脚本控件(  )

A. JavaScript代码、公式、转换步骤信息统计

B. 中止、检测空流、数据检验

C. 正则表达式、执行SQL脚本、空操作

D. 根据java代码过滤记录、记录注射

A. B
B. C
C. A
D. D

我的答案:B正确答案:B

转换步骤信息统计属于统计,数据检验属于检验,记录注射属于内联。

下列有关JavaScript代码控件说法正确的是(  )

A. javascript脚本就是使用java语言通过代码编程来完成对数据流的操作。

B. 存在两种不同的模式,不兼容和兼容模式。

C. JS中有很多内置函数,可以在编写JS代码时查看。

D. 可以通过在JavaScript代码中定义新的变量来增加新的字段。

A. B
B. C
C. D
D. A

我的答案:A,B,C,D正确答案:A,B,C

javascript脚本就是使用javascript语言通过代码编程来完成对数据流的操作

下列有关脚本说法正确的是(  )

A. 执行shell脚本,可以执行已经写好的shell脚本,且指定shell脚本路径即可

B. 编辑shell脚本可以把前一个步骤的执行结果当作参数传入

C. 执行SQL脚本时,但不可以插入编辑sql脚本

D. 在使用使用javascript脚本,可以进行空值的转换

A. C
B. A
C. D
D. B

我的答案:A,B,C,D正确答案:B,C,D

执行SQL脚本时,也可以插入编辑sql脚本

下列缓慢变化维说法中不正确的是(  )

A在ETL的过程中,要考虑到缓慢变化维度的处理。

B. 常见的缓慢变化维度只有2种情况。

C. 在缓慢变化维度中,历史数据需要修改,也可以保留或者保留新增数据。

D. 新增数据维度成员改变属性也属于缓慢变化维度。

A. B
B. A
C. D
D. C

我的答案:A正确答案:A

缓慢变化维度第一种类型:历史数据需要修改。在这种情况下,我们使用update方法来修改维度表中的数据。缓慢变化维度的第二种类型:历史数据保留,新增数据也要保留。这是,要将原数据更新,将新数据插入,我们使用UPDATE/INSERT。缓慢变化维度第三种类型:新增数据维度成员改变了属性。

下列缓慢变化维说法中不正确的是(  )

A. 修改历史数据,直接在原来维度的基础上进行更新,不会产生新的记录。

B. 保留历史数据和新增数据,修改原有的数据,重新产生一条新的记录,这样就可以追溯所有的历史记录。

C. 新增数据维度成员改变属性,直接在原来维度的基础上进行更新,不会产生新的记录,但是只会记录上一次的历史记录。

D. 某一维度成员新加入了一列,该列的历史数据中不能基于它浏览,而在目前数据和将来数据中可以按照它浏览,那么此时我们需要改变维度表属性,即加入新的字段列。

A. B
B. A
C. C
D. D

我的答案:A正确答案:A

重新产生一条新的记录,可以追溯所有的历史记录,前提是不应该修改原有的数据,从而保留历史数据。

下列缓慢变化维说法中不正确的是(  )

A. 缓慢变化维为维度表里面的数据并非是始终不变的,总会随着时间和关键字发生变化。

B. 维度建模的数据仓库中,数据会发生缓慢变化的维度就叫“缓慢变化维”。

C. 处理维度表的历史变化信息的问题称为处理缓慢变化维的问题。

D. 处理缓慢变化维的控件最常用的就是维度查询/更新控件。

A. D
B. A
C. C
D. B

我的答案:A正确答案:B

缓慢变化维总会随着时间发生变化,和关键字无任何变化关系。

在kettle说法中,以下说法中正确的是(  )

A. Kettle是一款国外开源的ETL工具,纯java编写,可以在Windows、Linux、Unix上运行,数据抽取高效稳定。

B. 在生产场景中,涉及到大量数据的预处理,也可以使用kettle连接Hadoop进行处理。

C. 在jdk安装完成的基础上,完成部署搭建kettle环境。

D. ETL,是英文Extract-Transform-load的缩写,用来描述将数据从来源端经过萃取(extract)、转置(Transform)、加载(load)至目的端的过程。

A. C
B. A
C. D
D. B

我的答案:C,B,D,A正确答案:A,B,C,D

以下属于kettle控件正确的是(  )

A. 映射、脚本控件
B. B.转换、应用控件
C. 拦截、定向控件
D. A.输入、输出控件

我的答案:B,D,A正确答案:A,B,D

拦截、定向控件不属于kettle控件

以下说法中正确的是(  )

A. Kitchen一个数据转换引擎,可执行很多功能,例如从不同的数据源读取、操作和写入数据。

B. Kitchen可以运行利用XML或数据资源库描述的任务。

C. Job一个作业,由不同逻辑功能的entry组件构成,数据从一个entry组件传递到另一个entry组件,并在entry组件中进行相应的处理。

D. Transformation,完成针对数据的基础转换,即一个数据转换过程,是job的组成单元、执行单元。

A. D
B. B
C. C
D. A

我的答案:A正确答案:C

Pan 是一个数据转换引擎,它可以执行很多功能,从不同的数据源读取、操作和写入数据。 Kitchen 是一个可以运行利用
XML或数据资源库描述的任务,通常任务是在规定的时间间隔内用批处理的模式自动运行。
Entry:实体,即job型组件。用来完成特定功能应用,是job的组成单元、执行单元。

以下说法中不正确的是(  )

A. ETL一词教常用在数据仓库,但其对象并不限于数据仓库。

B. ETL过程中的主要环节就是数据抽取、数据转换和加工、数据装载。

C. ETL工具一般会进行一些功能上的扩充,例如工作流、调度引擎、脚本支持、统计信息等。

D. Spoon 是一个图形用户界面,它允许你运行转换或者任务,其中转换是用Kitchen工具来运行,任务是用Pan来运行。

A. B
B. C
C. D
D. A

我的答案:B正确答案:C

转换是用 Pan 工具来运行,任务是用 Kitchen 来运行。

下列有关索引使用遵循原则正确的是(  )

A. 当插入的数据为数据表中的记录数量10%以上时,首先需要删除该表的索引来提高数据的插入效率,当数据全部插入后再建立索引。

B. 避免在索引列上使用函数或计算,在where子句中,如果索引列是函数的一部分,优化器将不使用索引而使用全表扫描。

C. 避免在索引列上使用NOT 和“!=”,索引只能告诉什么存在于表中,而不能告诉什么不存在于表中,当数据库遇到NOT和“!=”时,就会使用索引转而执行全表扫描,造成任务无法结束的情况。

D. 以上说法均正确。

A. D
B. A
C. B
D. C

我的答案:B,C正确答案:B,C

下列说法中不正确的是(  )

A. 插入大量数据的时候尽量保留索引。
B. 尽量使用数据库连接池。
C. 远程数据库用文件+FTP的方式来传数据,文件要压缩。
D. kettle底层是Java,尽量用大一点的内存参数启动kettle。

我的答案:A正确答案:A

在进行大量数据操作时候,大量的索引会造成数据拥挤,任务卡顿延迟。

下列说法中正确的是(  )

A. 性能调优在整个工程中可有可无,无关紧要。

B. 性能调优主要分两个方面,硬件调优和软件调优。

C. 可以直接调整JVM大小进行性能优化。

D. 尽量用kettle的calculate计算步骤,少用数据库本身的sql。

A. C
B. A
C. D
D. B

我的答案:D正确答案:D

性能优化是非常重要的,也是非常有必要的。
修改kettle定时任务中的kitchen与Pan脚本,可以调整JVM的大小,
kettle的calculate计算少用,否则会造成数据拥堵,尽量使用数据库本身的sql。

下列有关增加序列控件描述不正确的是 (  )

A. 可以使用数据库自带的序列提供序列值。

B. 可以使用kettle自带的序列生成器提供序列值。

C. 可以设置起始值、增长根据、最大值。

D. 增加序列也可以在数据中增加需要的常量数据。(和控件没有关系)

A. C
B. A
C. D
D. B

我的答案:A正确答案:C

增加需要的常量可以使用增加常量控件,和增加序列控件没有任何关系。

下列有关剪切字符串控件描述不正确的是 (  )

A. 剪切字符串属于转换控件。

B. 能操作的字段可能是字符类型。

C. 要剪切的字段包括输入流字段、输出流字段、起始位置、结束位置。

D. 可以更改输出流字段名。

A. A
B. B
C. C
D. D

我的答案:B正确答案:B

能操作的字段一定是字符类型

下列有关去重复记录控件描述正确的是 (  )

A. 可根据指定的字段进行排除重复记录

B. 可统计出重复的数量

C. 使用前必须排序

D. 可将重复的记录重定向

A. D
B. C
C. B
D. A

我的答案:A,B,C,D正确答案:A,B,C,D

下列有关增加序列、字段选择控件描述正确的是 (  )

A. 增加序列控件可以使用数据库自带的序列提供序列值

B. 增加序列控件也使用kettle自带的序列生成器提供序列值

C. 字段选择控件用于选择列,重命名列,指定列长度或精度

D. 字段选择控件可以手动增加需要的字段,但不可以更改字段值类型、样式,

A. B
B. A
C. C
D. D

我的答案:A,B,C,D正确答案:A,B,C

字段选择控件可以移除不需要的字段,可以更改字段值类型、样式,可以手动增加需要的字段

下列哪些是常见转换控件(  )

A. 行转列、字段选择、比较表
B. 值映射、增加常量、追加流
C. 拆分字段、排序记录、过滤记录
D. 计算器、字符串操作、增加序列

我的答案:D正确答案:D

追加流、过滤记录都属于流程控件,比较表属于应用控件。

下列Kettle和Pan命令行参数描述不正确的是(  )

A. file指定指定日志的文件名称。
B. listdir列出有效的仓库job/transform路径。
C. norep表示不连接到任何一个repository,避免自动登录很有用。
D. listjobs通过dir参数列出存在于仓库中有效jobs。

我的答案:B正确答案:A

file指定存储了job或者transform的文件,logfile指定日志的文件名称。

下列有关任务调度正确的是(  )

A. 使用Pan命令行工具能够启动kettle任务和转换, 而kitchen命令行工具无法启动。

B. Pan和kettle是环绕数据集成引擎的轻量级封装器。

C. Kitchen和pan是使用java运行任务和转换的。

D. Kettle中有两种方式监控job或者transform的运行情况,它们分别是邮件通知和后台监控。

A. C
B. B
C. A
D. D

我的答案:B正确答案:B

除了Pan命令行工具可以启动kettle任务和转换,kitchen命令行工具同样也可以;Kitchen和pan是shellscripts运行任务和转换的,邮件通知和日志表是两种监控job和transform的方式。

下列有关任务调度不正确的是(  )

A. 对于ETL来说,调度是独一无二的。

B. Windows系统上的任务调度器,能够通过调度kettle命令行程序来运行任务和转换。

C. 调度器构建成Pentalo BI服务器能够被用来运行一系列执行kettle任务和转换工作。

D. 所有主要操作系统提供了构建调度任务的特性,这些任务能被作为系统级别的调度器来调度。

A. B
B. C
C. D
D. A

我的答案:D正确答案:D

操作系统能够提供标准调度的一般性需求,对于ETL来说调度也不是独一无二的。

下列属于数据变换方法的是( )

A. 数据聚集
B. 数据传值
C. 属性构造
D. 数据平滑
数据规范化
数据概化
数据变换方法分类

我的答案:D,A,C正确答案:A,C,D

以下有关数据变换的说法不正确的是(  )

A. 平滑处理就是根据已有属性集构造新的属性,以帮助数据处理过程(噪声
B. 数据泛化处理用更高层次的概念来取代低层次或数据层的数据对象
C. 数据转换就是将数据进行转换或归并,从而构成一个适合数据处理的描述形式
D. 规格化处理将有关属性数据按比例投射到特定的小范围之中

我的答案:D正确答案:A

属性构造处理根据已有属性集构造新的属性,以帮助数据处理过程;

平滑处理就是帮助除去数据中的噪声,主要技术方法有Bin方法、聚类方法和回归方法

以下有关数据变换说法不正确的是(  )

A. 数据概化,清除噪声数据,去除源数据集中的噪声数据和无关数据,处理遗漏数据和清洗脏数据。

B. 数据聚集,对数据进行汇总和聚集。例如可以聚集日门诊量数据,计算月和年门诊数。

C. 数据平滑,使用概念分层,用高层次概念替换低层次“原始”数据。

D. 数据规范化,将属性数据按比例缩放,使之落入一个小的特定区间。

A. C
B. A
C. D
D. B

我的答案:A,B正确答案:A,B

数据平滑,去噪,将连续数据离散化;数据概化,用高层概念替换,减少复杂度。

以下有关数据变换的说法不正确的是(  )

A. 将一种格式的数据转换为另一种格式的数据,主要是对数据进行规格化操作。

B. 主要用于将数据转换成适合数据挖掘的形式,寻找依赖于发现目标的数据的有用特征,以缩减数据规模。

C. 常见的数据变换方法包括平滑处理、合计处理、数据繁华处理、规格化、属性构造等。

D. 可以采用线性或非线性的数学变换方法将多维数据压缩成较少维数的数据,消除它们在时间、空间、属性及精度等特征表现方面的差异。

A. D
B. A
C. C
D. B

我的答案:B正确答案:D

寻找依赖于发现目标的数据的有用特征,以缩减数据规模不属于数据变换,更多的用在数据规约中。

数据清洗的方法不包括( )

A. 噪声数据清除
B. 重复数据记录处理
C. 一致性检查
D. 缺失值处理

我的答案:B正确答案:B

常见数据清洗方法有缺失值处理、噪声数据清除、一致性检查

以下有关数据清洗的说法正确的是(  )

A. 它将这些结构复杂的数据转换为单一的或便于处理的结构,为以后数据分析打下良好的基础

B. 由于所采集的数据里并不是所有的信息都是必需的,而是掺杂了很多噪声和干扰项,因此还需要对这些数据进行“去噪”和“清洗”,以保证数据的质量和可靠性

C. 数据清洗常用的方法是在数据处理的过程中设计一些数据过滤器,通过聚类或关联分析的规则方法将无用或不正确的离群数据挑出来过滤掉,防止其对最终数据结果产生不利影响,然后将这些整理好的数据进行集成和存储

D. 一般的解决方法是将针对特定种类的数据信息分门别类放置,可以有效地减少数据查询和访问的时间,提高数据提取速度

A. D
B. C
C. B
D. A

我的答案:A,B,C,D正确答案:A,B,C,D

以下有关数据清洗的说法不正确的是(  )

A. 数据属性值的不确定性和数据自身的不确定性,前者可用概率描述,后者有多重描述方式

B. 在这个清洗过程中,除了更正、修复系统中的一些不正确数据之外,更多的是对数据进行归并整理,并存储到新的存储介质中

C. 在数据处理过程中会产生的“二次数据”,包括数据噪声、数据重复或不正确的情况

D. 数据清洗是汇聚多个维度、多个来源、多种结构数据之后,对数据进行抽取、转换和集成加载

A. D
B. C
C. B
D. A

我的答案:D正确答案:D

数据自身的不确定性可用概率描述,数据属性值的不确定性有多重描述方式,例如描述属性值的概率密度函数、以方差为代表的统计值等。

下列有关插入/更新和更新控件说法不正确的是(  )

A. 插入/更新和更新控件是两个不同的输入控件。

B. 两者都可以将源表同步过来的数据进行目标表数据更新操作。

C. 一定要有能唯一识别某行数据的主键。

D. 对于插入/更新控件来说,若只需要插入操作,则勾选上“不执行任何更新”提交数量不要设置过大,尽量使用小数量;而更新控件需要更新的字段在“更新字段”中选择,当字段名不同时需要进行映射。

A. D
B. C
C. B
D. A

我的答案:D正确答案:D

插入/更新和更新控件都是输出控件

下列IO控件说法中不正确的是(  )

A. 常见的输入控件有CSV文件、Excel、生成记录、配置文件等。

B. 常见的输出控件有SQL文件、删除、插入/更新、数据同步、获取系统信息等。

C. 生成记录控件主要功能生成一些固定字段的记录,主要用来模拟一些数据进行测试。

D. 自定义常量数据控件用来给查询增加常量列“元数据”页是定义字段相关信息,“数据”页则是赋予各字段相应的值。

A. B
B. A
C. C
D. D

我的答案:C正确答案:A

获取系统信属于输入控件。

下列常用IO控件说法中不正确的是(  )

A. 获取表名控件,主要获取某个数据库的表信息、获取视图信息、获取存储过程信息等。

B. 获取系统信息控件,包括命令行输入的参数,操作系统时间,ip地址,kettle版本等。

C. Excel输入控件在读取excel文件,和csv文件读取不同,增加了表单,表头,出错的处理。

D. 在excel输入控件内容页面选择包不包括头部字段、字段分隔符和编码等,在字段页面可以获取字段名,点击预览即可预览Excel的数据。

A. D
B. B
C. C
D. A

我的答案:C正确答案:C

和csv文件读取类似,Excel输入控件在读取excel文件也增加了表单等处理。

下列有关合并记录和记录集连接控件说法不正确的是(  )

A. 合并记录用于比较两组输入数据,一般用于更新后的数据重新导入到数据仓库中

B. 合并记录中两组数据一组是引用流,一组是比较流,每次比较后行数据都可以被输出到下一步

C. 记录集连接合并两种不同输入流,连接方式有内连,左外连接等

D. 记录集连接记录需要先按关键字进行排序

A. B
B. A
C. C
D. D

我的答案:C正确答案:A

合并记录中两组数据中一组是引用流,一组是比较流,每次比较后只有最新版本的行数据被输出到下一步

下列有关文本文件输入说法正确的是(  )

A. 文本文件输入中,可以对相关数据进行不正确处理,但不能过滤相关数据。
B. 对在字段页面可以获取字段名,点击预览即可预览文本文档的数据
C. 在内容页面选择包不包括头部字段、字段分隔符和编码等
D. 能从某个文本文件中获取需要的数据,也可以从以前的步骤接收文件名,将该选项勾上即可。

我的答案:D,C,B,A正确答案:B,C,D

文本文件输入控件,可以指定相关输入文件,以及对输入文本内容的处理,不正确数据的指定,也可以过滤无用的数据。

下列有关表输入说法正确的是(  )

A. 能从某个数据库中按条件查找某个表的数据。

B. 可以使用变量替换的方式进行查询,将“替换sql语句里的变量”勾选上即可。

C. 可以使用上一步结果中赋予值,请将“从步骤插入数据”选择上一步的名称,在预览时会出现双精度的值显示不正常的问题,可能会影响实际输出值。

D. 测试过程中发现如果上一个步骤设置的变量,在table input里面获取不到,变量设置必须作为一个单独的转换先执行一次,然后才能获取到这个变量。

A. B
B. A
C. D
D. C

我的答案:C正确答案:D

在表输入控件中,在预览数据时出现双精度的值显示不正常的问题,并不会影响实际输出值。

下列json与sql输出控件说法正确的是(  )

A. 在文件以json格式输出时,注意一个数据条目的数据行,我们一般输入数值1。

B. 可以修改json输出控件的文件名、扩展名、编码格式等相关参数。

C. 在sql输出控件中,将输出的sql insert语句保存到文件中。

D. 在sql输出控件中,我们可以增加清空表的语句,自动执行相关SQL脚本。

A. A
B. D
C. C
D. B

我的答案:D,C,B,A正确答案:A,C,D

SQL文件输出,可以指定数据库连接,目标表,对输出文件的指定,及内容日期格式的处理,执行SQL脚本,需要使用使用脚本控件。

以下有关数据集成的说法不正确的是(  )

A. 狭义上讲它是指如何合并规整数据,广义上讲数据的存储、移动、处理等与数据管理有关的活动都称为数据集成

B. 大数据集成不需要将处理过程分布到源数据上进行并行处理,只对结果进行集成

C. 它是把不同来源、不同格式、不同特点性质的数据在逻辑上或物理上有机地集中,从而为企业提供全面的数据共享

D. 大数据集成是基于数据集成技术演化而来的,但其方案和传统的数据集成有着巨大的差别

A. D
B. A
C. C
D. B

我的答案:D正确答案:D

数据集成除了对结果进行集成,在整个数据处理过程中仍需要处理分布到源数据上进行并行处理。

下列关于数据集成说法不正确的是( )

A. 在逻辑上和物理上把来自不同数据源的数据进行集中,为用户提供一个统一的视图

B. 数据集成串行处理将不同类型的数据保存在原地,而处理过程适当地分配给这些数据

C. 没有一个统一的数据预处理过程和单一的技术能够用于多样化的数据集

D. 考虑数据集的特性、需要解决的问题、性能需求和其他因素选择,是我们选择合适的数据预处理方案的有效途径

A. C
B. D
C. A
D. B

我的答案:A正确答案:D

大数据集成是将大量不同类型的数据原封不动地保存在原地,而将处理过程适当地分配给这些数据,这是一个并行处理的过程。

下列数据集成的模式包括( )

A. 数据集(Data Set)
B. 中介者(Mediation)
C. 数据仓库(Data Warehousing)
D. 联邦数据库(Federated Database)

我的答案:C,A正确答案:B,C,D

数据集不属于数据集成模式

以下有关数据集成的说法正确的是(  )

A. 数据集成时应解决的问题包括数据转换、数据的迁移、组织内部的数据移动、从非结构化数据中抽取信息以及将数据处理移动到数据端

B. 数据转换,是数据集成中最复杂和最困难的问题,所要解决的是如何将数据转换为统一的格式。需要注意的是要理解整合前的数据和整合后的数据结构

C. 数据的迁移,即将一个应用的数据迁移到另一个新的应用中。在组织内部,当一个应用被新的应用所替换时,就需要将旧应用中的数据迁移到新的应用中

D. 主数据引用作为元数据标签附加到非结构化数据上,在此基础上就可以实现与其他数据源和其他类型数据的集成

A. A
B. D
C. C
D. B

我的答案:A,B,C,D正确答案:A,B,C,D

以上说法都正确

下列说法不正确的是(  )

A. 数据库查询,是从数据库查询数据,作为新的字段添加到数据中。

B. 合并记录,用于比较两组输入数据,一般用于更新后的数据重新导入到数据仓库中将两组数据经过比较合并输出到数据流中。

C. 排序合并,将数据按某个关键字段进行排序。

D. 排序合并对所有输入流做笛卡儿乘积。

A. A
B. C
C. D
D. B

我的答案:C正确答案:C

对所有输入流做笛卡儿乘积属于记录关联,排序合并无法进行笛卡尔乘积。

下列有关调用DB存储过程正确的是 (  )

A. 返回值只有多个,并且只针对函数。
B. 当调用的过程时,要返回值名称不会被删除。
C. 无法从数据库自动获取字段数据。
D. 执行存储过程并获得返回值。

我的答案:D正确答案:D

调用DB存储过程的返回值只有一个,而且返回值会被删除,连接数据库后,可以点击获取字段按钮,自动从数据库获取需要的字段。

下列哪些是常见数据查询连接控件 (  )

A. Web服务查询、数据库查询、维度查询/更新
B. 检查文件是否已被锁定、调用DB存储过程、延迟行
C. 合并记录、排序合并、记录关联
D. 模糊匹配、流查询、样本行

我的答案:A正确答案:C

维度查询/更新属于数据仓库,样本行属于统计,延迟行属于应用控件

下列有关数据归约不正确的是(  )

A. 它是从数据库或数据仓库中选取并建立使用者感兴趣的数据集合。

B. 可以在数据集合中滤掉一些无关、偏差或重复的数据。

C. 在尽可能改变数据原貌的前提下,最大限度地精简数据量。

D. 数据归约主要有两个途径,属性选择和数据采样,分别针对原始数据集中的属性和记录。

A. C
B. B
C. D
D. A

我的答案:B正确答案:A

最大限度地精简数据量的前提是尽可能保持数据原貌。

下列有关数据归约类型不正确是(  )

A. 特征归约
B. 特征值归约
C. 重组归约
D. 样本归约

我的答案:C正确答案:C

重组归约不属于数据归约

下列说法正确的是(  )

A. 最小的属性集,可以使得数据类的概率分布尽可能接近所有属性的原分布。

B. 字符串压缩 ,通常是无损压缩 ,在解压缩前对字符串的操作非常有限。

C. 概念分层通过收集并用较高层的概念替换较低层的概念来定义数值属性的一个离散化。

D. 维归约不仅会压缩数据集,还会减少出现在发现模式上的属性数目。

A. A
B. B
C. D
D. C

我的答案:A,B,C,D正确答案:A,B,C,D

下列数据归约方法分类说法正确的是(  )

A. 数据规约方法分类包括,维规约,数据压缩,数值规约,离散化和概念分层。

B. 数据压缩常用的方法有小波变换、分箱技术、基于熵的离散化。

C. 维规约通过选择替代的、较小的数据表示形式来减少数据量。

D. 数据压缩分为无损压缩和有损压缩。

A. A
B. C
C. B
D. D

我的答案:A,B,C,D正确答案:A,D

通过选择替代的、较小的数据表示形式来减少数据量是对数值归约的描述,离散化和概念分层常用分箱技术、基于熵的离散化技术等。

下列有关sqoop语句描述正确的是( )

A. delete-target-dir 删除已有的目标文件

B. num-mappers map的数量

C. hive-import 数据导入的Hive表中

D. hive-database hive表

A. C
B. A
C. B
D. D

我的答案:D,C,B,A正确答案:A,B,C

hive-database hive数据库

以下说法中正确的是(  )

A. Sqoop导入数据步骤:收集数据,只提交map作业

B. --connect 数据库用户名

C. --direct 连接mysql的数据库

D. columns中如果涉及到多列,用逗号分隔,分隔时不要添加空格

A. D
B. B
C. C
D. A

我的答案:C正确答案:D

–connect 连接mysql的数据库

–direct 目录地址

columns中如果涉及到多列,用逗号分隔,分隔时不要添加空格

在sqoop说法中,以下说法中不正确的是(  )

A. bin/sqoop import 导入命令

B. --connect jdbc:mysql://mysql:3306/sqoop 连接hadoop的mysql数据库

C. --fields-terminated-by “\t” 指定分割符为"\t"

D. --query ‘select * from user where id<=1 and $CONDITIONS’ 表示使用query对数据进行过滤

A. A
B. B
C. D
D. C

我的答案:B正确答案:B

–connect jdbc:mysql://mysql:3306/sqoop 表示连接mysql的mysql数据库,mysql:3306中的mysql是指主机名

下列描述正确的是( )

A. HBase是一个分布式的、面向列的开源数据库,它是一个适合于非结构化数据存储的数据库

B. HMaster功能,负责存储HBase的实际数据,处理分配给它的Region

C. sqoop1.4.6不支持HBase1.0.1之前的版本的自动创建HBase表的功能

D. 以上说法均正确

A. B
B. D
C. A
D. C

我的答案:B正确答案:C

HMaster功能,监控RegionServer处理RegionServer故障转移等,

sqoop1.4.6支持HBase1.0.1之前的版本的自动创建HBase表的功能

在sqoop语句参数说法中,以下说法中正确的是(  )

A. job用来生成一个sqoop任务,生成后不会立即执行,需要手动执行

B. import-all-tables将RDBMS中的所有表导入到HDFS中,每一个表都对应一个HDFS目录

C. create-hive-table生成与关系数据库表结构对应的hive表结构

D. codegen将关系型数据库中的表映射为一个Java类,在该类中有各列对应的各个字段

A. B
B. A
C. C
D. D

我的答案:C,D正确答案:A,B,C,D

以上说法均正确

下列从Hive到RDBMS说法正确的是( )

A. Mysql中如果表不存在,不会自动创建,自行根据表结构创建

B. Hive 只适合用来做海量离线数据统计分析,也就是数据仓库

C. 如果表中已有部分数据,则导入数据是覆盖

D. 以上说法均正确

A. B
B. C
C. A
D. D

我的答案:C,B正确答案:A,C

数据导入是追加形式

下列关于Flume工作原理描述错误的是( )?

A. Flume只有一个agent角色,且其是由source、channel、sink等组成
B. Flume只能串行,不能汇集
C. Flume是一个分布式、可靠的、高可用的海量日志采集聚合传输的系统
D. Flume中data flow描述了数据从产生、传输、处理并最终写入目标的一条路径

我的答案:A正确答案:B

下列关于Flume体系结构描述错误的是( )?

A. Source从数据发生器接收数据,并将接收的数据以event格式传递给一个或者多个通道channel
B. Sink从channels消费数据(events)并将其传递给目标地
C. Flume逻辑上分为4层:agent、collector、storage、model
D. Channel将从source接收的event格式的数据缓存起来,直到它们被sinks消费掉

我的答案:C正确答案:C

Flume逻辑上分为3层:agent、collector、storage

在sqoop说法中,以下说法中不正确的是(  )

A. Sqoop主要由二个部分组成:Sqoop client、HDFS/HBase/Hive

B. 用户向Sqoop发起命令之后,这个命令会转换为一个基于MapTask的MapReduce作业

C. MapTask访问数据库的元数据信息,通过并行MapTask读取数据库数据,导入Hadoop中

D. 通过基于MapTask的MapReduce作业,实现数据的并发拷贝和传输,大大提高效率

A. C
B. A
C. B
D. D

我的答案:B正确答案:B

主要由三个部分组成:Sqoop client、HDFS/HBase/Hive、Database

下列从Hive到RDBMS说法正确的是( )

A. 如果表中已有部分数据,则导入数据是覆盖
B. Mysql中如果表不存在,任何情况下均不会自动创建
C. Hive只适合用来做海量离线数据统计分析,也就是数据仓库
D. 以上说法均正确

我的答案:C正确答案:C

导入数据时会自动建表

下列描述不正确的是( )

A. HBase是一种Key/Value系统,它运行在HDFS之上(HDFS是分布式文件系统)

B. HBase的数据存储在HDFS中

C. 将各种类型的数据库或者文件导入到HBase,常见方法使用定制的MapReduce Job

D. Put是HBase的API中携带的方法,主要用于数据量较大的情况下数据导入工作

A. B
B. C
C. A
D. D

我的答案:D正确答案:D

Put方法主要用于数据量不大的情况下的数据导入工作

请判断下列语句属于哪种导出方式(  )

A. 列导出

B. 更新已存在数据

C. 批量插入导出

D. 以上说法均不正确

sqoop export \

–connect jdbc:mysql://mysql.example.com/sqoop \

–username sqoop \

–password sqoop \

–table cities \

columns country,city

A. A
B. C
C. B
D. D

我的答案:D正确答案:A

–columns country,city导出列country和city

在sqoop语句参数说法中,以下说法中正确的是(  )

A. sqoop version 打印sqoop版本信息

B. connection-manager在控制台打印出详细信息

C. merge将HDFS中不同目录下面的数据合在一起,并存放在指定的目录中

D. metastore记录sqoop job的元数据信息,如果不启动metastore实例,则默认的元数据存储目录为:~/.sqoop,如果要更改存储目录,可以在配置文件sqoop-site.xml中进行更改

A. A
B. D
C. C
D. B

我的答案:C,D正确答案:A,B,C

connection-manager指定要使用的连接管理类
verbose在控制台打印出详细信息

下列有关HBase描述正确的是( )

A. 创建表:create ‘student’,‘info’

B. 插入数据到表:put ‘student’,‘1001’,‘info:sex’,‘male’

C. 查看表结构:describe ‘student’

D. 清空表数据:truncate ‘student’

A. D
B. B
C. C
D. A

我的答案:C,D,B正确答案:A,B,C,D

以上说法均正确

在sqoop说法中,以下说法中不正确的是(  )

A. 安装Sqoop的前提是已经具备Java和Hadoop的环境

B. Sqoop2比Sqoop1的改进,引入sqoop server,几种化管理connector等,多种访问方式:CLI,Web UI,REST API,引入基于角色的安全机制

C. 拷贝jdbc驱动到sqoop的conf目录下

D. 我们可以通过某一个command来验证sqoop配置是否正确:bin/sqoop help

A. C
B. D
C. A
D. B

我的答案:D正确答案:A

数据导入导出的时候,需要拷贝jdbc驱动到sqoop的lib目录下

下列从RDBMS到Hive说法不正确的是( )

A. 过程分为两步,第一步将数据导入到HDFS,第二步将导入到HDFS的数据迁移到Hive仓库

B. 从RDBMS到Hive用关键字export

C. 执行这个操作之前需要把将hive/lib中的hive-common-2.3.3.jar拷贝到sqoop的lib目录中

D. 从MYSQL到Hive,本质是从MYSQL–》HDFS–》load To Hive

A. D
B. B
C. C
D. A

我的答案:A正确答案:B

从RDBMS到Hive用关键字import

请判断下列语句属于哪种导入方式(  )

A. 指定列导入

B. 查询导入

C. 使用sqoop关键字筛选查询导入

D. 压缩导入

sqoop import \

–connect jdbc:mysql://mysql.example.com/sqoop \

–username sqoop \

–password sqoop \

–table cities

–compress \

–compression-codec org.apache.hadoop.io.compress.BZip2Codec

A. C
B. B
C. D
D. A

我的答案:C正确答案:C

–compression-codec org.apache.hadoop.io.compress.BZip2Codec表示压缩导入方式

请判断下列语句属于哪种导入方式(  )

A. 指定列导入

B. 查询导入

C. 使用sqoop关键字筛选查询导入

D. 压缩导入

bin/sqoop import \

–connect jdbc:mysql://hadoop102:3306/company \

–username root \

–password 000000 \

–target-dir /user/company \

–delete-target-dir \

–num-mappers 1 \

–fields-terminated-by “\t” \

columns id,sex \

–table staff

A. C
B. B
C. A
D. D

我的答案:B正确答案:C

–columns id,sex 表示指定列导入

请判断下列语句属于哪种导出方式(  )

A. 列导出

B. 更新已存在数据

C. 批量插入导出

D. 以上说法均不正确

sqoop export \

–connect jdbc:mysql://mysql.example.com/sqoop \

–username sqoop \

–password sqoop \

–table cities \

–update-key id

A. C
B. D
C. B
D. A

我的答案:C正确答案:C

–update-key id 表示更新id数据

下列有关增加序列控件描述不正确的是 (  )

A. 可以使用数据库自带的序列提供序列值。

B. 可以使用kettle自带的序列生成器提供序列值。

C. 可以设置起始值、增长根据、最大值。

D. 增加序列也可以在数据中增加需要的常量数据。

A. A
B. B
C. D
D. C

我的答案:C正确答案:C

增加需要的常量可以使用增加常量控件,和增加序列控件没有任何关系。

下列说法正确的是(  )

A. 空操作不做任何处理,一般作为流程的终点。

B. 过滤记录直接从输入行中过滤数据,将结果是TURE或FALSE的行输出到不同的节点。

C. Switch/Case可以对多种值进行相同的选择路径。

D. Switch/Case一定得有个默认的路径,先产生路径连接,再进行目标步骤。

A. A
B. D
C. B
D. C

我的答案:A正确答案:A

过滤记录通过使用一个表达式来过滤数据,Switch/Case先进行目标步骤后,再进行路径连接,当然对于多种类型的值进行不同的选择路径。

下列哪些是常见流程脚本控件(  )

A. JavaScript代码、公式、转换步骤信息统计

B. 中止、检测空流、数据检验

C. 正则表达式、执行SQL脚本、空操作

D. 根据java代码过滤记录、记录注射

A. B
B. A
C. D
D. C

我的答案:D正确答案:D

转换步骤信息统计属于统计,数据检验属于检验,记录注射属于内联。

下列有关JavaScript代码控件说法正确的是(  )

A. javascript脚本就是使用java语言通过代码编程来完成对数据流的操作。

B. 存在两种不同的模式,不兼容和兼容模式。

C. JS中有很多内置函数,可以在编写JS代码时查看。

D. 可以通过在JavaScript代码中定义新的变量来增加新的字段。

A. D
B. C
C. B
D. A

我的答案:C,B正确答案:A,B,C

javascript脚本就是使用javascript语言通过代码编程来完成对数据流的操作

下列Kettle和Pan命令行参数描述不正确的是(  )

A. norep表示不连接到任何一个repository,避免自动登录很有用。
B. listdir列出有效的仓库job/transform路径。
C. listjobs通过dir参数列出存在于仓库中有效jobs。
D. file指定指定日志的文件名称。

我的答案:C正确答案:D

file指定存储了job或者transform的文件,logfile指定日志的文件名称。

下列有关剪切字符串控件描述不正确的是 (  )

A. 剪切字符串属于转换控件。

B. 能操作的字段可能是字符类型。

C. 要剪切的字段包括输入流字段、输出流字段、起始位置、结束位置。

D. 可以更改输出流字段名。

A. B
B. C
C. D
D. A

我的答案:C正确答案:A

能操作的字段一定是字符类型

下列有关任务调度正确的是(  )

A. 使用Pan命令行工具能够启动kettle任务和转换, 而kitchen命令行工具无法启动。

B. Pan和kettle是环绕数据集成引擎的轻量级封装器。

C. Kitchen和pan是使用java运行任务和转换的。

D. Kettle中有两种方式监控job或者transform的运行情况,它们分别是邮件通知和后台监控。

A. D
B. A
C. B
D. C

我的答案:D正确答案:C

除了Pan命令行工具可以启动kettle任务和转换,kitchen命令行工具同样也可以;Kitchen和pan是shell scripts运行任务和转换的,邮件通知和日志表是两种监控job和transform的方式。

8.【多选】

下列有关去重复记录控件描述正确的是 (  )

A. 可根据指定的字段进行排除重复记录

B. 可统计出重复的数量

C. 使用前必须排序

D. 可将重复的记录重定向

A. A
B. B
C. D
D. C

我的答案:A,B正确答案:A,B,C,D

以上说法都正确

下列缓慢变化维说法中不正确的是(  )

A在ETL的过程中,要考虑到缓慢变化维度的处理。

B. 常见的缓慢变化维度只有2种情况。

C. 在缓慢变化维度中,历史数据需要修改,也可以保留或者保留新增数据。

D. 新增数据维度成员改变属性也属于缓慢变化维度。

A. D
B. C
C. A
D. B

我的答案:D正确答案:D

缓慢变化维度第一种类型:历史数据需要修改。在这种情况下,我们使用update方法来修改维度表中的数据。缓慢变化维度的第二种类型:历史数据保留,新增数据也要保留。这是,要将原数据更新,将新数据插入,我们使用UPDATE/INSERT。缓慢变化维度第三种类型:新增数据维度成员改变了属性。

下列说法不正确的是(  )

A. 数据库查询,是从数据库查询数据,作为新的字段添加到数据中。

B. 合并记录,用于比较两组输入数据,一般用于更新后的数据重新导入到数据仓库中将两组数据经过比较合并输出到数据流中。

C. 排序合并,将数据按某个关键字段进行排序。

D. 排序合并对所有输入流做笛卡儿乘积。

A. D
B. C
C. B
D. A

我的答案:A正确答案:A

对所有输入流做笛卡儿乘积属于记录关联,排序合并无法进行笛卡尔乘积。

下列有关索引使用遵循原则正确的是(  )

A. 当插入的数据为数据表中的记录数量10%以上时,首先需要删除该表的索引来提高数据的插入效率,当数据全部插入后再建立索引。

B. 避免在索引列上使用函数或计算,在where子句中,如果索引列是函数的一部分,优化器将不使用索引而使用全表扫描。

C. 避免在索引列上使用NOT 和“!=”,索引只能告诉什么存在于表中,而不能告诉什么不存在于表中,当数据库遇到NOT和“!=”时,就会使用索引转而执行全表扫描,造成任务无法结束的情况。

D. 以上说法均正确。

A. C
B. B
C. A
D. D

我的答案:A,B正确答案:B,C

当数据库遇到NOT和“!=”时,不再使用索引转而执行全表扫描。

下列缓慢变化维说法中不正确的是(  )

A. 修改历史数据,直接在原来维度的基础上进行更新,不会产生新的记录。

B. 保留历史数据和新增数据,修改原有的数据,重新产生一条新的记录,这样就可以追溯所有的历史记录。

C. 新增数据维度成员改变属性,直接在原来维度的基础上进行更新,不会产生新的记录,但是只会记录上一次的历史记录。

D. 某一维度成员新加入了一列,该列的历史数据中不能基于它浏览,而在目前数据和将来数据中可以按照它浏览,那么此时我们需要改变维度表属性,即加入新的字段列。

A. A
B. B
C. D
D. C

我的答案:B正确答案:B

重新产生一条新的记录,可以追溯所有的历史记录,前提是不应该修改原有的数据,从而保留历史数据。

下列有关调用DB存储过程正确的是 (  )

A. 执行存储过程并获得返回值。
B. 返回值只有多个,并且只针对函数。
C. 无法从数据库自动获取字段数据。
D. 当调用的过程时,要返回值名称不会被删除。

我的答案:C正确答案:A

调用DB存储过程的返回值只有一个,而且返回值会被删除,连接数据库后,可以点击获取字段按钮,自动从数据库获取需要的字段。

下列有关增加序列、字段选择控件描述正确的是 (  )

A. 增加序列控件可以使用数据库自带的序列提供序列值

B. 增加序列控件也使用kettle自带的序列生成器提供序列值

C. 字段选择控件用于选择列,重命名列,指定列长度或精度

D. 字段选择控件可以手动增加需要的字段,但不可以更改字段值类型、样式,

A. A
B. D
C. B
D. C

我的答案:C,D正确答案:A,C,D

字段选择控件可以移除不需要的字段,可以更改字段值类型、样式,可以手动增加需要的字段

下列有关任务调度不正确的是(  )

A. 对于ETL来说,调度是独一无二的。

B. Windows系统上的任务调度器,能够通过调度kettle命令行程序来运行任务和转换。

C. 调度器构建成Pentalo BI服务器能够被用来运行一系列执行kettle任务和转换工作。

D. 所有主要操作系统提供了构建调度任务的特性,这些任务能被作为系统级别的调度器来调度。

A. B
B. A
C. D
D. C

我的答案:B正确答案:B

操作系统能够提供标准调度的一般性需求,对于ETL来说调度也不是独一无二的。

下列哪些是常见转换控件(  )

A. 拆分字段、排序记录、过滤记录
B. 计算器、字符串操作、增加序列
C. 值映射、增加常量、追加流
D. 行转列、字段选择、比较表

我的答案:B正确答案:B

追加流、过滤记录都属于流程控件,比较表属于应用控件。

下列哪些是常见数据查询连接控件 (  )

A. 模糊匹配、流查询、样本行
B. 合并记录、排序合并、记录关联
C. Web服务查询、数据库查询、维度查询/更新
D. 检查文件是否已被锁定、调用DB存储过程、延迟行

我的答案:C正确答案:B

维度查询/更新属于数据仓库,样本行属于统计,延迟行属于应用控件。

下列有关脚本说法正确的是(  )

A. 执行shell脚本,可以执行已经写好的shell脚本,且指定shell脚本路径即可

B. 编辑shell脚本可以把前一个步骤的执行结果当作参数传入

C. 执行SQL脚本时,但不可以插入编辑sql脚本

D. 在使用使用javascript脚本,可以进行空值的转换

A. A
B. D
C. C
D. B

我的答案:D,C正确答案:A,B,D

执行SQL脚本时,也可以插入编辑sql脚本

下列缓慢变化维说法中不正确的是(  )

A. 缓慢变化维为维度表里面的数据并非是始终不变的,总会随着时间和关键字发生变化。

B. 维度建模的数据仓库中,数据会发生缓慢变化的维度就叫“缓慢变化维”。

C. 处理维度表的历史变化信息的问题称为处理缓慢变化维的问题。

D. 处理缓慢变化维的控件最常用的就是维度查询/更新控件。

A. A
B. D
C. B
D. C

我的答案:C正确答案:A

下列说法中正确的是(  )

A. 性能调优在整个工程中可有可无,无关紧要。

B. 性能调优主要分两个方面,硬件调优和软件调优。

C. 可以直接调整JVM大小进行性能优化。

D. 尽量用kettle的calculate计算步骤,少用数据库本身的sql。

A. D
B. A
C. B
D. C

我的答案:C正确答案:C

在Scrapy的目录下,哪个文件负责存放爬虫的各种配置信息?()

A. pipeline.py
B. item.py
C. spiders 文件夹
D. settings.py

我的答案:D正确答案:D spiders 文件夹存放爬虫文件,settings.py存放爬虫的各种配置信息。

)是Scrapy 非常重要的组件,数据存储几乎都是通过此组件实现的。

A. Item Pipeline
B. Spider
C. Item
D. Pipeline

我的答案:A正确答案:A Item Pipeline组件实现数据的存储。

以下不是Scrapy主要组件的是

A. Scrapy
B. Downloader
C. Tensorflow
D. Scheduler

我的答案:B正确答案:C
Scrapy主要组件:Scrapy,Scheduler,Downloader,Spiders,Pipeline,Downloader
Middlewares,Spider Middlewares,Scheduler Middewares

当爬虫创建好了之后,可以使用”scrapy()”命令运行爬虫。

A. starwar
B. drawl
C. startup
D. crawl

我的答案:D正确答案:D 一般用scrapy crawl命令运行爬虫。

items的主要作用是()

A. 数据爬取
B. 验证数据
C. 存储数据
D. 数据清洗

我的答案:C正确答案:D items:主要是做数据清洗(抓取字段根据需求进行处理)

爬虫抓取网页程序或脚本的三大步骤不包括()

A. 下载网页
B. 根据一定规则自动跳到另外的网页上执行上面两步内容
C. 提取想要的信息
D. 打开网页

我的答案:A正确答案:D 爬虫抓取网页程序或脚本的三大步骤主要是B,C,D选项

Scrapy中使用Xpath获得的结果调用了.extract方法,结果以()形式生成。

A. 元组
B. 字典
C. 列表
D. 集合

我的答案:A正确答案:C Scrapy中使用Xpath获得的结果调用了.extract方法,结果以列表形式生成

Scrapy框架parse方法中的yield关键字的作用描述错误的是() def parse(self, response): item = xxxItem() … yield item

A. yield与return关键字用法相同
B. yield返回的是一个生成器
C. 通过 yield 来发起一个请求,并通过 callback 参数为这个请求添加回调函数,在请求完成之后会将响应作为参数传递给回调函数。
D. crapy框架会根据 yield 返回的实例类型来执行不同的操作,如果是 scrapy.Item 对象,scrapy框架会将这个对象传递给 pipelines.py做进一步处理。

我的答案:B正确答案:A
yield是一个关键字,作用和return差不多,差别在yield返回的是一个生成器。

以下是Scrapy主要组件的是

A. Scheduler
B. Downloader
C. Scrapy
D. Tensorflow

我的答案:C正确答案:A,B,C
Scrapy主要组件:Scrapy,Scheduler,Downloader,Spiders,Pipeline,Downloader
Middlewares,Spider Middlewares,Scheduler Middewares

为了实现基于Redis的结构,Scrapy-Redis需要重写了Scrapy框架的哪些功能()

A. 调度器
B. 去重过滤
C. 请求队列
D. 基于Redis的项目管道(RedisPipeline)

我的答案:C,D正确答案:A,B,C,D
Scrapy-Redis的思路是使用Redis数据库,即将请求队列、指纹集合、爬虫结果数据全部存储于Redis数据库中。

下面不属于Scrapy框架中Item Pipeline组件的常见应用场景的是()

A. 将数据转换成自定义格式
B. 将下载的数据封装成Item
C. 清理数据,验证数据有效性
D. 将数据保存到数据库中

我的答案:C正确答案:B 封装成item是spider组件的工作

爬虫抓取网页程序或脚本的三大步骤是()

A. 下载网页
B. 打开网页
C. 根据一定规则自动跳到另外的网页上执行上面两步内容
D. 提取想要的信息

我的答案:B,C,D正确答案:A,C,D 爬虫抓取网页程序或脚本的三大步骤主要是B,C,D选项
.

在Scrapy框架的Item Pipeline管道中有如下代码(其中item[‘comment’]的值是字符串,比如"nice to meet you"),请根据代码推测其作用可能是() def process_item(self, item, spider): str = item[‘comment’] item[‘comment’] = “”.join(str.spit()) return item

A. 分隔item[‘comment’]值(字符串)中的所有字符
B. 将空格插入到item[‘comment’]值(字符串)每个字符之间
C. 将爬取到的所有item[‘comment’]值进行合并
D. 去除当前item[‘comment’]值(字符串)中的空格

我的答案:D正确答案:D
split() 空格分隔,join合并

当运行爬虫代码后,出现"Forbidden by robots.txt"提示后,说明当前时间段被爬取的网站可以访问。()

A. 正确
B. 错误

我的答案:A正确答案:A

Item Pipeline的作用不包括()

A. 清洗数据
B. 测试数据
C. 存储数据
D. 验证数据

我的答案:C正确答案:B
项目管道,负责处理由蜘蛛从网页中抽取的项目,它的主要任务是清洗、验证和存储数据。

MongoDB在频繁读写方面优于Redis

A. 错误
B. 正确

我的答案:A正确答案:A
MongoDB建议集群部署,更多的考虑到集群方案,Redis更偏重于进程顺序写入,虽然支持集群,也仅限于主-从模式。

在Scrapy-Redis框架中配置redis连接如下,如果采用REDIS_URL进行配置,如何赋值() REDIS_HOST =‘180.117.243.30’ REDIS_PORT = 6379 REDIS_PASSWORD = ‘cathy123’

A. REDIS_URL =‘redis://:180.117.243.30:6379@cathy123’
B. REDIS_URL =‘redis://:[email protected]:6379’
C. REDIS_URL =‘link://:[email protected]:6379’
D. REDIS_URL =‘link://:180.117.243.30:6379@cathy123’

我的答案:B正确答案:B URL的格式为:‘redis://:password@host:port’

Redis 中往集合中添加数据,使用关键字()

A. append
B. add
C. sadd
D. sappend

我的答案:A正确答案:C
Redis 中往集合中添加数据,使用关键字sadd,C选项append为列表添加元素方法。

当需要把Python里面的数据发送给网页时,应先将其转换成()

A. Request
B. Json字符串
C. POST
D. GET

我的答案:B正确答案:B
当需要把Python里面的数据发送给网页时,应先将其转换成Json字符串。

使用了RedisSpider作为爬虫的父类以后,爬虫会直接监控()中的数据,并不读取start_urls 中的数据。

A. Spider
B. Redis
C. MongoDB
D. RedisSpider

我的答案:B正确答案:B
使用了RedisSpider作为爬虫的父类以后,爬虫会直接监控Redis中的数据,并不读取start_urls中的数据。

Item Pipeline常用场景()

A. 将抓取的数据存储到数据库中
B. 验证被抓取的数据
C. 重复性检查
D. 清理HTML数据

我的答案:B,C,D正确答案:A,B,C,D
Item Pipeline常用场景,以下选项都是。

常见的页面数据抽取方式有哪些?

A. xpath
B. re
C. jsonpath
D. beautifulsoup4

我的答案:A,C,D正确答案:A,B,C,D
常见的页面数据抽取方式,以下四种都是。

在Scrapy的目录下,哪个文件负责存放爬虫文件?()

A. settings.py
B. spiders 文件夹
C. item.py
D. pipeline.py

我的答案:C正确答案:B
spiders 文件夹存放爬虫文件,settings.py存放爬虫的各种配置信息。

我们可以自定义Item Pipeline,只需要实现指定的方法,其中必须要实现的一个方法是:()。

A. open_spider(spider)
B. from_crawler(cls, crawler)
C. close_spider(spider)
D. process_item(item, spider)

我的答案:C正确答案:D 其中必须要实现的一个方法是:process_item(item, spider)

内置的 ImagesPipeline 会默认读取 Item 的 image_urls 字段,并认为该字段是一个()形式。

A. 集合
B. 字典
C. 元组
D. 列表

我的答案:C正确答案:D
内置的 ImagesPipeline 会默认读取 Item 的 列表形式的image_urls 字段。

()是Scrapy官方开发的,用来部署、运行和管理Scrapy爬虫的工具。

A. Deploy
B. Scrapyd
C. ScrapyDeploy
D. Scrapy_Deploy

我的答案:C正确答案:B
Scrapyd是Scrapy官方开发的,用来部署、运行和管理Scrapy爬虫的工具

参数headers=(),把请求头添加到Scrapy请求中,使爬虫的请求看起来像是从浏览器发起的。

A. HEADERS
B. BODY
C. HEADER
D. HEAD

我的答案:A正确答案:A
headers=HEADERS,把请求头添加到Scrapy请求中,使爬虫的请求看起来像是从浏览器发起的。

Python中相比于findal1方法,search方法对于从超级大的文本里面只找第1个数据特别有用,可以大大提高程序的运行效率。()

A. 错误
B. 正确

我的答案:B正确答案:B 无

Scrapy中使用Xpath获得的结果调用了.extract方法,结果以()形式生成。

A. 元组
B. 字典
C. 列表
D. 集合

我的答案:C正确答案:C

当需要把Python里面的数据发送给网页时,不能将其将其转换成()

A. GET
B. Json字符串
C. POST
D. Request

我的答案:A,B,C,D正确答案:A,C,D 当需要把Python里面的数据发送给网页时,应先将其转换成Json字符串。

内置的 ImagesPipeline 会默认读取 Item 的 image_urls 字段,该字段不是以下()形式。

A. 元组
B. 列表
C. 集合
D. 字典

我的答案:B,C,D正确答案:A,C,D
.
使用了RedisSpider作为爬虫的父类以后,爬虫会直接监控()中的数据,并不读取start_urls 中的数据。

A. Spider
B. Redis
C. MongoDB
D. RedisSpider

我的答案:B正确答案:B 使用了RedisSpider作为爬虫的父类以后,爬虫会直接监控Redis中的数据,并不读取start_urls 中的数据。

Redis若要进入交互环境,需要打开终端输入()

A. redis
B. redis-cli
C. redis-cmd
D. redis-start

我的答案:C正确答案:B Redis若要进入交互环境需要打开终端输入redis-cli

创建Item需要继承()类。

A. Item
B. scrapy.Text
C. scrapy
D. scrapy.Item

我的答案:A正确答案:D 创建Item需要继承 scrapy.Item 类。

全局命令scrapy startproject的作用是()

A. 运行项目
B. 初始化爬虫文件
C. 创建项目
D. 启动浏览器

我的答案:A正确答案:C scrapy startproject的作用是创建项目。

Redis的集合与Python的集合一样,没有顺序,值不重复

A. 正确
B. 错误

我的答案:B正确答案:A

Item是保存爬取数据的容器,它的使用方法和()类似。

A. 列表
B. 矩阵
C. 字典
D. 元组

我的答案:A正确答案:C

items的主要作用是()

A. 数据爬取
B. 验证数据
C. 存储数据
D. 数据清洗

我的答案:C正确答案:D items:主要是做数据清洗(抓取字段根据需求进行处理)

Redis的集合与Python的集合一样,没有顺序,值不重复

A. 正确
B. 错误

我的答案:B正确答案:A

;