You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Blob Service Client API获取存储Delta table JSON数据的Blob的最后修改时间?

Answer

Absolutely, you can retrieve the last modified time of Blobs containing Delta table JSON data using the Blob Service Client API—here's how to do it effectively:

Core Approach

Delta tables store their metadata (like transaction logs in the _log directory) and data files as Blobs in your storage account. The Blob Service Client lets you access Blob-level properties, including the last_modified timestamp, which is exactly what you need. This works differently from Databricks' metadata_file_modification_time (which injects this metadata as a column during ingestion), but it achieves the same goal directly at the storage layer.

Step-by-Step Implementation (Python Example)

First, install the Azure Storage Blob SDK if you haven't already:

pip install azure-storage-blob

Then use this code to fetch the last modified time:

from azure.storage.blob import BlobServiceClient

# Initialize Blob Service Client with your storage connection string
connection_string = "<your-storage-connection-string>"
blob_service_client = BlobServiceClient.from_connection_string(connection_string)

# Define your target container and Delta table base path
container_name = "<your-container-name>"
delta_table_base_path = "<path-to-your-delta-table>"  # e.g., "delta-tables/customer-data"

# Get the container client
container_client = blob_service_client.get_container_client(container_name)

# Option 1: Get last modified time for a specific JSON Blob (e.g., a transaction log file)
target_blob_path = f"{delta_table_base_path}/_log/00000000000000000005.json"
blob_client = container_client.get_blob_client(target_blob_path)
blob_properties = blob_client.get_blob_properties()
print(f"Specific JSON Blob Last Modified: {blob_properties.last_modified}")

# Option 2: Find the most recently modified JSON Blob across the entire Delta table path
# Great if you want the latest modification time for any related JSON file
latest_modified_time = None
latest_blob_name = None

for blob in container_client.list_blobs(name_starts_with=delta_table_base_path):
    if blob.name.endswith(".json"):  # Filter to only JSON files
        if latest_modified_time is None or blob.last_modified > latest_modified_time:
            latest_modified_time = blob.last_modified
            latest_blob_name = blob.name

if latest_modified_time:
    print(f"Latest JSON Blob: {latest_blob_name}, Last Modified: {latest_modified_time}")
else:
    print("No JSON Blobs found in the specified Delta table path.")

Key Notes

  • If you're tracking the Delta table's overall last modification time, checking the _log directory's latest JSON file is a reliable proxy—this file corresponds to the most recent transaction on the table.
  • The last_modified value is a UTC datetime object; you can convert it to your local timezone using standard datetime utilities if needed.
  • Ensure your service account or principal has the Storage Blob Data Reader role (or equivalent permissions) to access Blob properties.

内容的提问来源于stack exchange,提问作者Roberto Tosta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 06:38:21