中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

網(wǎng)站建設漢獅怎么樣seo研究協(xié)會網(wǎng)

網(wǎng)站建設漢獅怎么樣,seo研究協(xié)會網(wǎng),做網(wǎng)商要創(chuàng)建網(wǎng)站嗎,帝國網(wǎng)站制作廣告文章目錄 ODS層及DWD層構建01:課程回顧02:課程目標03:數(shù)倉分層回顧04:Hive建表語法05:Avro建表語法 ODS層及DWD層構建 01:課程回顧 一站制造項目的數(shù)倉設計為幾層以及每一層的功能是什么? ODS&…

文章目錄

  • ODS層及DWD層構建
    • 01:課程回顧
    • 02:課程目標
    • 03:數(shù)倉分層回顧
    • 04:Hive建表語法
    • 05:Avro建表語法

ODS層及DWD層構建

01:課程回顧

  1. 一站制造項目的數(shù)倉設計為幾層以及每一層的功能是什么?

    • ODS:原始數(shù)據(jù)層:存放從Oracle中同步采集的所有原始數(shù)據(jù)
    • DW:數(shù)據(jù)倉庫層
      • DWD:明細數(shù)據(jù)層:存儲ODS層進行ETL以后的數(shù)據(jù)
      • DWB:輕度匯總層:對DWD層的數(shù)據(jù)進行輕度聚合:關聯(lián)和聚合
        • 基于每個主題構建主題事務事實表
      • DWS:維度數(shù)據(jù)層:對DWD層的數(shù)據(jù)進行維度抽取
        • 基于每個主題的維度需求抽取所有維度表
    • ST:數(shù)據(jù)應用層
      • 基于DWB和DWS的結果進行維度的聚合
    • DM:數(shù)據(jù)集市層
      • 用于歸檔存儲公司所有部門需要的shuju
  2. 一站制造項目的數(shù)據(jù)來源是什么,核心的數(shù)據(jù)表有哪些?

    • 數(shù)據(jù)來源:業(yè)務系統(tǒng)
    • ERP:公司資產(chǎn)管理系統(tǒng)、財務數(shù)據(jù)
      • 工程師信息、零部件倉儲信息
    • CISS:客戶服務管理系統(tǒng)
      • 工單信息、站點信息、客戶信息
    • 呼叫中心系統(tǒng)
      • 來電受理信息、回訪信息
  3. 一站制造項目中在數(shù)據(jù)采集時遇到了什么問題,以及如何解決這個問題?

    • 技術選型:Sqoop
    • 問題:發(fā)現(xiàn)采集以后生成在HDFS上文件的行數(shù)與實際Oracle表中的數(shù)據(jù)行數(shù)不一樣,多了
    • 原因:Sqoop默認將數(shù)據(jù)寫入HDFS以普通文本格式存儲,一旦遇到數(shù)據(jù)中如果包含了特殊字符\n,將一行的數(shù)據(jù)解析為多行
    • 解決
      • 方案一:Sqoop刪除特殊字段、替換特殊字符【一般不用】
      • 方案二:更換其他數(shù)據(jù)文件存儲類型:AVRO
        • 數(shù)據(jù)存儲:Hive
        • 數(shù)據(jù)計算:SparkSQL
  4. 什么是Avro格式,有什么特點?

    • 二進制文本:讀寫性能更快
    • 獨立的Schema:生成文件每一行所有列的信息
      • 對列的擴展非常友好
    • Spark與Hive都支持的類型
  5. 如何實現(xiàn)對多張表自動采集到HDFS?

    • 需求

      • 讀取表名
      • 執(zhí)行Sqoop命令
    • 效果:將所有增量和全量表的數(shù)據(jù)采集到HDFS上

      • 全量表路徑:維度表:數(shù)據(jù)量、很少發(fā)生變化

        /data/dw/ods/one_make/   full_imp   /表名/分區(qū)/數(shù)據(jù)
        
      • 增量表路徑:事實表:數(shù)據(jù)量不斷新增,整體相對較大

        /data/dw/ods/one_make/    incr_imp  /表名/分區(qū)/數(shù)據(jù)
        
      • Schema文件的存儲目錄

        /data/dw/ods/one_make/avsc
        
    • Shell:業(yè)務簡單,Linux命令支持

    • Python:業(yè)務復雜,是否Python開發(fā)接口

      • 調用了LinuxShell來運行
  6. Python面向對象的基本應用

    • 語法

      • 定義類

        class 類名:# 屬性:變量# 方法:函數(shù)
        
      • 定義變量

        key = value
        
      • 定義方法

        def funName(參數(shù)):方法邏輯return
        
    • 面向對象:將所有事物以對象的形式進行編程,萬物皆對象

      • 對象:是類的實例
    • 對象類:專門用于構造對象的,一般稱為Bean,代表某一種實體Entity

      • 類的組成

        class 類名:# 屬性:變量# 方法:函數(shù)
        
      • 業(yè)務:實現(xiàn)人購買商品

        • class Person:# 屬性id = 1name = zhangsanage = 18gender = 1……# 方法def eat(self,something):print(f"{self.name} eating {something}")def buy(self,something)print(f"{self.name} buy {something}")
          
          • 每個人都是一個Person類的對象
        • 商品

          class Product:# 屬性id = 001price = 1000.00size = middlecolor = blue……# 方法def changePrice(self,newPrice):self.price = newPirce
          
    • 工具類:專門用于封裝一些工具方法的,utils,代表某種操作的集合

      • 類的組成:一般只有方法

        class 類名:# 方法:函數(shù)
        
      • 字符串處理工具類:拼接、裁剪、反轉、長度、轉大寫、轉小寫、替換、查找

        class StringUtils:def concat(split,args*):split.join(args)def reverse(sourceString)return reverse(sourceString)……
        
      • 日期處理工具類:計算、轉換

        class TimeUitls:def computeTime(time1,time2):return time1-time2def transTimestamp(timestamp):return newDateyyyy-MM-dd HH:mm:ss)def tranfData(date)return timestamp
        
    • 常量類:專門用于定義一些不會發(fā)生改變的變量的類

      • 類的組成:一般只有屬性

        class 類名:# 屬性:不發(fā)生變化的屬性
        
      • 定義一個常量類

        class Common:ODS_DB_NAME = "one_make_ods"……
        
        • file1.py:創(chuàng)建數(shù)據(jù)庫

          create database if not exists Common.ODS_DB_NAME;
          
          • file2.py:創(chuàng)建表

            ```
            create table if not exists Common.ODS_DB_NAME.tbname
            ```
            
            • file3.py:插入數(shù)據(jù)到表中

              insert into table  Common.ODS_DB_NAME.tbname
              
            • 問題1:容易寫錯

            • 問題2:不好修改

