版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
尚硅谷大數(shù)據(jù)項目之電商數(shù)倉(即席查詢)
第1章Presto
1.1Presto簡介
1.1.1Presto概念
夕Presto概念@尚硅谷
Presto是一個開源的分布式SQL查詢引擎,數(shù)據(jù)量支持GB到PB字節(jié),主要用
來處理秒級查詢的場景。
注意:雖然Presto可以解析SQL,但它不是一個標(biāo)準(zhǔn)的數(shù)據(jù)庫。不是MySQL、
Oracle的代替品,也不能用來處理在線事務(wù)(OLTP)?
1.1.2Presto架構(gòu)
&Presto架構(gòu)。尚硅谷
Presto由一個Coordinalor和多個Workei?組成。
4)Calolog表示數(shù)據(jù)源。一個Calelog包含Schema和Connector
HiveMetastore
1)由客戶端提交查詢,
從Pre*。命令行CLI提交到
Coordinator;.
PrestoCLI>PrestoCoordinator
2)Coordinaior解析查詢計
劃,然用把任務(wù)分發(fā)給
Worker執(zhí)行,
7)Coordinator是負(fù)方從Worker獲
取結(jié)果并返回最終結(jié)果給Client
Connect^臂配器,6)Schema類似J;
用,Presio和數(shù)據(jù)嗎My河中數(shù)據(jù)庫,Table
徵贏就B類似「MySQL中表
1.1.3Presto優(yōu)缺點
沙Presto優(yōu)缺點。商硅谷
MapReducePresto1)優(yōu)點
Allstagesarepipe-lined
(1)Preslo基于內(nèi)存運(yùn)算,減少了硬盤IO,計算更快。
reduce■reduce/Nowaittime
/Nofault-tolerance
Waitbetween(2)能夠連接多個數(shù)據(jù)源,路數(shù)據(jù)源連表查,如從
fstages
Hive杳詢大量網(wǎng)站訪問記錄,然后從Mysql中匹配出設(shè)備
memory-to-memofy信息。
datatransfer
reduce■reduce
?Nodisk10
Writedata/Datochunkmint
todiskfitinmemory
2)缺點
Presto能夠處理PB級別的海量數(shù)據(jù)分析,但Presio并不是
把PB級數(shù)據(jù)都放在內(nèi)存中計算的。而是根據(jù)場景,如Couni,
AVG等聚合運(yùn)算,是邊讀數(shù)據(jù)邊計算,再濟(jì)內(nèi)存:,再讀數(shù)據(jù)
再計算,這種耗的內(nèi)存并不高。但是連表查,就可能產(chǎn)生.大
量的臨時數(shù)據(jù),因此速度會變慢,反而Hive此時會更擅長。
1.1.4Presto、Impala性能比較
s:/u012551524/article/details〃9124532
測試結(jié)論:Impala性能稍領(lǐng)先于Presto,但是Presto在數(shù)據(jù)源支持上非常豐富,包
括Hive、圖數(shù)據(jù)庫、傳統(tǒng)關(guān)系型數(shù)據(jù)庫、Redis等。
1.2Presto安裝
1.2.1PrestoServer安裝
o)官網(wǎng)地址
s:prestodb.github.io/
1)下載地址
s:/maven2/com/facebook/presto/presto-server/0.196/presto
-server-0.196.tar.gz
2)將presto-server-0.196.tar.gz導(dǎo)入hadoopl02的/opt/software目錄下,并解壓到
/opt/module目錄
[atguiguhadoopl02software]$tar-zxvfpresto-server-0.196.tar.gz-C
/opt/module/
3)修改名稱為presto
[atguiguhadoopl02module]$mvpresto-server-0.196/presto
4)進(jìn)入到/opt/module/presto目錄,并創(chuàng)建存儲數(shù)據(jù)文件夾
[atguiguhadoopl02presto]$mkdirdata
5)進(jìn)入到/opt/module/presto目錄,并創(chuàng)建存儲配置文件文件夾
[atguiguhadoopl02presto]$mkdiretc
6)配置在/opt/module/presto/etc目錄下添加jvm.config配置文件
[atguiguhadoopl02etc]$vimjvm.config
添加如下內(nèi)容
-server
-Xmxl6G
-XX:+UseGlGC
-XX:GlHeapRegionSize=32M
-XX:+UseGCOverheadLimit
-XX:+ExplicitGCInvokesConcurrent
-XX:+HeapDumpOnOutOfMemoryError
-XX:+ExitOnOutOfMemoryError
7)Presto可以支持多個數(shù)據(jù)源,在Presto里面叫catalog,這里我們配置支持Hive的數(shù)
據(jù)源,配置一個Hive的catalog
[atguiguhadoopl02etc]$mkdircatalog
[atguiguhadoopl02catalog]$vimperties
添加如下內(nèi)容
=hive-hadoop2
hive.metastore.uri=thrift:hadoopl02:9083
8)將hadoopl02上的presto分發(fā)至UhadooplOS.hadoopl04
[atguiguhadoopl02module]$xsyncpresto
分發(fā)之后,分別進(jìn)入三臺主機(jī)的
9)hadoopl02xhadoopl03,hadoopl04
/opt/moduIe/presto/etc的路徑。配置node屬性,nodeid每個節(jié)點都不一樣。
[atguiguhadoopl02etc]$vimperties
node.environment=production
node.id
node.data-dir=/opt/module/presto/data
[atguiguhadoopl03etc]$vimperties
node.environment=production
node.idtffffffff-ffff-ffff-ffff-fffffffffffe
node.data-dir=/opt/module/presto/data
[atguiguhadoopl04etc]$vimperties
node.environment=production
nodeJd
node.data-dir=/opt/module/presto/data
10)Presto是由一個coordinator節(jié)點和多個worker節(jié)點組成。在hadoopl02上配置
成在上配置為
coordinator,hadoopl03xhadoopl04workero
(1)hadoopl02上配置coordinator節(jié)點
[atguiguhadoopl02etc]$vimperties
添加內(nèi)容如下
coordinator=true
node-scheduler.include-coordinator=false
-server..port=8881
query.max-memory=50GB
discovery-server.enabled=true
discovery.uri=:hadoopl02:8881
上配置節(jié)點
(2)hadoopl03xhadoopl04worker
[atguiguhadoopl03etc]$vimperties
添加內(nèi)容如下
coordinator=false
-server..port=8881
query.max-memory=50GB
discovery.uri=:hadoopl02:8881
[atguiguhadoopl04etc]$vimperties
添加內(nèi)容如下
coordinator=false
-server..port=8881
query.max-memory=50GB
discovery.uri=:hadoopl02:8881
11)在hadoopl02的/opt/module/hive目錄下,啟動HiveMetastore,用atguigu角
色
[atguiguhadoopl02hive]$
nohupbin/hive—servicemetastore>/dev/null2>&1&
分別在上啟動
12)hadoopl02.hadoopl03xhadoopl04PrestoServer
(1)前臺啟動Presto,控制臺顯示日志
[atguiguhadoopl02presto]$bin/launcherrun
[atguiguhadoopl03presto]$bin/launcherrun
[atguiguhadoopl04presto]$bin/launcherrun
(2)后臺啟動Presto
[atguiguhadoopl02presto]$bin/launcherstart
[atguiguhadoopl03presto]$bin/launcherstart
[atguiguhadoopl04presto]$bin/launcherstart
13)日志查看路彳2/opt/module/presto/data/var/log
1.2.2Presto命令行Client安裝
1)下載Presto的客戶端
s:repol?m〉ven?org/maven2/com/facebook/presto/picsto?cli/0.196/presto?cli?
0.196-executable.ja「
2)將presto-cli-0.196-executable.jar上傳至(Jhadoopl02的/opt/module/presto文件
夾下
3)修改文彳特稱
[atguiguhadoopl02presto]$mvpresto-cli-0.196-executable.jarprestocli
4)增加執(zhí)行權(quán)限
[atguiguhadoopl02presto]$chmod+xprestocli
5)啟動prestocli
[atguiguhadoopl02presto]$./prestocli-serverhadoopl02:8881—catalog
hive-schemadefault
6)Presto命令行操作
Presto的命令行操作,相當(dāng)于Hive命令行操作。每個表必須要加上schema。
例如:
select*fromschema.tablelimit100
1.2.3Presto可視化Client安裝
1)將yanagishima-18.0.zip上傳至!Jhadoopl02的/opt/module目錄
2)解壓縮yanagishima
[atguiguhadoopl02module]$unzipyanagishima-18.0.zip
cdyanagishima-18.0
3)進(jìn)入至U/opt/module/yanagishima-18.0/conf文彳牛夾,編寫perties
配置
[atguiguhadoopl02conf]$vimperties
添加如下內(nèi)容
jetty,port=7080
presto.datasources=atguigu-presto
presto.coordinator.server.atguigu-presto=:hadoopl02:8881
catalog.atguigu-presto=hive
schema.atguigu-presto=default
sql.query.engines=presto
4)在/opt/module/yanagishima-18.0路徑下啟動yanagishima
[atguiguhadoopl02yanagishima-18.0]$
nohupbin/yanagishima-start.sh>y.log2>&1&
5)啟動web頁面
:hadoopl02:7080
看到界面,進(jìn)行查詢了。
6)查看表結(jié)構(gòu)
tltM?fE
SchemaTatoleOColumn;ExtraComment
defauhdm.version.alocauonnewsjd
dw.weMherm?d.d?Hy.ne?.dt
infomwtion.KbeniamW_newj_hist<xy_di
mW_usef.hUtory_dt
MW
ocfe.ad.dt
toul.dtsptay
odi_tMdtg<ound.dt
toul.ctck
odt.basedau.dt
partitionkey
ods.dlsplay.dl
od$.loadlnt.dt
ods.newsdeutlpro.dt
fxpandColumnsMLECT,FROM...WHEUat--29190222■LIMITxeeSet?Run
這里有個TreeView,可以查看所有表的結(jié)構(gòu),包括Schema、表、字段等。
比如執(zhí)行select*fromhive.dw_weather.tmp_news_clicklimit10這個句子里Hive
這個詞可以刪掉,是上面配置的Catalog
select,fromhive.dw_weather.mid_daily_news_dtlimit10
品Treeview
?B?euUe?view
Schema:)TableColumnType
defaultdm_version_allocationvarchar
dw.weathermld.daily_news.dtvarchar
lnformatlon_schemamid_news_hl$tory_dtvarchar
testmld_user_history_dt
varchar
ods.ad.dt
integer
ods_background_dt
Integer
ods.basedata.dt
varchar
ods.display.dt
ods_loadlng_dt
ods_newsdetailpro_dt
每個表后面都有個復(fù)制鍵,點一下會復(fù)制完整的表名,然后再上面框里面輸入sql語句,
Ctrl+enter鍵執(zhí)行顯示結(jié)果
20190223_122817.00012_54w6c12019/02/2320:28:258,03278105'-Pl
newsidlangversion_nameareauserjd
1n4260en127MXu2868
2n0010en13.3MXu6515
n6759Pl1.0.7MXU9947
4n8048en125MXu5196
n3795en13.5MXU5296
6n3021en13.0MXU8066
7n7023en13.8MXU8958
8n7696en122MXU5696
9n9067Pt1.1.2MXU0179
10n6068en12.6MX□3771
13Presto優(yōu)化之?dāng)?shù)據(jù)存儲
13.1合理設(shè)置分區(qū)
與Hive類似,Presto會根據(jù)元數(shù)據(jù)信息讀取分區(qū)數(shù)據(jù),合理的分區(qū)能減少Presto數(shù)
據(jù)讀取量,提升查詢性能。
13.2使用列式存儲
Presto對ORC文件讀取做了特定優(yōu)化,因此在Hive中創(chuàng)建Presto使用的表時,建議
采用ORC格式存儲。相對于Parquet,Presto對ORC支持更好。
13.3使用壓縮
數(shù)據(jù)壓縮可以減少節(jié)點間數(shù)據(jù)傳輸對I。帶寬壓力,對于即席查詢需要快速解壓,建議
采用Snappy壓縮。
1.4Presto優(yōu)化之直詢SQL
1.4.1只選擇使用的字段
由于采用列式存儲,選擇需要的字段可加快字段的讀取、減少數(shù)據(jù)量。避免采用*讀取
所有字段。
[GOOD]:SELECTtime,user;hostFROMtbl
[BAD]:SELECT*FROMtbl
1.4.2過濾條件必須加上分區(qū)字段
對于有分區(qū)的表,where語句中優(yōu)先使用分區(qū)字段進(jìn)行過濾。acct_day是分區(qū)字段,
visit_time是具體訪問時間。
[GOOD]:SELECTtime,user,hostFROMtblwhereacct_day=20171101
[BAD]:SELECT*FROMtblwherevisit_time=20171101
1.4.3GroupBy語句優(yōu)化
合理安排Groupby語句中字段順序?qū)π阅苡幸欢ㄌ嵘?。將GroupBy語句中字段按照
每個字段distinct數(shù)據(jù)多少進(jìn)行降序排列。
[GOOD]:SELECTGROUPBYuid,gender
[BAD]:SELECTGROUPBYgender,uid
1.4.4Orderby時使用Limit
Orderby需要掃描數(shù)據(jù)到單個worker節(jié)點進(jìn)行排序?qū)е聠蝹€worker需要大量內(nèi)存。
如果是查詢TopN或者BottomN,使用limit可減少排序計算和內(nèi)存壓力。
[GOOD]:SELECT*FROMtblORDERBYtimeLIMIT100
[BAD]:SELECT*FROMtblORDERBYtime
1.4.5使用Join語句時將大表放在左邊
Presto中join的默認(rèn)算法是broadcastjoin,即將join左邊的表分割到多個worker,
然后將join右邊的表數(shù)據(jù)整個復(fù)制T分發(fā)送到每個worker進(jìn)行計算。如果右邊的表數(shù)據(jù)
量太大,則可能會報內(nèi)存溢出錯誤。
[GOOD]SELECT...FROMlarge_tableIjoinsmall_tablesonLid=s.id
[BAD]SELECT...FROMsmall_tablesjoinlarge_tableIonLid=s.id
1.5注意事項
1.5.1字段名引用
避免和關(guān)鍵字沖突:MySQL對字段加反引號'、Presto對字段加雙引號分割
當(dāng)然,如果字段名稱不是關(guān)鍵字,可以不加這個雙引號。
1.5.2時間函數(shù)
對于Timestamp,需要進(jìn)行比較的時候,需要添加Timestamp關(guān)鍵字,而MySQL
中對Timestamp可以直接進(jìn)行比較。
/*MySQL的寫法*/
SELECTtFROMaWHEREt>,2017-01-0100:00:00,;
/*Presto中的寫法*/
SELECTtFROMaWHEREt>timestamp'2017-01-0100:00:00,;
1.5.3不支持INSERTOVERWRITE語法
中不支持語法,只能先然后
Prestoinsertoverwritedelete,insertintoe
1.5.4PARQUET格式
Presto目前支持Parquet格式,支持查詢,但不支持insert,
第2章Druid
2.1Druid簡介
2.1.1Druid概念
夕Druid簡介◎商硅谷
Druid是一個快速的列式分布式的支持實時分析的數(shù)據(jù)存儲系統(tǒng)。它在處理PB
級數(shù)據(jù)、毫秒級查詢、數(shù)據(jù)實時處理方面,比傳統(tǒng)的OLAP系統(tǒng)有了顯著的性能
改進(jìn)。
Druid的官方網(wǎng)站是http:〃druid.io。
注意:阿里巴巴也曾創(chuàng)建過一個開源項目叫作Druid(簡稱阿里Druid),它是
一個數(shù)據(jù)庫連接池的項目。阿里Druid和本文討論的Druid沒有任何關(guān)系,它們解
決完全不同的問題。
2.1.2Druid特點
§Druid特點◎尚硅谷
1)列式存儲格式。Druid使用面向列的存儲,它只需要加載特定查詢所需要的列。查詢速度迅速快。
2)可擴(kuò)展的分布式系統(tǒng)。Druid通常部署在數(shù)十到數(shù)百臺服務(wù)器的集群中,并且提供數(shù)百萬條/秒的攝
取率,保留數(shù)百萬條記錄,以及亞秒級到幾秒鐘的查詢延遲。
3)大規(guī)模的并行處理.Druid可以在整個集群中進(jìn)行大規(guī)模的并行查詢。
4)實時或批量攝取cDruid可以實時攝取數(shù)據(jù)(實時獲取的數(shù)據(jù)可立即用于查詢)或
批量處理數(shù)據(jù)。
5)自愈,自平衡,易操作。集群擴(kuò)展和縮小,只需添加或刪除服務(wù)器,集群將在后臺自動重新平衡,
無需任何停機(jī)時間。
6)數(shù)據(jù)進(jìn)行了有效的預(yù)聚合或預(yù)計算,查詢速度快。
7)數(shù)據(jù)的結(jié)果應(yīng)用了Bitmap壓縮算法。
2.1.3Druid應(yīng)用場景
〈夕Druid應(yīng)用場景@商硅谷
1)適用于清洗好的記錄實時錄入,但不需要更新操作
2)適用于支持寬表,不用Join的方式(換句話說就是一張單表)
3)適用于可以總結(jié)出基礎(chǔ)的統(tǒng)計指標(biāo),用一個字段表示
4)適用于實時性要求高的場景
5)適用于對數(shù)據(jù)質(zhì)量的敏感度不高的場景
2.1.4Druid對比Impala/Presto/Spark
SQL/Kylin/Elasticsearch
夕Druid對比Impala/Presto/SparkSQL/Kylin/Elasticsearch◎尚硅蒼
1Druid1KvlinIES4)SparkSQL:基于Spark平臺上的一個OLAP框架,
YYNNNN
基本思路是增加機(jī)器來并行il?算,從而提高查詢速
YYYYYY
度。
N(開發(fā)中)YYYYN
離線YYYYYY
實時YN(開發(fā)中)NNNY
NYYYYN5)ES:最大的特點是使用了倒排索引解決索引問題。
NYYYYN根據(jù)研究,ES在數(shù)據(jù)獲取和聚集用的資源比在Druid
IJDBCforBlNYYYYN
1)Druid:是?個實時處理時序數(shù)據(jù)的OLAP數(shù)據(jù)庫,因為它的索引首先按照6)框架選型:
時間分片,查詢的時候也是按照時間線上路由索引。<1)從超大數(shù)據(jù)的查詢效率來看:
Druid>Kylin>Presto>SparkSQL
2)Kylin:核心是Cube,Cube是--種預(yù)計算技術(shù),基本思路是預(yù)先對數(shù)據(jù)作
(2)從支持的數(shù)據(jù)源種類來講:
多維索引,查詢時只掃描索引而不訪問原始數(shù)據(jù)從而提速。
Presto>SparkSQL>Kylin>Druid
3)Presto:它沒有使用MapReduce.大部分場景下比Hive快一個數(shù)量級,其
中的關(guān)鍵是所有的處理都在內(nèi)存中完成
4)Impala:雄J?內(nèi)存運(yùn)算.速度快,<:Presto^;
2.2Druid框架原理
沙Druid框架原理。商硅谷
:i5)統(tǒng)治并:進(jìn)程監(jiān)Dnadnod**
要負(fù)資歷史節(jié)點的數(shù)據(jù)視MiddleManager進(jìn)程,井ExternalDvpendenciM
負(fù)我均衡.以及通過規(guī)且是數(shù)據(jù)攝入Druid的控制
.OtMriM
?>J(Rule)管理數(shù)據(jù)的CoordinatorOverlord器,他們負(fù)賁將提取任務(wù)
Nodes...........*Mctedate
Nodes分配給并
生命周期.MiddleManagers???*0ata/S?9m?atB
梆調(diào)Segement發(fā)布。
3>杳詢打點:接收客戶端
表聞?wù)埱?,并將這些15詢轉(zhuǎn)發(fā)給
▼Historicals和MiddleManagers.
StrvarrwxiOaU-------?
Broker
MetadataStorageZookeeper?,CltantOuviM
Nodes當(dāng)Brokers從這些子杳詢中
BMcfiDaU------
D中同管殲W點:及時?收到結(jié)果時,它們會合并這些結(jié)
8)Zdokeepert為
果并將它們詆回給調(diào)用者.
攝入實時數(shù)據(jù),已生成7>兀數(shù)據(jù)內(nèi),存儲Druid集群的;Druid集群提供以執(zhí)行仍謝
Segment數(shù)據(jù)文件,元數(shù)據(jù)信息,比如Segment的相關(guān)倍思.,服務(wù),如內(nèi)法服務(wù)的監(jiān)控.皆詢打點采用了緩存技術(shù)
一般用MySQL齡悔調(diào)和領(lǐng)導(dǎo)者選舉.
Historical
Ncdcq
2),歷史節(jié)點:加靚已生成好的數(shù)據(jù)文件,以供數(shù)據(jù)臺
6)數(shù)據(jù)文件療銘班:存放生成的Segment數(shù)據(jù)文件,并Bifii,H?toncal節(jié)點是整個集種自詢性能的核心所在,因為
供歷史服務(wù)器卜找,對「單節(jié)點集肝可以是本地班盤,而對Historic排會承擔(dān)絕大部分的segmentf£詢.
丁分布式集群般是HDFS,
2.3Druid數(shù)據(jù)結(jié)構(gòu)
與Druid架構(gòu)相輔相成的是其基于DataSource與Segment的數(shù)據(jù)結(jié)構(gòu),它們共同成
就了Druid的高性能優(yōu)勢。
夕Druid數(shù)據(jù)結(jié)構(gòu)(DataSource+Segment)@商硅谷
是?個邏輯概念,卻是數(shù)損的實際物
Druid的DaiaSource相當(dāng)于,關(guān)系里:數(shù)據(jù)庫中的表fTable)..DataSource的結(jié)構(gòu)包括:DataSourceSegment
評存儲格式,Druid將不同時間范圍內(nèi)的數(shù)據(jù)存儲在不同的
1)時間列:表明每行數(shù)據(jù)的時間值,默認(rèn)使用UTC時間格式凡精確到富秒級別。
Segment數(shù)據(jù)塊中.這便是所謂的數(shù)據(jù)橫網(wǎng)切機(jī)按照時間橫
2)諭度列:維度來自于OLAP的概念,用來標(biāo)識數(shù)據(jù)行的各個類別信息。
向切割數(shù)據(jù),避免了全表查詢.極大的提高了效率.
3)指標(biāo)列:是用于聚合和計兌的列.通常是一些數(shù)字,計電操作通常包括Count、Sum等“
(ESegment中,也采用面向列進(jìn)行數(shù)據(jù)壓縮存儲(BitmapEE
tlmestaap::publisheradvertisergenderclickprice縮技術(shù)),這便是所謂的數(shù)據(jù)縱向切割.
2011-ei-01Tei:ei:35Z;:bieberfever.co?google.con
2eil-ei-eiT01:e3:63Z*;bieberfever.coagoogle,CM
2eil-?l-?lT01:e4:51Z::bieberfever.co?google.coa
2011-ei-eiTei:ee:0ez::uUratri?fast.co<iigoogle.coaFemale
2011-61-eiT02:00:00Z:*ultratrlafast.coMgoogle.coaFemale
2011-ei-eiTe2:e0:eez:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 無線電熱水壺市場環(huán)境與對策分析
- 數(shù)碼酸堿計項目評價分析報告
- 云基礎(chǔ)設(shè)施服務(wù)行業(yè)影響因素分析
- 2024年接地箱項目規(guī)劃申請報告模板
- 帶輪購物袋市場環(huán)境與對策分析
- 懷表項目可行性實施報告
- 工業(yè)用電洗滌機(jī)項目可行性實施報告
- 2024年張緊裝置項目提案報告模板
- 家用清潔劑噴霧項目評價分析報告
- 工業(yè)包裝用木箱市場環(huán)境與對策分析
- 高中語文統(tǒng)編版選擇性必修上冊第二單元大單元公開課一等獎創(chuàng)新教學(xué)設(shè)計
- 《高延彈超薄罩面設(shè)計與施工技術(shù)規(guī)范》
- 勞動與社會保障專業(yè)大學(xué)生職業(yè)生涯規(guī)劃書
- 糖尿病患者自我管理-知識、態(tài)度、行為評價量表
- 湘美版小學(xué)美術(shù)四年級《草叢中》
- 2022-2023學(xué)年江蘇省蘇州市虎丘區(qū)蘇教版四年級上冊期中考試數(shù)學(xué)試卷(解析版)
- 【月考】數(shù)學(xué)六年級(上)全優(yōu)好卷第二次月考卷b-北師大版(含答案)
- 體育跳繩比賽方案(3篇)
- 公立與私立醫(yī)院費(fèi)用對比
- 2023年農(nóng)業(yè)產(chǎn)業(yè)化聯(lián)合體行業(yè)市場分析報告及未來發(fā)展趨勢
- 江西礦產(chǎn)資源概況
評論
0/150
提交評論