Google Big Query - 从GCS加载文件失败,未找到"未找到",但该文件存在

时间:2016-12-18 10:59:51

标签: google-bigquery google-cloud-storage

我们经常会遇到一个奇怪的问题。

我们有一个从源获取文件并将其加载到GCS的过程。比而且,只有当文件成功上传时,我们才会尝试将其加载到BigQuery表中并获取错误 "未找到:Uris uris列表(可能被截断):json:file_name:..."。

经过深入调查,一切都应该没问题,我们也不知道发生了什么变化。在时间范围内,作业中的文件存在于云存储中,并在BigQuery尝试获取之前2分钟上传到GCS。

需要说我们将每个文件作为整个批量字典加载到云存储中,如gs://<bucket>/path_to_dir/*。那仍然支持​​吗? 此外,文件大小有点小 - 从几个字节到KB。那有关系吗?

检查的工作ID:
load_file_8e4e16f737084ba59ce0ba89075241b7 load_file_6c13c25e1fc54a088af40199eb86200d

2 个答案:

答案 0 :(得分:0)

云存储一致性的已知问题

正如Felipe所说,这确实与云存储的已知问题有关。 Google Cloud Storage Incident #16036自2016年12月20日起已被解决。Issue 738也跟踪了此问题。虽然云存储列表操作为eventually consistent,但此事件显示操作返回一致结果的过度延迟。

处理云存储不一致

虽然这是一个孤立的事件,但是有一些处理这种不一致的方法是一个好习惯。在相关公共问题的comment #10中可以找到两个这样的建议。

  1. 如果失败,请重试加载作业。
  2. 验证云存储结果是否与预期一致
      

    验证BigQuery是否处理了预期的文件数(和总大小)。您可以从作业元数据中获取此信息。

  3. 仍然有意想不到的结果

    如果您再次遇到此类问题并采取相应的错误处理措施,我建议您先咨询Google Cloud Status DashboardBigQuery public issue tracker,了解显示类似症状的现有报告。如果不存在,请在问题跟踪器上提交新问题。

答案 1 :(得分:0)

解决方案是从Multi Region Bucket(在启用Region类型之前设置)移动到Region。 自从我们搬家以来,我们从未遇到过这个问题。