02:課程目標

  • 目標:自動化的ODS層與DWD層構建
  • 實現(xiàn)
    • 掌握Hive以及Spark中建表的語法規(guī)則
    • 實現(xiàn)項目開發(fā)環(huán)境的構建
    • 自己要實現(xiàn)所有代碼注釋
    • ODS層與DWD層整體運行測試成功

03:數(shù)倉分層回顧

  • 目標:回顧一站制造項目分層設計

  • 實施

    image-20210821102418366

    • ODS層 :原始數(shù)據(jù)層

      • 來自于Oracle中數(shù)據(jù)的采集

      • 數(shù)據(jù)存儲格式:AVRO

      • ODS區(qū)分全量和增量

      • 實現(xiàn)

        • 數(shù)據(jù)已經(jīng)采集完成

          /data/dw/ods/one_make/full_imp
          /data/dw/ods/one_make/incr_imp
          
        • step1:創(chuàng)建ODS層數(shù)據(jù)庫:one_make_ods

        • step2:根據(jù)表在HDFS上的數(shù)據(jù)目錄來創(chuàng)建分區(qū)表

        • step3:申明分區(qū)

    • DWD層

      • 來自于ODS層數(shù)據(jù)
      • 數(shù)據(jù)存儲格式:ORC
      • 不區(qū)分全量和增量的
      • 實現(xiàn)
        • step1:創(chuàng)建DWD層數(shù)據(jù)庫:one_make_dwd
        • step2:創(chuàng)建DWD層的每一張表
        • step3:從ODS層抽取每一張表的數(shù)據(jù)寫入DWD層對應的表中
  • 小結

    • 回顧一站制造項目分層設計

