国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

PG上云之現代化圣旨背景

IT那活兒 / 1926人閱讀
PG上云之現代化圣旨背景





背 景 




所謂圣旨:奉天承運,皇帝詔曰,不可不從之,今昔一現代化圣旨駕到——此次上云與以往不同的是:源庫(Oracle庫)中存在ogg同步9表數據到其他Oracle庫中。故而在Oracle庫遷移到PG庫之后,還要把這9張表從PG庫同步到其他的Oracle庫中。并且要求要實時同步。


經前期的查詢,這9張表包括分區表,并且源端(PG端)表的字段數量比目標端(Oracle端)的表字段數量多。目前我們使用的跨IDC數據同步工具支持pg遷移到Oracle,但是它不支持分區表,也不支持表結構不一致的表。所以這個方法肯定是抗旨的。采用DATAX工具也不可以接旨,因為datax不支持增量同步。


經協商不要求實時同步,而是每天定時同步了。故datax接下了圣旨。Datax的原理之前有介紹過,在這就不重復介紹了,下面就直接看看datax是如何接旨的。




 
 基于datax-web的部署 
 




一、新建項目





二、添加任務

任務管理-->添加


這里所屬項目寫剛剛新建的項目tdwh,這里的cron分別指的是秒,分,時,日,月,周,年,這里是每天9點52分整調度該任務。每一張表都要為其配置一個json文件

{
  "job": {
    "content": [
      {
        "writer": {
          "parameter": {
            "username": "$username",
            "column": [
              "account_id",
              "seat_id",
              "create_time",
              "state",
              "channel_cd",
              "exten_type",
              "ring_time",
              "end_time",
              "variable",
              "local_id",
              "bz",
              "seat_prop"
            ],
            "batchSize": 512,
            "connection": [
              {
                "table": [
                  "outcall.channel_call_seat"
                ],
                "jdbcUrl": "jdbc:oracle:thin:@$host:$port/$servicesname"
              }
            ],
            "preSql": [
              "truncate table outcall.channel_call_seat"
            ],
            "password": "$password"
          },
          "name": "oraclewriter"
        },
        "reader": {
          "parameter": {
            "username": "$username",
            "connection": [
              {
                "querySql": [
                  "select * from outcall.channel_call_seat"
                ],
                "jdbcUrl": [
                  "jdbc:postgresql://$host:$port/$databasename"
                ]
              }
            ],
            "password": "$password",
            "where": ""
          },
          "name": "postgresqlreader"
        }
      }
    ],
    "setting": {
      "speed": {
        "channel": 8
      }
    }
  }
}


這里表源端與目標端結構一致,如果不一致,那么就要注意了,需要把這個*寫成源端表的具體屬性列名
"querySql": [
                  "select * from outcall.channel_call_seat"
                ],


column這個要成目標端表的屬性列名
"column": [
              "account_id",
              "seat_id",
              "create_time",
              "state",
              "channel_cd",
              "exten_type",
              "ring_time",
              "end_time",
              "variable",
              "local_id",
              "bz",
              "seat_prop"
            ],


部署好后還要點擊啟動,然后才能自動調度任務,也可以在操作里點擊執行一次就立即調度任務



、查看日志

執行完之后可以查看日志

可以到數據已經同步完成,耗時24s,讀寫失敗總數為0,證明已經全部同步了,沒有數據丟失。






基于crontab調用python腳本的部署





1、編輯json文件


cd  /pg_data1/datax/bin/tdwh_test
vi  call_sheet_info.json

寫入

{
    "job": {
        "content": [
            {
                "writer": {
                    "parameter": {
                        "username": "$username",
                        "column": [
                            "id",
                            "call_sheet_id",
                            "call_id",
                            "call_type",
                            "call_no",
                            "called_no",
                            "ring_time",
                            "ringing_time",
                            "begin_time",
                            "end_time",
                            "calltime_length",
                            "queue_time",
                            "queue",
                            "agent",
                            "exten",
                            "state",
                            "monitor_file_name",
                            "pbx",
                            "agent_name",
                            "call_state",
                            "province",
                            "district",
                            "ivrkey",
                            "hanguper",
                            "investigate",
                            "update_time",
                            "contact_order_id",
                            "lan_id",
                            "mechine_id",
                            "staff_id",
                            "tele_phone",
                            "area_id",
                            "channel_cd",
                            "quality_state",
                            "quality_time",
                            "quality_staff",
                            "quality_desc",
                            "sheet_cloud",
                            "acc_nbr_type"
                        ],
                        "batchSize": 512,
                        "connection": [
                            {
                                "table": [
                                    "outcall.call_sheet_info"
                                ],
                                "jdbcUrl": "jdbc:oracle:thin:@$host:$port/$servicename"
                            }
                        ],
                        "preSql": [
                            "truncate table outcall.call_sheet_info"
                        ],
                        "password": "$password"
                    },
                    "name": "oraclewriter"
                },
                "reader": {
                    "parameter": {
                        "username": "$username",
                        "connection": [
                            {
                                "querySql": [
                                    "select * from outcall.call_sheet_info"
                                ],
                                "jdbcUrl": [
                                  "jdbc:postgresql://$host:$port/$databasename"
                                ]
                            }
                        ],
                        "password": "$password",
                        "where": ""
                    },
                    "name": "postgresqlreader"
                }
            }
        ],
        "setting": {
            "speed": {
                "channel": 8
            }
        }
    }
}
注意:要給這個json文件可執行權限



