天天看點

DataHub 3月份新增功能介紹

背景

DataHub 3月份頁面新增功能介紹

新增設定TimeStampUnit機關

介紹

DataHub在進行資料同步時,針對timestamp類型的資料,由于下遊timestamp類型預設資料類型不一緻,datahub會對timestamp類型資料做轉轉換,以Datahub同步到Maxcompute為例,datahub同步預設timestamp類型為微秒,而Maxcompute預設為毫秒,是以在進行同步時DataHub會對timestamp類型資料轉化為毫秒同步到MaxCompute

DataHub 3月份新增功能介紹

問題

DataHub Timestamp類型實質是Long類型,是以使用者如果寫入時間是毫秒格式或者秒格式,DataHub也會預設按照微妙同步到下遊進行轉換,這樣就會造成下遊資料格式異常,如下圖所示,顯示為1970-01-19開頭

DataHub 3月份新增功能介紹

解決方案

  • 舊的解決方案是使用SDK重新設定TimestampUnit機關
  • SinkOdpsConfig config = (SinkOdpsConfig) datahubClient.getConnector(projectName, topicName, connectorId).getConfig(); //将TimeStampUnit類型設定為秒 config.setTimestampUnit(ConnectorConfig.TimestampUnit.SECOND);
    • 缺點:較為繁瑣,還需要重新寫代碼編譯運作,而且對于非程式設計開發人員不夠友好
  • 新的解決方案
    • 同步頁面上支援TimestampUnit設定,使用者可根據Timestamp字段格式進行設定,無需代碼,較為簡潔
    • DataHub 3月份新增功能介紹