<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      大數據平臺Hive數據遷移至阿里云ODPS平臺流程與問題記錄

      一、背景介紹

        最近幾天,接到公司的一個將當前大數據平臺數據全部遷移到阿里云ODPS平臺上的任務。而申請的這個ODPS平臺是屬于政務內網的,因考慮到安全問題當前的大數據平臺與阿里云ODPS的網絡是不通的,所以不能使用數據采集工作流模板。

        然而,考慮到原大數據平臺數據量并不是很大,可以通過將原大數據平臺數據導出到CSV文件,然后再將CSV文件導入到ODPS平臺。在這個過程中踩的坑有點多,所以想寫篇文檔作為記錄。

      二、大數據平臺Hive數據導出到本地

        編寫export_data.sh腳本如下:

      #!/bin/bash
      #
      #導出數據
      hive -e "use swt_ods; show tables;" > /root/hive_data/table_names.txt
      for table_name in `cat /root/hive_data/table_names.txt`
      do
        hive -e "select * from swt_ods.$table_name;" > /root/hive_data/export_data/$table_name".csv"
        sed -i 's/\t/,/g' /root/hive_data/export_data/$table_name".csv"
      done

        執行腳本,并將數據/root/hive_data/export_data/目錄下載到本地。

      三、ODPS平臺創建對應表

      3.1 導出原大數據平臺Hive建表語句

        編寫export_create_table_sql.sh腳本如下:

      #!/bin/bash
      #
      #導出DDL
      hive -e "use swt_ods; show tables;" > /root/hive_data/table_names.txt
      for table_name in `cat /root/hive_data/table_names.txt`
      do
        hive -e "show create table swt_ods.$table_name;" > /root/hive_data/export_create_table_sql/$table_name
        tac $table_name| sed 1,14d| tac > /root/hive_data/export_create_table_sql/$table_name".sql"
        rm -f $table_name
        echo ";" >> /root/hive_data/export_create_table_sql/$table_name".sql"
        cat /root/hive_data/export_create_table_sql/$table_name".sql" >> /root/hive_data/export_create_table_sql/all.sql
      done

        執行腳本,并將/root/hive_data/export_create_table_sql/all.sql下載到本地。

      3.2 在ODPS中創建對應的表

      3.2.1 下載并配置MaxCompute 命令行工具

        點擊壓縮包鏈接下載

        在Windows中,解壓即安裝。在解壓目錄中配置odps_config.ini文件

        在解壓目錄odpscmd_public\bin目錄下,雙擊運行odpscmd.bat。

      3.2.2 使用命令行創建表

        將all.sql中的建表語句粘貼到命令行執行即可創建表。

      3.2.3 建表過程遇到的問題

        主要問題:
        一是,hive中建表的屬性的數據類型和MaxCompute的數據類型不對應??梢詤⒖紨祿愋驼f明文檔,https://help.aliyun.com/document_detail/27821.html?spm=a2c4g.11186623.2.5.X8fmyl 。例如:decimal類型不需要添加精度,如果寫成decimal(a,b)則會報錯;MaxCompute沒有date類型,只有datetime類型;沒有char類型。所以要根據MaxCompute的數據類型,對hive的建表語句進行調整。

        二是,涉及到新數據類型(TINYINT、SMALLINT、 INT、 FLOAT、VARCHAR、TIMESTAMP BINARY),需在SQL語句前加語句set odps.sql.type.system.odps2=true;,執行時set語句和SQL語句一起提交執行。
        在解決完上述兩個問題后,在重復步驟二,在命令行中批量執行建表語句。

      四、本地數據導入到ODPS平臺

      4.1 命令行使用tunnel命令導入數據

         使用命令行的方式批量導入數據到對應的表中。

              tunnel上傳數據的命令為:tunnel upload [options] <path> <[project.]table[/partition]>。詳見:https://help.aliyun.com/document_detail/27833.html?spm=a2c4g.11186623.2.1.rLlM5i 
              例如:tunnel upload C:\PATH\table_name.csv project_name.table_name;

      4.2 導入數據遇到的主要問題

      4.2.1 decimal類型數據無法插入空值

        問題描述:
        在導入數據時報format error, decimal nullcontent錯誤。

        可能需要加什么選項或者參數可以解決,但是在查看tunnel upload命令的詳細介紹后也沒有找到使用命令行來解決這個問題的方法。

        解決方法:
             使用MaxCompute Studio 導入數據可以解決上述問題。MaxCompute Studio安裝及介紹可參看文檔,https://help.aliyun.com/document_detail/50889.html?spm=a2c4g.11186623.6.745.ZVGpPm

      4.2.2 原始數據存在的問題

        問題描述:

        在導入數據時報column missmatch錯誤。

        解決方法:
        經檢查原始數據,可以發現數據中存在列,該列的值中含有逗號。而數據導入按逗號作為列分隔符,所以會出現數據列數大于表的列數。因為這樣的表比較少,所以直接修改數據中那一列中的逗號為其他符號,然后再導入。 
      posted @ 2018-06-27 18:17  Huidoo_Yang  閱讀(2725)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 色综合久久精品亚洲国产| 久久精品国产99国产精品严洲| 欧美熟妇乱子伦XX视频| 清苑县| 97精品伊人久久久大香线蕉| 国产精品一区二区不卡91| 亚洲欧美日韩精品久久亚洲区色播| 又爽又黄又无遮掩的免费视频| 亚洲性日韩精品一区二区| 亚洲v国产v天堂a无码二区| 一区二区三区日本久久九| 激情综合网激情五月我去也| 亚洲欧美日韩在线码| 国产一区二区午夜福利久久| 亚洲一区中文字幕第十页| 亚洲日本va午夜在线影院| 男女猛烈激情xx00免费视频| 99亚洲男女激情在线观看| 亚洲精品无码成人aaa片| 蜜桃av无码免费看永久| 少妇人妻偷人精品一区二| 国产精品无码成人午夜电影| 最新国产精品精品视频| 欧美色aⅴ欧美综合色| 国产一区二区三区不卡观| 国产精品一码二码三码| 成熟丰满熟妇av无码区| 宅男噜噜噜66在线观看| 成人免费A级毛片无码片2022| 中文无码热在线视频| 日本一区不卡高清更新二区 | 人妻少妇精品无码专区二区| 亚洲国产欧美在线观看片| 91精品国产蜜臀在线观看| 国产精品亚洲综合色区丝瓜| 亚洲产国偷v产偷v自拍色戒| 四虎永久在线精品无码视频| 国产大学生自拍三级视频| 日韩成人精品一区二区三区| 国产午夜福利精品视频| 国产真人做受视频在线观看|