2、編輯crontab定時任務


crontab -e

0 9 * * * python /pg_data1/datax/bin/datax.py /pg_data1/datax/bin/tdwh_test/call_sheet_info.json > /pg_data1/datax/bin/tdwh_test/call_sheet_info.log
每天9點整調度該任務實現數據全量同步。




 總 結 
 



  1. datax支持分區表,支持表結構不一致,但是不支持增量同步。

  2. 每一張表都需要為其配置一個json文件。

  3. 在添加完任務之后,要記得點擊啟動,否則不會自動調度任務。

  4. 個人更傾向于基于datax-web的部署,可以隨時控制任務的啟停。


END


文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/129946.html

相關文章

  • 當企業咨詢遇上云服務:傳統企業的云之

    摘要:談到德勤與亞馬遜達成戰略合作之后的進展情況,德勤中國云服務主管合伙人劉俊龍向趣味科技透露,截至目前為止,德勤已經攜手,共同為二三十家大型企業提供了各種各樣的數字化轉型和云服務的落地,并且已經初見成效。蜀道之難,難于上青天!唐代大詩人李白這句膾炙人口的詩詞,相信也是不少傳統企業上云時的心情寫照。不過在德勤與亞馬遜AWS的攜手合作之下,傳統企業在上云與數字化轉型時遭遇的諸多痛點,正在被逐一解決。...

    figofuture 評論0 收藏0
  • 阿里云如何打破Oracle遷移上云的壁壘

    摘要:摘要第九屆中國數據庫技術大會,阿里云數據庫產品專家蕭少聰帶來以阿里云如何打破遷移上云的壁壘為題的演講。于是,阿里云給出了上面的解決方案。 摘要: 2018第九屆中國數據庫技術大會,阿里云數據庫產品專家蕭少聰帶來以阿里云如何打破Oracle遷移上云的壁壘為題的演講。Oracle是指數據庫管理系統,面對Oracle遷移上云的壁壘,阿里云如何能夠打破它呢?本文提出了Oracle 到云數據庫P...

    chavesgu 評論0 收藏0
  • 公有云發展趨勢:與國產操作系統的結合

    摘要:另一方面,公有云規模較大,可以發揮規模經濟效益。機構預計,未來幾年全球公有云市場規模將保持的復合增長率。云計算的發展----上云成為共識從2006年8月AWS對外提供亞馬遜彈性云至今,全球云計算市場已經走過十一個年頭。國內市場,如果從2010年阿里云對外公測算起,已經發展到第八年。歷經近十年發展,云計算市場已經度過早期教育客戶階段。上云成為絕大多數企業的共識。隨著國內云計算需求開始涌現,云計...

    用戶83 評論0 收藏0
  • 健康云之戰:誰將脫穎而出?

    摘要:但是,目前人們可能還沒有完全搞清楚健康云的價值主張。我更傾向于稱其為健康云之戰。微軟亞馬遜和谷歌脫穎而出,也同樣鶴立雞群。與此同時,健康云提供商也不能閑著。為此,健康云爭奪權力的游戲才剛剛開始。為了利用蓬勃發展的數字健康生態系統,幾家大型科技公司都推出了健康云。但是,目前人們可能還沒有完全搞清楚健康云的價值主張。在最近的一次活動中,我目睹了一場小組討論,頂尖科技公司的高級管理人員就醫療計劃展...

    Amio 評論0 收藏0
  • 云網融合,擴展運營商B2B商業邊界

    摘要:華為云網融合解決方案使能運營商增長運營商基礎網絡設施優勢明顯,網絡覆蓋廣接入媒介全機房光纜豐富。目前,在中國歐洲及東南亞等全球多個國家與地區,華為已與多家運營商在云網融合領域開展商業合作,支撐運營商產品升級,提升運營商競爭力。企業ICT需求4大變化Gartner調研顯示,企業上云不是一蹴而就,而是根據應用復雜性和上云后的業務風險,由低至高逐步將企業應用遷移至云上。隨著企業上云的不斷深入,業務...

    Lemon_95 評論0 收藏0

發表評論

0條評論

IT那活兒

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<