已阅读5页,还剩60页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
KETTLE-开源ETL软件安装配置与使用说明 初稿 发布 修订编 撰:肖渺编撰日期:*-*-*保密级别:公开文档版本:1.0【 KETTLE 开源ETL软件 】【安装配置与使用说明】 2015年09月修订记录版本修订者修正日期修正内容审核人审核日期批准人批准日期1.0肖渺2015-09初稿1.1肖渺2015-10增加Hadoop Plugin相关配置对应章节1.2肖渺2015-11增加2.2-2.5章节1.3肖渺2015-12增加2.1.6 MapReduce开发部分章节目 录修订记录21.安装与配置41.1ETL与Kettle概述41.2Kettle的下载与安装61.2.1Windows下安装配置Kettle71.2.2Linux下安装配置Kettle91.2.3Kettle下安装JDBC数据库驱动141.2.4Kettle下配置资源库连接141.2.5Kettle下Hadoop Plugin插件配置152.KETTLE组件介绍与使用182.1Kettle SPOON使用182.1.1组件树介绍182.1.2使用示例1212.1.3使用示例2352.1.4使用Kettle装载数据到HDFS462.1.5使用Kettle装载数据到Hive502.2Kettle PAN的使用602.3Kettle KITECHEN的使用612.4Carte 添加新的ETL执行引擎622.5Encr加密工具641. 安装与配置2015年下半年公司承接了江苏电信电子渠道中心数据分析项目,项目实现计划使用大数据应用与分析相关的开源组件与技术来实现;针对数据的抽取与清理,需要使用ETL工具;针对不同的数据源的数据整合需求,考虑到项目投资与开发成本,项目组初步计划采用开源ETL工具;ETL (Extract,Transformation,Load)工具是构建数据仓库、进行数据整合工作所必须使用的工具。目前市面有多种商业 ETL 工具,如Informatica PowerCenter, IBM Datastage等。目前市场上开源且实用的 ETL 工具比较少,Kettle 就是为数不多的优秀开源 ETL 工具之一。经过比较与分析,选择了Kettle作为本项目使用的ETL工具。1.1 ETL与Kettle概述ETL(Extract、Transform、Load,抽取、转换、装载),它是BI项目中最常见、基础的数据加工行为。构建数据仓库期间,各类业务系统的数据需要经过严格的ETL过程,才能够进入到数据仓库中,进而为后续的数据展现、分析提供支撑。通常,由于企业的各业务系统数据口径不一致,比如不同应用存储性别的方式存在差异性、银行应用中不同币种的统一、零售应用中商品计价方式的统一等,使得BI项目必须实施ETL工作,否则在含糊、不准确的数据上进行各种数据行为是徒劳的、没有意义的。在另外一些场合,企业往往需要对TB级别的数据进行各种数据聚合、粗和精加工。比如,在制作即席报表期间,用户希望这些报表的运行时间越短越好,然而如果报表使用到的数据粒度很细、数据量很大,则要控制好报表的运行时间估计够呛。此时,我们往往需要对数据进行各种层次的聚合操作,比如可以将“日”级别存储的数据预先聚合成按周、月、季度的数据。将来,运行报表的时间将得到有效控制,毕竟RDBMS能够更快速响应客户提交的SQL请求。设计并运行良好的ETL过程可以很好地完成上述任务。Kettle是一款国外开源的ETL工具,纯Java编写,可以在Window、Linux、Unix等不同的操作系统平台上运行,数据抽取高效稳定。Kettle这个ETL工具集,它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述用户想做什么,而不是用户想怎么做。在Kettle ETL解决方案中,主要存在两种ETL工件:转换(Transformation)和作业(Job)。ETL转换,专注于数据加工本身,比如装卸数操作、数据编码转换;ETL作业,专注于流程控制,比如执行若干ETL转换、将加工后的文件借助SSH2传输出去等。通常,ETL作业会包含若干ETL转换,并控制它们的执行,而且作业会以一定周期执行,比如每周二执行、每隔3小时执行等。Kettle家族目前包括4个产品:SPOON、PAN、CARTE、KITCHEN。SPOON 允许你通过图形界面来设计ETL转换过程(Transformation)。PAN 允许你批量运行由Spoon设计的ETL转换 (例如使用一个时间调度器)。Pan是一个后台执行的程序,没有图形界面。CARTE 类似于Pentaho管理控制台,它们都宿主在Jetty Web容器中,但各自承担的使命不同。Carte用于远程执行Kettle ETL转换和作业。KITCHEN 允许你批量使用由Chef设计的任务 (例如使用一个时间调度器)。KITCHEN也是一个后台运行的程序。Kettle基于Eclipse RCP框架开发,针对运行环境只需要GUI图形用户界面和JDK1.6以上的JVM环境支持即可,Kettle程序运行时典型demo显示截图如下:在上面SPOON程序中可以使用图元的形式完成用户自定义的transformation,通过运行transformation完成针对数据的基础转换,Demo如下截图所示:可以从Kettle运行时日志,查看该transformation转换有没有finished、 每个步骤的耗时、速度 、平均每秒多少行、 总共插入了多少记录数等。1.2 Kettle的下载与安装截止到2015年11月,Kettle (Pentaho Data Integration) 软件的最新版本号为v6.0.0. 0-353。新版本的Kettle软件被改名为Pentaho Data Integration (PDI),作为商业开源BI套件Pentaho BIEE中默认的ETL工具,可以在Pentaho官方站点下载其最新的版本。官方网站上Kettle软件的下载链接会重定向到开源下载站点,如下图所示:图1.2 Kettle的下载上述v-353 版本Kettle软件的Download URL下载链接为:/project/pentaho/Data%20Integration/6.0/pdi-ce--353.zipWindows下可以使用通用的http/ftp下载工具下载;Linux下可以使用wget/curl等命令行方式的下载工具下载。 1.2.1 Windows下安装配置Kettle1、 检查JDK 1.7或者以上版本JDK环境已经完成安装。如果没有安装,需要从Oracle 官网下载对应的JDK二进制软件包并完成安装,并配置好JAVA_HOME, CLASSPATH等相关环境变量。2、 将下载完成的v-130版本Kettle软件ZIP包解压缩到Windows下任意目录,例如D:Kettle3、 运行Kettle,在Windows下定位到$KETTLE_HOME/spoon.bat批处理程序,双击运行欢迎界面如下图所示:启动后,Spoon IDE的界面Demo截图如下:1.2.2 Linux下安装配置Kettle1、安装JDK,版本要在1.7及以上,建议安装JDK 1.8.x在Oracle官网上下载JDK二进制安装包,并安装rpm:rpm -ivh jdk-7u2-linux-i586.rpmbin: chmod +x jdk-6u21-linux-i586.bin ./jdk-6u21-linux-i586.bintar:tar zxvf jdk-7u2-linux-i586.tar.gz配置环境变量:# vi /etc/profile编辑加入以下内容#set java JDKJAVA_HOME=/usr/local/jdk1.7.0_21/JRE_HOME=/usr/local/jdk1.7.0_21/jre/PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/binCLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jarexport JAVA_HOMEexport JRE_HOMEexport PATHexport CLASSPATH变更环境变量,检查安装是否成功:# source /etc/profilejava -version2、安装配置Kettle:下载kettle并在服务器上解压赋予sh执行权限chmod +x *.sh运行kitchen.sh./home/kettle/pdi-ce-5.0.1.A-stable/data-integration/kitchen.sh显示图片中的内容即提示Kettle程序在Linux下安装成功。执行spoon.sh,会报如下错误Linux下需要安装图形化界面工具,RHEL/CentOS下需要安装gnome和GTK并启动X11服务:# startx;并在Windows客户端PC上安装连接工具: VNC-5.2.0-Windows.exe; 如果Linux端操作系统发行版为Ubuntu 14.04,可以执行以下步骤使用Windows自带的远程桌面mstsc.exe程序基于RDP协议访问Linux的XWindow的GUI图形界面环境:# sudo apt-get install xrdp# sudo apt-get install vnc4server# sudo apt-get install xubuntu-desktop# echo xfce4-session /.xsession# sudo service xrdp restartWindows 下“运行”输入mstsc-回车-输入Ubuntu主机的IP地址-连接选择sesman-Xvnc-输入用户名和密码-回车 /用户名及密码是linux下的登录用户及密码在Windows 下成功使用VNC 或者XManager程序连接到Linux XWindow的GUI图形环境后,新建Terminal终端窗口并进入kettle的安装路径下 执行:./spoon.sh这时候可能会提示如下错误:这时需要执行 如下命令vi /.kettle/.spoonrc输入以下文字:ShowWelcomePageOnStartup=N保存,同时修改./kettle/.spoonrc文件中的该参数。./kettle/.spoonrc 此文件夹和文件是隐藏的。通过ls -a 可以看到。最后在运行./spoon.sh就可以正常打开kettle的图形界面了。在Linux X11环境下运行Kettle的主程序Spoon的主窗口Main Window界面截图如下:1.2.3 Kettle下安装JDBC数据库驱动Kettle 默认不带 Oracle 驱动,此时在运行时无法使用JDBC连接数据库;这个时候需要下载pdi-ce-stable-JDBC.zip包;解压缩后将jdbc目录下数据库JDBC驱动对应的jar文件拷贝$KETTLE_HOMEdata-integrationlib目录下,问题即可解决。上述Kettle可以使用的稳定版本的JDBC驱动jar包ZIP文件的下载URL地址为:/download/andyhuangxl/54141911.2.4 Kettle下配置资源库连接默认时,Kettle ETL转换和作业直接用文件保存,这显然不适合团队模式开发。如果考虑将这些文件存放到SVN或其它SCM配置工具中,则也是一种选择。或者,Kettle允许用户将ETL转换和作业存储到其它位置,比如RDBMS中。为了用数据库取代文件系统存储ETL转换和作业,用户需要在启动Spoon IDE时创建一新的资源库。在创建资源库前,用户要提供一个RDBMS (常用Oracle或者MySQL)数据库连接用户,比如kettle/kettle。然后,创建好相应的数据库连接(比如kettle),再并给出资源库的名称,比如kettle-repos。最后,用户需要单击下图中给出的“创建或更新”按钮,并完成资源库的创建工作。此时,Spoon会在RDBMS的 kettle/kettle用户中自动创建metadata元数据库表,它们用来存储ETL转换和作业。随后,用户可以以admin/admin帐号登录到kettle-repos资源库中,并启动Spoon IDE,进而完成各种ETL转换和作业的开发工作。下图展示了kettle-repos资源库中持有的数据库表集合:1.2.5 Kettle下Hadoop Plugin插件配置Kettle v4.4以上的版本开始支持以Hadoop为核心的大数据技术,除了支持原生的Apache Hadoop之外,Kettle(PDI)并支持来自多个供应商的不同的Hadoop发行版包括Cloudera,Hortonworks 和MapR。为了支持不同的版本,PDI使用了称之为shim的抽象层来连接不同的Hadoop发行版。Shim是一个库文件用来解析API调用和重定向和处理API调用,或者修改调用参数。定期地,随着厂商发布新版本的Hadoop发行版,Pentaho发布新的shim来实现支持。这些大数据相关的shim由Pentaho的工程师进行测试和验证。用户可以通过访问Pentaho官网Wiki上的URL确认不同的Kettle版本针对不同的Hadoop发行版的shim支持情况,URL为:/display/BAD/Configuring+Pentaho+for+your+Hadoop+Distro+and+Version在Kettle中配置Hadoop Distribution发行版的shim流程如下:1、确认需要连接的Hadoop发行版已被当前使用的Kettle版本所支持了;如果已经支持但下载的PDI-CE-*.zip安装包中没有内置插件,则需要下载,可以参考以下:Install Hadoop Distribution Shim2、如果开发者需要连接的Hadoop发行版 还有没有被Kettle所支持,可以自己填写相应的信息,要求Pentaho官方 开发一个。还有1种情况 就是上面说的Hadoop发行版 已经被Kettle所支持了,并包含内置的插件。3、配置流程3.1如果Kettle软件实例正在运行,则首先停止Kettle实例;3.2 打开Kettle安装的文件夹,定位到 data-integrationpluginspentaho-big-data-plugin路径:3.3 编辑 perties文件3.4 修改配置项active-hadoop-configuration修改为开发者需要连接的Hadoop发行版对应的shim值 (上图的表格里面的shim), 例如cdh50:改之后保存:至此,Kettle中Hadoop插件相关配置工作完成。2. KETTLE组件介绍与使用2.1 Kettle SPOON使用Spoon作为Kettle软件的IDE集成开发环境,提供了资源库的方式来整合所有的工作;1)创建一个新的transformation,点击 保存到本地路径,例如保存到D:etltest下,保存文件名为Trans,kettle默认transformation文件保存后后缀名为ktr;2)创建一个新的job,点击 保存到本地路径,例如保存到D:tltest下,保存文件名为Job,kettle默认job文件保存后后缀名为kjb;2.1.1 组件树介绍 Transformation Transformation的主对象树和核心对象分别如下图: Transformation中的节点介绍如下:Main Tree:菜单列出的是一个transformation中基本的属性,可以通过各个节点来查看。DB连接:显示当前transformation中的数据库连接,每一个transformation的数据库连接都需要单独配置。Steps:一个transformation中应用到的环节列表Hops:一个transformation中应用到的节点连接列表核心对象菜单列出的是transformation中可以调用的环节列表,可以通过鼠标拖动的方式对环节进行添加:Input:输入环节Output:输出环节Lookup:查询环节Transform:转化环节Joins:连接环节Scripting:脚本环节 Job Job的主对象树和核心对象分别如下图 Main Tree菜单列出的是一个Job中基本的属性,可以通过各个节点来查看。DB连接:显示当前Job中的数据库连接,每一个Job的数据库连接都需要单独配置。Job entries/作业项目:一个Job中引用的环节列表核心对象菜单列出的是Job中可以调用的环节列表,可以通过鼠标拖动的方式对环节进行添加。每一个环节可以通过鼠标拖动来将环节添加到主窗口中。并可通过shift+鼠标拖动,实现环节之间的连接。2.1.2 使用示例 建立转换选中列表中的的“数据源”、“表输出”、“插入/更新”,拖拽到右侧工作区。鼠标选中节点键盘按shift键,拖拽即可连线。下图是一个转换,有两个动作,一是直接从数据源表同步数据到目标表,一是检查源表的插入和更新,同步到目标表。黑色线为生效,灰色线为失效,节点和连接可双击进行编辑。可预览数据是否正确。双击编辑表输出动作。操作的数据库名要获取的字段设置如下所示:点击“Enter field mapping/输入字段映射”进行字段选择。选择要用的字段后点确定,注意字段的约束条件。编辑好后点击上面的执行即可。左侧参数暂不说明,执行完成后可以观看下方的日志。双击编辑“插入/更新”动作。然后点击运行。执行前,在源库里加条新纪录。确定作业执行正常后可以保存作业,如保存路径到本地磁盘地址C: etl2.ktr。 建立执行的JOB/作业建立JOB的前提是有可以完整执行的作业,上面步骤定制的作业进行保存。从左侧列表拖拽“START”,“Success”,“转换”,“发送邮件”到工作区并连接,如下图。然后双击“START”动作进行编辑。然后双击编辑“Transformation”活动。转换文件名选择上一步编辑好的.ktr文件双击发送邮件,参数设置如下:编辑完成后直接点击运行即可。运行后查看日志。当任务执行以后可以查看相对应的日志,也可自行配置日志。2.1.3 使用示例2本例是完成读取目录下的.log文件,找出其中包含错误代码的行,并统计个数 新建Transformation本示例所用到的步骤和组件如下图所示:连接图如下所示:a)获取文件名设置如下:其中已选择的文件名称的变量都需要手写输入,可以点击显示文件名和预览记录检查是否配置正确。b)文本文件输入设置如下:文本文件输入选项中选择从上一步骤获取文件名,其中在输入里的字段被当作文件名一栏输入uri,步骤读取的文件名来自填写获取文件名2内容选项卡的设置如下:文件类型选择CSV,分隔符自己定义,格式为mixed,编码方式选择UTF-8字段选项可设置如下:需要手写输入str名称,设置类型为Stringc)获取字符串设置如下:d) 测试脚本设置如下其中可以点击获取变量和测试脚本来测试脚本的正确性点击测试脚本界面如下:脚本代码由JavaScript编写e)聚合记录聚合记录就是将上一步的结果进行聚合,这里的名称字段是点击获取字段获取的,而不是自己输入的,new name一列是制定新名字,可以自己输入填写,f) 文本文件输出文本文件的输出设置如下,其中字段属性的设置名称字段是点击获取字段自动获取的,不是输入的,设置如下g) 运行日志显示如下: 建立JobJob的建立与2.3中方法一样,用到的组件如下所示转换组件设置如下:将上一步保存的*.ktr添加到转换名文件路径中点击运行按钮:生成日志如下所示:2.1.4 使用Kettle装载数据到HDFS概述:Kettle从v4.4以上版本开始支持大数据技术(在JOB和TRANSFORMER面板中均新增了Big Data相关的组件)。以下是使用Kettle访问HDFS的示例。新建一个Kettle JOB对应的.kjb文件 拖一个开始图元再拖一个Hadoop Copy Files图元,如下所示Hadoop Copy Files即是 load数据到HDFS里面。Hadoop Copy Files里面的配置:意思是当前kjb脚本所在路径 对应客户端侧的文件夹是:目标文件输入 hdfs:/ip:hdfs端口/路径填写目标文件/目录之前可以点击browse 按钮 测试如下图 :填好server 和port后 点击connect 如果没有报错 出现红框里面的hdfs:/. 就说明连接成功了(如下图)。注意只要连接成功,说明kettle对hadoop的配置就没有问题。可以运行脚本进行测试:如上图,脚本运行成功。在hadoop home bin下面查看:文件成功load.至此,kettle load文本数据到HDFS成功。可以参考官方文档URL: /display/BAD/Hadoop上图 1 是配置 2 是加载数据到Hadoop 集群 3 是加载数据到HDFS 还有装载数据到Hadoop生态圈的其它组件例如Hive和HBase2.1.5 使用Kettle装载数据到Hive2.1.6 使用Kettle进行hadoop的mapreduce图形化开发环境准备操作系统hadoop版本Apache hadoop 2.6.0测试数据kettle版本kettle版本为5.4.0.在命令行模式下运行时会报缺少/ESAPI.properties和perties的错误,可以在/p/owasp-esapi-java/source/browse/trunk/configuration/esapi/ESAPI.properties和/p/owasp-esapi-java/source/browse/trunk/configuration/esapi/perties下载两个文档,并将两个文件放在data-integration目录下配置kettle对应的hadoop版本plugin选择对应hadoop版本的plugin在data-integrationpluginspentaho-big-data-pluginhadoop-configurations目录下有已经配置好的不同版本的hadoop对应的plugin。本次使用的hadoop版本与hdp22的hadoop版本相同,所以选用hdp2.2的plugin。Note:由于本次使用不涉及到hbase和hive,所以没有关注hdp22目录下的hive和hbase相关的jar包是否与当前hadoop平台hive,hbase依赖jar包匹配Note:如果该目录下所有版本plugin均与你当前hadoop版本不符,有两种办法:1.去下较早或者较新的kettle版本,查看对应目录下是否有需要的版本2.找一个最近接的版本,例如cdh53,复制之后重命名为cdh43,并用cdh43的jar来替换对应不同版本的jar包。使用hadoop的配置文件替换目录中的配置文件修改perties文件配置对应hadoop版本修改目录data-integrationpluginspentaho-big-data-plugin下的perties文件,将active.hadoop.configuration的值改为步骤1中配置的plugin文件夹名Note:到这里,hdfs相关的组建已经可以使用了以下步骤是配置mapreduce的运行环境在hdfs配置kettle中job在mapreduce运行所需环境在hdfs上创建目录/opt/pentaho/mapreduce/在hdfs上创建目录/opt/pentaho/mapreduce/5.4.0在hdfs上创建目录/opt/pentaho/mapreduce/5.4.0/lib在hdfs上创建目录/opt/pentaho/mapreduce/5.4.0/pluginsNote:这里的5.4.0是根据我当前使用kettle版本所确定将data-integrationlib目录下所有jar包上传到/opt/pentaho/mapreduce/5.4.0/lib目录将data-integrationpluginspentaho-big-data-pluginhadoop-configurationshdp22libpmr目录下所有jar包上传到/opt/pentaho/mapreduce/5.4.0/lib目录Note:这里我使用的是hdp22,所有上传的是该目录下的pmr目录的jar包将pentaho-big-data-plugin整个目录上传到hdfs的/opt/pentaho/mapreduce/5.4.0/plugins目录对应实际目录结构为修改perties文件配置kettle运行mapreduce所需环境Note:详细请参考/display/BAD/Pentaho+MapReducejob开发过程整个job实现的是group by的过程,使用mapper将文本中的数据分割排序,reduce执行sum的计算mapper的transformationNote:在实际开发过程中,可先将MapReduce Input替换成实际的文本输入step进行测试预览执行结果Reducer的transformationNote:实际过程中,这个排序记录的step可以省略,mapper在输出的时候就会排序jobNote:官方例子请参考/display/BAD/Using+Pentaho+MapReduce+to+Generate+an+Aggregate+Dataset+in+MapR/display/BAD/Using+Pentaho+MapReduce+to+Parse+Weblog+Data+in+MapR/display/BAD/Unit+Test+Pentaho+MapReduce+TransformationNote:在Hadoop Cluster选项点击new可以创建一个新的hadoop cluter的连接,如图:这里的username和password一般不用填结果演示:输入数据:执行过程在8088上显示如下运行结果Note:本次执行kettle与hadoop master在同一台机器上,不在同一台机器未曾验证2.2 Kettle PAN的使用Pan命令行用来执行ETL转换。至于Kettle ETL转换的位置,Pan并不作假定,比如存储在文件中,或者在资源库中。下面给出了Pan内置的命令行选项:D:data-integrationPan.bat Options: /rep : 资源库名称 /user : 资源库用户名 /pass : 资源库密码 /trans : 要启动的转换名称 /dir : 目录(不要忘了前缀 /) /file : 要启动的文件名(转换所在的 XML 文件) /level : 日志等级 (基本, 详细, 调试, 行级, 错误, 没有) /logfile : 要写入的日志文件 /listdir : 列出资源库里的目录 /listtrans : 列出指定目录下的转换 /listrep : 列出可用资源库 /exprep : 将资源库里的所有对象导出到 XML 文件中 /norep : 不要将日志写到资源库中 /safemode : 安全模式下运行: 有额外的检查 /version : 显示版本,校订和构建日期 /param : Set a named parameter =. For example -param:FOO=bar /listparam : List information concerning the defined named parameters in the specified transformation.下面展示了/file选项的使用,它将触发DistinctCount.ktr转换的执行。D:Pan /file D:data-integrationsamplestransformationsDistinctCount.ktr 如果DistinctCount转换存储在kettle-repos资源库中,则可以借助如下选项集合运行它。Pan /rep kettle-repos /user admin /pass admin /trans DistinctCount 2.3 Kettle KITECHEN的使用Kitchen命令行用来执行ETL转换。至于Kettle ETL作业的位置,Kitchen并不作假定,比如存储在文件中,或者在资源库中。下面给出了Kitchen内置的命令行选项:D:data-integrationKitchen.bat Options: /rep : Repository name /user : Repository username /pass : Repository password /job : The name of the job to launch /dir : The directory (dont forget the leading /) /file : The filename (Job XML) to launch /level : The logging level (Basic, Detailed, Debug, Rowlevel, Error, Nothing) /logfile : The logging file to write to /listdir : List the directories in the repository /listjobs : List the jobs in the specified directory /listrep : List the available repositories /norep : Do not log into the repository /version : show the version, revision and build date /param : Set a named parameter =. For example -param:FOO=bar /listparam : List information concerning the defined parameters in the specified job. /export : Exports all linked resources of the specified job. The argument is the name of a ZIP file. 下面展示了/file选项的使用,它将触发Evaluate result rows.kjb作业的执行。D: Kitchen /file D:data-integrationsamplesjobsevaluate-result-rowsEvaluate result rows.kjb 如果Evalua
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国铁建投资集团有限公司2026届校园招聘备考题库及答案详解(夺冠系列)
- 2026年德阳市财政会计学会招聘备考题库及参考答案详解一套
- 2026年驾驶心理测试题库及答案
- 2026年重庆一国企招聘11人备考题库完整参考答案详解
- 当阳市2026年度“招才兴业”事业单位急需紧缺人才引进公开招聘备考题库·武汉大学站及答案详解(易错题)
- 2025年石湖荡镇镇属集体工作人员第三批招聘备考题库附答案详解
- 长沙市达德中学2026年公开招聘校聘教师备考题库附答案详解
- 2026年苏州市医疗保险研究会人员招聘备考题库及一套参考答案详解
- 2026年POPs环境行为与控制原理研究组科研财务助理招聘备考题库有完整答案详解
- 2026年临高县中等职业技术学校招聘同工同酬教师备考题库及答案详解1套
- DBJ50- T-445-2023建筑边坡工程监测技术标准
- 砂石场生产线承包合同
- 2013年浙大博士录取
- 劳务队管理人员培训
- 足疗店转让合同协议书范文规避风险
- 2020-2021学年北京西城区五年级上册数学期末试卷及答案
- 装修工程分包合同书
- 公路工程建设标准强制性条文
- JTG-T-F20-2015公路路面基层施工技术细则
- AutoCAD 2020中文版从入门到精通(标准版)
- 销售绩效考核制度方案
评论
0/150
提交评论