提问者:小点点

根据上次修改日期从GCP云存储(avro文件)中获取数据


我正在从GCP云存储到Bigquery获取Avro格式的最新数据。我遇到了这个展示如何做到这一点的资源。问题

  1. 是否可以获取最新修改的Avro文件?
  2. 是否有来自GCP存储桶的元数据文件可以帮助解决此问题?

共1个答案

匿名用户

您可以使用此命令对文件进行排序以从存储桶中获取最新GCS文件,您可以根据要求更改条件。

gsutil ls -l gs://[bucket-name]/ | sort -k 2 | tail -n 2

要特别从GCSBucket中获取最新的. avro文件,可以考虑以下代码:

from google.cloud import storage
import re

storage_client = storage.Client()
bucket = storage_client.get_bucket('bucket-name')

files = bucket.list_blobs()    
fileList = [file.name for file in files if '.avro' in file.name]
     
latestFile = fileList[0]
latestTimeStamp = bucket.get_blob(fileList[0]).updated
            
for i in range(len(fileList)):
        
        timeStamp = bucket.get_blob(fileList[i]).updated
        
        if timeStamp > latestTimeStamp:
            latestFile = fileList[i]
            latestTimeStamp = timeStamp
    
print(latestFile)

要了解有关对象元数据的更多信息,您可以参考本文档。