如何計算DBFS (Databricks file system) S3 API調用開銷

了解如何計算DBFS (Databricks file system) S3 API調用開銷。

寫的亞當Pavlacka

最後發布時間:2022年3月8日

DBFS S3桶的成本主要由API調用的數量驅動,其次由存儲成本驅動。您可以使用AWS CloudTrail日誌創建一個表,計算API調用的數量,從而計算API請求的確切成本。

  1. 獲取以下信息。您可能需要聯係AWS管理員來獲取。
    • 涉及List、Put、Copy或Post的調用的API調用成本(示例腳本使用每千次調用的價格:0.005/1000)
    • 涉及Head、Get或Select的API調用開銷(如下,0.0004/1000)
    • Databricks控製平麵帳戶的帳戶ID(下麵是414351767826)
  2. 將CloudTrail日誌複製到S3桶中,使用以下Apache Spark代碼讀取日誌並創建表:
    % python spark.read.json(“s3: / / dbc-root-cloudwatch /*/*/*/*/*/*/*"). createOrReplaceTempView(“f_cloudwatch”)
  3. 代替accountID和API調用成本到下麵的查詢。該查詢獲取在特定時間間隔內收集的CloudTrail結果,計算Databricks控製平麵帳戶進行的API調用的數量,並計算成本。
    %sql select Records.userIdentity。accountId,記錄。eventName, count(*) as api_calls, (case當Records。例如“列表%”或“記錄”。eventName,例如“Put%”或“Records”。例如“複製%”或記錄。eventName像'Post%'然後0.005/1000當記錄。eventName像'Head%'或Records。例如“獲取%”或“記錄”。* count(*) as api_cost from (Select explosion (Records) as Records from f_cloudwatch where Records is not null)——where Records. useridentity . accountid = '414351767826' group by 1,2 order by 4 desc limit 10;
  4. 運行查詢生成一個表。結果表顯示了API調用的數量和這些調用的開銷。

額外的API成本通常是由於流作業的檢查點目錄。Databricks建議刪除舊的檢查點目錄,如果它們不再被引用。