04:Hive建表語法

  • 目標:掌握Hive建表語法

  • 實施

    CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name
    (col1Name col1Type [COMMENT col_comment],co21Name col2Type [COMMENT col_comment],co31Name col3Type [COMMENT col_comment],co41Name col4Type [COMMENT col_comment],co51Name col5Type [COMMENT col_comment],……coN1Name colNType [COMMENT col_comment])
    [PARTITIONED BY (col_name data_type ...)]
    [CLUSTERED BY (col_name...) [SORTED BY (col_name ...)] INTO N BUCKETS]
    [ROW FORMAT row_format]row format delimited fields terminated by lines terminated by
    [STORED AS file_format]
    [LOCATION hdfs_path]
    TBLPROPERTIES
    
    • EXTERNAL:外部表類型(刪除表的時候,不會刪除hdfs中數(shù)據(jù))
      • 內(nèi)部表、外部表、臨時表
    • PARTITIONED BY:分區(qū)表結構
      • 普通表、分區(qū)表、分桶表
    • CLUSTERED BY:分桶表結構
    • ROW FORMAT:指定分隔符
      • 列的分隔符:\001
      • 行的分隔符:\n
    • STORED AS:指定文件存儲類型
      • ODS:avro
      • DWD:orc
    • LOCATION:指定表對應的HDFS上的地址
      • 默認:/user/hive/warehouse/dbdir/tbdir
    • TBLPROPERTIES:指定一些表的額外的一些特殊配置屬性
  • 小結

    • 掌握Hive建表語法

05:Avro建表語法

  • 目標:掌握Hive中Avro建表方式及語法

  • 路徑

    • step1:指定文件類型
    • step2:指定Schema
    • step3:建表方式
  • 實施

    • Hive官網(wǎng):https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-CreateTable

    • DataBrics官網(wǎng):https://docs.databricks.com/spark/2.x/spark-sql/language-manual/create-table.html

    • Avro用法:https://cwiki.apache.org/confluence/display/Hive/AvroSerDe

    • 指定文件類型

      • 方式一:指定類型

        stored as avro
        
      • 方式二:指定解析類

        --解析表的文件的時候,用哪個類來解析
        ROW FORMAT SERDE'org.apache.hadoop.hive.serde2.avro.AvroSerDe'
        --讀取這張表的數(shù)據(jù)用哪個類來讀取
        STORED AS INPUTFORMAT'org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat'
        --寫入這張表的數(shù)據(jù)用哪個類來寫入
        OUTPUTFORMAT'org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat'
        
    • 指定Schema

      • 方式一:手動定義Schema

        CREATE TABLE embedded
        COMMENT "這是表的注釋"
        ROW FORMAT SERDE'org.apache.hadoop.hive.serde2.avro.AvroSerDe'
        STORED AS INPUTFORMAT'org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat'
        OUTPUTFORMAT'org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat'
        TBLPROPERTIES ('avro.schema.literal'='{"namespace": "com.howdy","name": "some_schema","type": "record","fields": [ { "name":"string1","type":"string"}]}'
        );      	
        
      • 方式二:加載Schema文件

        CREATE TABLE embedded
        COMMENT "這是表的注釋"
        ROW FORMAT SERDE'org.apache.hadoop.hive.serde2.avro.AvroSerDe'
        STORED as INPUTFORMAT'org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat'
        OUTPUTFORMAT'org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat'
        TBLPROPERTIES ('avro.schema.url'='file:///path/to/the/schema/embedded.avsc'
        );
        
    • 建表語法

      • 方式一:指定類型和加載Schema文件

        create external table one_make_ods_test.ciss_base_areas
        comment '行政地理區(qū)域表'
        PARTITIONED BY (dt string)
        stored as avro
        location '/data/dw/ods/one_make/full_imp/ciss4.ciss_base_areas'
        TBLPROPERTIES ('avro.schema.url'='/data/dw/ods/one_make/avsc/CISS4_CISS_BASE_AREAS.avsc');
        
      • 方式二:指定解析類和加載Schema文件

        create external table one_make_ods_test.ciss_base_areas
        comment '行政地理區(qū)域表'
        PARTITIONED BY (dt string)
        ROW FORMAT SERDE'org.apache.hadoop.hive.serde2.avro.AvroSerDe'
        STORED AS INPUTFORMAT'org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat'
        OUTPUTFORMAT'org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat'
        location '/data/dw/ods/one_make/full_imp/ciss4.ciss_base_areas'
        TBLPROPERTIES ('avro.schema.url'='/data/dw/ods/one_make/avsc/CISS4_CISS_BASE_AREAS.avsc');
        
        create external table 數(shù)據(jù)庫名稱.表名
        comment '表的注釋'
        partitioned by
        ROW FORMAT SERDE'org.apache.hadoop.hive.serde2.avro.AvroSerDe'
        STORED AS INPUTFORMAT'org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat'
        OUTPUTFORMAT'org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat'
        location '這張表在HDFS上的路徑'
        TBLPROPERTIES ('這張表的Schema文件在HDFS上的路徑')
        

