我们刚刚注意到大约09/27/2012我们的数据已经从上传csv文件(使用Java API)复制了。日志在上传期间没有显示错误,但我们已确认当天的大多数行已被复制(每行微秒有明显的时间戳)那天是否有任何已知的故障?我们不知道如何防止再次发生这种情况。
感谢任何反馈。
答案 0 :(得分:1)
首先:确保(通过检查加载作业历史记录),您实际上并未最终运行两次加载作业。如果您使用的是bq command line client:
# Show all jobs for your selected project
bq ls -j
# Will result in a list such as:
...
job_d8fc9d7eefb2e9243b1ffde484b3ab8a load FAILURE 29 Sep 00:35:26 0:00:00
job_4704a91875d9e0c64f7aaa8de0458696 load SUCCESS 29 Sep 00:28:45 0:00:05
...
# Find the load jobs pertaining to the time of data loading. To show detailed information
# about which files you ingested in the load job, run a command on the individual jobs
# that might have been repeats:
bq --format prettyjson show -j job_d8fc9d7eefb2e9243b1ffde484b3ab8a
答案 1 :(得分:1)
感谢您为我们调查此内容。很难(几乎不可能)相信数据在bigquery方面重复。那说什么我们看不到似乎表明不是这样。如上所述,我们在每一行都有一个微秒的时间戳值。对于引用的两个作业ID,我随机选择了一行,并确保在我们导入的所有数据中都是一个唯一值。当我运行相同的查询时,我在bigquery表中得到两个(相同的)行。
答案 2 :(得分:0)
我们不知道在导入过程中数据会被重复的原因。如果您向我们提供了更多信息,例如您的工作ID和项目ID,这将有助于诊断问题。
总的来说,正如迈克尔在回答中提到的那样,看到重复数据的人通常会两次运行相同的工作。 (请注意,如果作业失败,则不应以任何方式修改表格)。
防止这类冲突的方法是命名您的工作,因为我们在每个项目级别强制执行作业名称唯一性。例如,如果您每天进行一次加载,则可能需要将作业ID命名为“job_2012_10_08_load1”。这样,如果您尝试两次运行相同的作业,第二个将在启动时失败。