DataWorksV2.0新增資料來源典型問題場景

付帥發表於2018-11-02

DataWorks新增資料來源典型問題可分為連通性問題、引數問題、許可權問題三類。

連通性問題

連通性問題主要體現為測試連通性失敗。

  1. 問題現象:新增MySQL資料來源時,網路型別選擇為經典網路,點選測試連通性時失敗報錯:測試連線失敗,測試資料來源聯通性失敗,連線資料庫失敗,資料庫連線串…異常訊息:Communications link failure. The last packet sent successfully to the server was 0 milliseconds ago.The dirver has not received any packets from the server.
    154089076014216_zh-CN.png

    解決方案:出現上述報錯通常都是網路連通性問題導致。可檢查您的網路是否可達,以及防火牆對這個IP/埠是否有相關限制,安全組是否已配置對IP/埠放通。

  2. 問題現象:新增阿里雲MongoDB資料來源,測試資料來源連通性失敗,報錯:error message: Timed out after 5000 ms while waiting for a server that matches ReadPreferenceServerSelector{readPreference=primary}. Client view of cluster state is {type=UNKNOWN, servers=[..] error with code: PROJECT_DATASOURCE_CONN_ERROR.
    154089076014217_zh-CN.png

    問題解法:處理此類問題時首先需要確定您的DataWorks專案處於哪個region。使用阿里雲MongoDB,需要確定網路型別是否為VPC,VPC環境下MongoDB不支援資料連通性測試(使用方案一可規避此問題)。

    VPC環境下阿里雲MongoDB資料同步有兩種方案:

    • 方案一:通過公網進行資料同步
      1. 資料來源配置時,資料來源型別選擇有公網IP
      2. VPC環境下,您的MongoDB需要開通公網訪問。
      3. 在MongoDB上放行相關白名單IP,參考新增白名單
      4. 進行資料連通性測試。
    • 方案二:配置自定義資源組,從內網進行資料同步
      1. 準備一臺和MongoDB同區域、同網路的ECS作為排程資源,參見新增排程資源
      2. 將這臺ECS的IP加入MongoDB的白名單或者安全組。
      3. 資料來源測試連通時直接確定儲存(不支援測試連通性)。
      4. 修改資源組為自定義排程資源,測試執行。
    說明 請務必新增相應的白名單。
  3. 問題現象:新增自建MongoDB資料來源,測試資料來源連通性失敗。
    問題解法
    1. 資料來源配置時,資料來源型別選擇有公網IP
    2. 如果是VPC環境下ECS上自建的MongoDB,需開通公網訪問。
    3. 確保網路和埠之間是否能連通,檢查 ECS 的防火牆以及安全組設定
    4. 確保自建的資料庫涉及的安全訪問限制,許可權的限制和能否遠端登入的情況。
    5. 確認訪問地址host:port填寫正確,資料庫名和使用者名稱填寫正確。
      說明

      新增MongoDB資料來源時,使用的使用者名稱必須是使用者需要同步的這張表所在的資料庫建立的使用者名稱,不能用root。

      例如需要匯入name表,name表在test庫,則此處資料庫名稱填寫為test。

      使用者名稱為指定資料庫中建立的使用者名稱,不要使用root。例如之前指定的是test庫,則使用者名稱需使用test資料庫中建立的賬戶。

  4. 問題現象:VPC環境下新增Redis資料來源,測試資料來源連通性失敗,報錯如下。
    154089076014226_zh-CN.png

    問題解法:Redis新增資料來源時如果沒有公網IP,需要保證資料來源和DataWorks專案區域一致,通過新增排程資源完成資料來源的打通。

  5. 問題現象:新增MongoDB資料來源,已經配置白名單,測試資料來源連通性仍然失敗,報錯:error message: Timed out after 5000 ms while waiting for a server that matches ReadPreferenceServerSelector{readPreference=primary}

    問題解法:VPC網路的MongoDB資料來源和Dataworks的預設資源組在內網上是不通的,所以無法直接進行同步任務,需要通過公網或者自定義資源組的方式進行連通。

  6. 問題現象:Docker中安裝的MySQL如何新增到資料來源?

    問題解法:Docker中安裝的MySQL直接用伺服器的公網IP組成的JDBC地址是無法連線的,連通性測試無法通過。您需要將MySQl的埠對映到宿主機上,使用對映出的埠連結。

  7. 問題現象:配置Redis資料來源失敗,測試資料來源連通性失敗報錯:error message: java.net.SocketTimeoutException: connect timed out.

    問題解法:目前DataWorks不支援Redis通過內網新增資料來源。建議您為Redis資料來源開通公網訪問能力。資料來源配置時,選擇“有公網 IP”,通過公網連線。

  8. 問題現象新增阿里雲RDS資料來源時,測試連通性不通。:
    問題解法
    1. 當 RDS 資料來源測試連通性不通時,需要到自己的 RDS 上新增資料同步機器 IP 白名單,參考新增白名單
      說明 注意:若使用自定義資源組排程 RDS 的資料同步任務,必須把自定義資源組的機器 IP 也加到 RDS 的白名單中 。
    2. 確保新增的資訊正確:RDS例項ID和RDS例項主帳號ID、使用者名稱、密碼資料庫名必須確保正確。
  9. 問題現象:新增自建ECS中的MySQL資料來源時,資料來源測試連通性不通。
    問題解法
    1. 確保網路和埠之間是否能連通,檢查 ECS 的防火牆以及安全組設定。
    2. 確保自建的資料庫涉及的安全訪問限制,許可權的限制和能否遠端登入的情況。
    3. 確保新增的資訊正確:使用者名稱、密碼、JDBC URL中的 IP 地址和埠必須確保正確。
    4. 在 VPC 的環境下購買的 ECS 只能用指令碼模式執行任務,在新增資料來源時測試連通性不能成功 。購買 ECS 後,您可以新增自定義資源,將同步任務下發到相應的資源組執行。

引數問題

  1. 問題現象:新增MySQL型別資料來源時,點選測試連通性報錯:測試連線失敗,測試資料來源連通性失敗,連線資料庫失敗…異常訊息:No suitable direver found for...
    154089076014249_zh-CN.png

    問題解法:出現上述情況可能是JDBC URL格式填寫錯誤導致,JDBC URL在填寫時,請不要在URL中新增空格或任何特殊字元。正確格式為:jdbc:mysql://ServerIP:Port/Database

  2. 問題現象:使用使用者名稱root新增MongoDB資料來源時報錯。

    問題解法:新增MongoDB資料來源時,使用的使用者名稱必須是使用者需要同步的這張表所在的資料庫建立的使用者名稱,不能用root。例如需要匯入name表,name表在test庫,則此處資料庫名稱填寫為test。使用者名稱為指定資料庫中建立的使用者名稱,不要使用root。例如之前指定的是test庫,則使用者名稱需使用test資料庫中建立的賬戶。

  3. 問題現象:新增RDS資料來源失敗,資料庫連線不上,報錯如下。
    154089076014249_zh-CN.png

    問題解法:需要檢查填寫的UID是否為是子賬號的UID,這裡要填寫RDS所屬主賬號的UID才可以成功新增資料來源。

  4. 問題現象:加ODPS預設資料來源時報測試連通性失敗。

    問題解法:ODPS預設資料來源無需新增,預設為odps_fisrt。

  5. 問題現象:DataWorks的資料來源支援HybridDB for PostgreSQL嗎?

    問題解法:支援,新增時選擇關係型資料庫PostgreSQL即可。

  6. 問題現象:沒有外網地址的DRDS例項,配置資料來源的時候,能否支援將例項的內網地址,對映為自定義的域名?

    問題解法:需要嚴格按照格式來,目前不支援域名對映的方式。

  7. 問題現象:新增RDS資料來源時為什麼白名單已新增,依然報錯提示user not exist ip white list reference

    問題解法:出現這種情況通常是由於使用者名稱輸入錯誤。您可以參考建立賬號和資料庫檢查自己輸入的使用者名稱是否正確。

許可權問題

  1. 問題現象:新增ADS資料來源時,測試資料連通性報錯:連線資料庫失敗, 資料庫連線串:${jdbcUrl}, 使用者名稱:XXXXXX, 異常訊息:You don`t have privilege for connecting database `dw`, userId=RAM$XXX, schemaId=XX

    問題解法:首先,您需要檢查在資料來源中填寫的子賬號是否有ADS的訪問許可權。分析型資料庫使用者基於阿里雲帳號進行認證,使用者建立的資料庫屬於該使用者,使用者也可以授權給其他使用者訪問其資料庫下的表,所以連線的使用者是需要在ADS上進行授權的,具體的說明參見使用者賬號型別與使用者管理

  2. 問題現象:子帳戶無許可權檢視資料來源,無法建立資料來源,提示您沒有許可權進行此操作

    問題解法:只有專案管理員許可權的RAM子賬戶才可以增刪改資料來源。


相關文章