?

  • 小結

    • 掌握Hive中Avro建表方式及語法
http://www.risenshineclean.com/news/65084.html

相關文章:

  • 如何創(chuàng)建網(wǎng)站教程視頻微信朋友圈推廣
  • 重慶市建設工程信息網(wǎng)聯(lián)系電話自動seo系統(tǒng)
  • 開了網(wǎng)站建設公司 如何接業(yè)務競價托管公司
  • 哪些網(wǎng)站是用python做的seo如何快速排名百度首頁
  • 如何在百度上做公司做網(wǎng)站百度上首頁
  • 通過做政府門戶網(wǎng)站的實驗獲得什么發(fā)軟文是什么意思
  • 編制網(wǎng)站建設策劃書淘寶排名查詢工具
  • 長沙有哪些網(wǎng)站建設公司經(jīng)典廣告語
  • 做網(wǎng)站地圖的步驟網(wǎng)絡推廣優(yōu)化seo
  • 動態(tài)網(wǎng)站沒有數(shù)據(jù)庫怎么做巨量數(shù)據(jù)官網(wǎng)
  • 小程序開發(fā) 網(wǎng)站建設網(wǎng)站做優(yōu)化好還是推廣好
  • 北京海淀區(qū)建設局網(wǎng)站萬網(wǎng)
  • 做網(wǎng)站定制只要做好關鍵詞優(yōu)化
  • 用戶體驗設計案例鄭州seo技術服務顧問
  • 團隊網(wǎng)站怎么做網(wǎng)絡營銷首先要
  • 世紀佳緣網(wǎng)站開發(fā)語言關鍵字是什么意思
  • 網(wǎng)站建設可行性研究鏈接提交
  • 一個旅游網(wǎng)站怎么做電商網(wǎng)站有哪些
  • 三水網(wǎng)站制作媒體資源網(wǎng)官網(wǎng)
  • nas服務器 做網(wǎng)站佛山優(yōu)化推廣
  • 青島網(wǎng)站建設優(yōu)化質量可靠網(wǎng)站推廣的作用
  • 做網(wǎng)站需要視頻銜接怎么口碑最好的it培訓機構
  • 小程序怎么做優(yōu)惠券網(wǎng)站制作一個網(wǎng)站的基本步驟
  • 建設網(wǎng)站服務器三十個知識點帶你學黨章
  • 音樂網(wǎng)站模板免費源碼教育培訓報名
  • 便利的集團網(wǎng)站建設朋友圈廣告投放平臺
  • 虞城網(wǎng)站建設廣州最新重大新聞
  • 上饒網(wǎng)站網(wǎng)站建設模板建站和開發(fā)網(wǎng)站區(qū)別
  • 創(chuàng)建一個b2c網(wǎng)站得多少錢廣告推廣代運營公司
  • ui界面設計尺寸規(guī)范淘寶關鍵詞優(yōu)化軟件