簡體   English   中英

如何將 Databricks 表復制到新訂閱中的另一個 Databricks 以保留歷史記錄(時間戳和版本)?

[英]How can Databricks tables be copied retaining history (timestamp and version) to another Databricks in a new subscription?

目前,我正在將舊的 Databricks 環境遷移到新環境。 由於存在大量依賴關系,目標是並行運行舊環境和新環境,直到所有測試都通過。 因此,我試圖將 Databricks 表從舊環境復制到新環境。 為了嘗試成功復制表,我嘗試將 Databricks 表從舊訂閱導出到帳戶存儲,然后從帳戶存儲將它們導入新的 Databricks 環境中。

到目前為止,我嘗試復制它們:

  1. df.write.format("delta").save(<mount_path>), spark.read.format("delta").load(<mount_path>), df.write.format("delta").option("path", <location>).saveAsTable(<table_name>)
  2. DeltaTable.forPath(spark, <location>)
  3. dbutils.fs.cp(<from>, <to>, <recurse>)
  4. sh cp --preserve=all -R <from> <to>

正如我所料,第一個無法工作,因為轉換為數據幀,這使您丟失了有關歷史的信息。 第二種方法沒有將 DeltaTable 保存到 Databricks 的保存方法。 對於第三個和第四個選項,都保留版本歷史編號但不保留時間戳,它們會使用命令執行時的時間戳進行更新。

因此,我希望任何人都可以幫助我找到一種解決方案,將數據塊中的 DeltaTables 從一個訂閱復制到另一個訂閱,同時保留整個歷史記錄。 因此版本號和時間戳。

感謝所有幫助和反饋。

因為你在 Azure 上,你可以使用文檔中描述的 Azure 數據工廠的數據復制工具 - 增量表只是容器中的文件,這個工具可以復制數據,並且可能比使用 Databricks 集群更便宜做復制...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM