从 GDELT 数据库计算事件(抗议)的数量

Counting number of events (protests) from GDELT database

我的目标是获取 2004 年至 2020 年间墨西哥每月报告的抗议活动数量。我正在使用 Google BigQuery 从 GDELT 数据库中获取此数据。

我的问题是,当 运行 在不同的 table 上进行相同的查询时,我得到了不同的结果。

select
    GlobalEventID
    ,MonthYear
    ,ActionGeo_Long
    ,ActionGeo_Lat
from
    gdelt-bq.full.events_partitioned -- Returns 34650 records
    --gdelt-bq.gdeltv2.events_partitioned -- Returns 93551 records
where
    _PARTITIONTIME >= TIMESTAMP('2004-01-01')
    and _PARTITIONTIME <= TIMESTAMP('2020-12-31')
    and EventRootCode = '14'
    and ActionGeo_CountryCode = 'MX'
;

你能告诉我应该使用哪个 table 以及为什么查询结果各不相同吗?

根据 the GDELT documentationgdeltv2 包含更多事件,并且是最近几年的更新。然而,他们可能还没有完成将其重新填充到 1979 年。

此查询仅显示存在于两个 table 中的 93563 个事件 ID 中的 20340 个,因此对于如此大的时间范围,您可以使用 2015 年之前的 v1 table 获得最佳结果,并且v2 table 从 2015 年开始。

SELECT COUNT(*)
FROM gdelt-bq.gdeltv2.events_partitioned g2
JOIN gdelt-bq.full.events_partitioned g1 ON g1.GlobalEventID = g2.GlobalEventID
WHERE g2._PARTITIONTIME >= TIMESTAMP('2004-01-01')
AND   g2._PARTITIONTIME <= TIMESTAMP('2020-12-31')
AND   g2.EventRootCode = '14'
AND   g2.ActionGeo_CountryCode = 'MX'
AND   g1._PARTITIONTIME >= TIMESTAMP('2004-01-01')
AND   g1._PARTITIONTIME <= TIMESTAMP('2020-12-31')
AND   g1.EventRootCode = '14'
AND   g1.ActionGeo_CountryCode = 'MX'