1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時(shí)間:8:30-17:00
      你可能遇到了下面的問題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
      基于DataLakeAnalytics如何做跨地域的數(shù)據(jù)分析

      本篇文章為大家展示了基于DataLakeAnalytics如何做跨地域的數(shù)據(jù)分析,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

      創(chuàng)新互聯(lián)成立于2013年,公司以網(wǎng)站建設(shè)、做網(wǎng)站、系統(tǒng)開發(fā)、網(wǎng)絡(luò)推廣、文化傳媒、企業(yè)宣傳、平面廣告設(shè)計(jì)等為主要業(yè)務(wù),適用行業(yè)近百種。服務(wù)企業(yè)客戶上千,涉及國內(nèi)多個(gè)省份客戶。擁有多年網(wǎng)站建設(shè)開發(fā)經(jīng)驗(yàn)。為企業(yè)提供專業(yè)的網(wǎng)站建設(shè)、創(chuàng)意設(shè)計(jì)、宣傳推廣等服務(wù)。 通過專業(yè)的設(shè)計(jì)、獨(dú)特的風(fēng)格,為不同客戶提供各種風(fēng)格的特色服務(wù)。

      在阿里云上,很多客戶的應(yīng)用都是多地域部署的, 比如在北京(cn-beijing)的地域部署一個(gè)應(yīng)用讓北方的客戶訪問快一點(diǎn),同時(shí)在杭州(cn-hangzhou)地域部署一份讓南方的客戶訪問快一點(diǎn)。多地域部署之后,業(yè)務(wù)數(shù)據(jù)被拆成了多份,而各個(gè)地域的數(shù)據(jù)庫都是獨(dú)立的,網(wǎng)絡(luò)又不通,給總體業(yè)務(wù)數(shù)據(jù)的分析造成了困難。今天我給大家介紹一套基于 DataLakeAnalytics, OSS, DataX 等幾個(gè)阿里云產(chǎn)品的跨地域數(shù)據(jù)分析的解決方案。

      其實(shí)云產(chǎn)品本身(比如我們 DataLakeAnalytics 自己)也有跨地域數(shù)據(jù)分析的需求,這個(gè)方案也同樣適用。這個(gè)方案本來就是為了分析 DataLakeAnalytics 自己的業(yè)務(wù)數(shù)據(jù)而探索出來的。

      方案概覽

      我們知道各個(gè)地域的RDS是不通的,除非你開公網(wǎng)訪問權(quán)限(有很大的安全風(fēng)險(xiǎn),不推薦), 而且即使你開公網(wǎng),要對多個(gè)數(shù)據(jù)庫里面的數(shù)據(jù)進(jìn)行聯(lián)合分析也不是一件容易的事情;而且這種數(shù)據(jù)分析的需求我們不希望它占用太多的預(yù)算。

      我們的方案是把各個(gè)地域的數(shù)據(jù)都同步到同一個(gè)地域的OSS上面去,然后用 DataLakeAnalytics 進(jìn)行聯(lián)合分析。這個(gè)方案的優(yōu)點(diǎn)在于 OSS 存儲收費(fèi)非常便宜, DataLakeAnalytics 也是按查詢量收費(fèi)的,你平時(shí)不查詢的時(shí)候一分錢都不用花。總體方案如下圖:

      基于DataLakeAnalytics如何做跨地域的數(shù)據(jù)分析

      匯聚各個(gè)地域的數(shù)據(jù)

      我們方案的第一步是把各個(gè)地域的RDS數(shù)據(jù)同步到同一個(gè)地域的OSS里面去。阿里巴巴集團(tuán)開源了一個(gè)很棒的數(shù)據(jù)搬運(yùn)的工具: DataX, 可以把數(shù)據(jù)在各種不同的數(shù)據(jù)源之間進(jìn)行搬運(yùn),它支持的數(shù)據(jù)源類型非常豐富: 從關(guān)系型的 MySQL, SQLServer, 到各種文件系統(tǒng)如 HDFS, OSS等等,其中我們需要的是從 MySQL 讀數(shù)據(jù)的 mysqlreader 插件以及往 OSS 寫數(shù)據(jù)的 osswriter 插件。

      假定我們有下面這么一個(gè)記錄人員信息的表 person 需要同步:

      create table person (
            id int primary key auto_increment,
            name varchar(1023),
            age int
      );

      我們寫一個(gè)類似下面這樣的DataX任務(wù)描述文件 person.json :

      {
       "job": {
         "setting": {
           "speed": {
             "channel": 1,
             "byte": 104857600
           },
           "errorLimit": {
             "record": 10
           }
         },
         "content": [
           {
             "reader": {
               "name": "mysqlreader",
               "parameter": {
                 "username": "your-user-name",
                 "password": "your-password",
                 "column": [
                   "id",
                   "name",
                   "age",
                 ],
                 "connection": [
                   {
                     "table": [
                       "person"
                     ],
                     "jdbcUrl": [
                       "jdbc:mysql://your-rds.mysql.rds.aliyuncs.com:3306/dbname"
                     ]
                   }
                 ]
               }
             },
      
             "writer": {
               "name": "osswriter",
               "parameter": {
                 "endpoint": "http://oss.aliyuncs.com",
                 "accessId": "your-access-id",
                 "accessKey": "your-access-secret",
                 "bucket": "mydb-bucket",
                 "object": "mydb/person/region=cn-hangzhou/person.csv",
                 "encoding": "UTF-8",
                 "fieldDelimiter": "|",
                 "writeMode": "truncate"
               }
             }
           }
         ]
       }
      }

      這里 MySQL 相關(guān)的信息填你的業(yè)務(wù)庫的信息,而 OSS 相關(guān)的信息選擇一個(gè)我們同步到的OSS的地址。注意 OSS 配置部分的 object 字段,mydb 保存你所有的數(shù)據(jù), person 這個(gè)目錄保存你的 person 表的數(shù)據(jù),region=cn-hangzhou 這個(gè)目錄就有意思了,它保存的是你的應(yīng)用在 cn-hangzhou 這個(gè)region里面的數(shù)據(jù),同樣的,你可能還會有 cn-beijing, cn-shangahi 的數(shù)據(jù)等等。

      然后執(zhí)行如下命令:

      // 執(zhí)行前確保你已經(jīng)下載并正確配置好 DataX 了。
      python datax/bin/datax.py person.json

      正確執(zhí)行的話你會看到下面的輸出:

      .....省略N行......
      2018-09-06 19:53:19.900 [job-0] INFO  JobContainer - PerfTrace not enable!
      2018-09-06 19:53:19.901 [job-0] INFO  StandAloneJobContainerCommunicator - Total 251 records, 54067 bytes | Speed 5.28KB/s, 25 records/s | Error 0 records, 0 bytes |  All Task WaitWriterTime 0.001s | All Task WaitReaderTime 0.026s | Percentage 100.00%
      2018-09-06 19:53:19.902 [job-0] INFO  JobContainer -
      任務(wù)啟動時(shí)刻                    : 2018-09-06 19:53:09
      任務(wù)結(jié)束時(shí)刻                    : 2018-09-06 19:53:19
      任務(wù)總計(jì)耗時(shí)                    : 10s
      任務(wù)平均流量                    : 5.28KB/s
      記錄寫入速度                    : 25rec/s
      讀出記錄總數(shù)                    : 251
      讀寫失敗總數(shù)                    : 0

      這樣數(shù)據(jù)就自動同步到 OSS 上去了,你可以下載一個(gè) oss-browser 去查看oss上面的數(shù)據(jù):

      示例數(shù)據(jù)

      文件里面數(shù)據(jù)大概是這樣的:

      9|ethan|10
      10|julian|20
      11|train|30
      12|wally|40

      完成了一個(gè)地域的數(shù)據(jù)搬運(yùn)之后,其它地域都可以照葫蘆畫瓢,唯一需要注意的地方是,雖然 MySQL 數(shù)據(jù)是各個(gè) 地域 的數(shù)據(jù),但是 OSS 要用同一個(gè)根目錄 person ,因?yàn)槲覀円鰯?shù)據(jù)匯集嘛,把幾個(gè)地域的數(shù)據(jù)匯集完成之后,person 目錄的結(jié)構(gòu)大概是這樣的:

      基于DataLakeAnalytics如何做跨地域的數(shù)據(jù)分析

      使用 DataLakeAnalytics 分析匯聚后的OSS數(shù)據(jù)

      下面的分析就可以交給 DataLakeAnalytics 了,分析OSS上的數(shù)據(jù)是 DataLakeAnalytics 的拿手好戲,在開始之前我們要有一個(gè) DataLakeAnalytics 的賬號,目前 DataLakeAnalytics 正在公測,直接申請?jiān)囉镁秃昧恕T囉脤徟晒χ螅銜@得一個(gè)用戶名和密碼, 然后在控制臺登錄就可以使用:

      DLA控制臺

      或者如果你是極客,更偏愛命令行,你也可以使用普通的 MySQL 客戶端就可以連接 DLA 了:

      mysql -hservice.cn-shanghai.datalakeanalytics.aliyuncs.com
           -P10000
           -u
           -p

      在這篇文章里面,我會使用 MySQL 命令行給大家演示 DLA 的功能。

      首先我們來建一個(gè) DataLakeAnalytics 的數(shù)據(jù)庫:

      CREATE DATABASE `mydb` WITH DBPROPERTIES (
          catalog = oss,
          location = 'oss://your-bucket/mydb/'
      );

      這里的 oss://mydb-bucket/mydb/ 就是前面我們數(shù)據(jù)匯聚的 person 目錄的父目錄。

      建好庫之后,我們再建一個(gè)表:

      CREATE EXTERNAL TABLE IF NOT EXISTS `person` (
       `id` bigint,
       `name` varchar(128),
       `age` int
      )
      PARTITIONED BY (region varchar(63))
      ROW FORMAT DELIMITED FIELDS TERMINATED BY '|'
      STORED AS TEXTFILE
      LOCATION 'oss://mydb-bucket/mydb/person';

      注意這是一個(gè)分區(qū)表,分區(qū)的key是我們的region,這樣的好處一是各個(gè)地域在同步數(shù)據(jù)的時(shí)候比較簡單,不用擔(dān)心把別的地域的數(shù)據(jù)沖掉了;另外利用地域分區(qū)也使得我們在分析單個(gè)地域的時(shí)候掃描數(shù)據(jù)量會比較小,查詢速度更快。

      建好表之后,我們運(yùn)行如下命令讓 DataLakeAnalytics 去對OSS上的文件列表進(jìn)行掃描以找到所有的 region 分區(qū):

      mysql> msck repair table person;
      +-----------------------------------------------------------------------------------------------------------+
      | Result                                                                                                    |
      +-----------------------------------------------------------------------------------------------------------+
      | Partitions not in metastore: person:region=cn-beijing person:region=cn-hangzhou person:region=cn-shanghai |
      | Repair: Added partition to metastore mydb.person:region=cn-beijing                                        |
      | Repair: Added partition to metastore mydb.person:region=cn-hangzhou                                       |
      | Repair: Added partition to metastore mydb.person:region=cn-shanghai                                       |
      +-----------------------------------------------------------------------------------------------------------+

      現(xiàn)在我們就可以開心的對所有地域的數(shù)據(jù)進(jìn)行聯(lián)合查詢了 :)

      mysql> select * from person limit 5;
      +------+-------+------+-------------+
      | id   | name  | age  | region      |
      +------+-------+------+-------------+
      |    1 | james |   10 | cn-beijing  |
      |    2 | bond  |   20 | cn-beijing  |
      |    3 | lucy  |   30 | cn-beijing  |
      |    4 | lily  |   40 | cn-beijing  |
      |    5 | trump |   10 | cn-hangzhou |
      +------+-------+------+-------------+
      5 rows in set (0.43 sec)
      
      mysql> select region, count(*) cnt from person group by region;
      +-------------+------+
      | region      | cnt  |
      +-------------+------+
      | cn-beijing  |    4 |
      | cn-hangzhou |    4 |
      | cn-shanghai |    4 |
      +-------------+------+
      3 rows in set (0.18 sec)

      在這篇文章里面,我們介紹了一種通過 DataLakeAnalytics, OSS, DataX 進(jìn)行跨地域數(shù)據(jù)分析的方法。限于篇幅的原因方案的很多細(xì)節(jié)沒有進(jìn)一步優(yōu)化,比如我們其實(shí)可以對數(shù)據(jù)進(jìn)行進(jìn)一步按天分區(qū),這樣每天同步的數(shù)據(jù)可以更少,效率更高;再比如我們沒有介紹如何周期性的進(jìn)行數(shù)據(jù)同步,用crontab? 還是什么調(diào)度系統(tǒng)?這些就留給讀者自己去探索了。

      上述內(nèi)容就是基于DataLakeAnalytics如何做跨地域的數(shù)據(jù)分析,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


      網(wǎng)站名稱:基于DataLakeAnalytics如何做跨地域的數(shù)據(jù)分析
      文章URL:http://www.ef60e0e.cn/article/gesoeo.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        秦安县| 屯昌县| 托克托县| 集安市| 武城县| 濮阳市| 广汉市| 慈利县| 大渡口区| 剑阁县| 沽源县| 繁峙县| 苍梧县| 盐山县| 百色市| 贺兰县| 新乐市| 泉州市| 临澧县| 固原市| 平阴县| 蒙山县| 宜兴市| 永兴县| 崇信县| 青田县| 和政县| 贵德县| 安塞县| 辽阳市| 化州市| 浙江省| 江达县| 嘉义县| 通江县| 米林县| 三河市| 峡江县| 岗巴县| 伊金霍洛旗| 凤城市|