标签: gdelt

使用Java API的OrientDB 2.0.0批量加载是CPU绑定的

我正在使用OrientDB 2.0.0来测试其对批量数据加载的处理.对于样本数据,我使用的是谷歌GDELT项目的GDELT数据集(免费下载).我正在使用Java API将总共~80M的顶点(每个具有8个属性)加载到空白图数据库的V类中.

数据在一个制表符分隔的文本文件(US-ASCII)中,所以我只是从上到下阅读文本文件.我使用配置数据库OIntentMassiveInsert(),并将事务大小设置为每次提交25,000条记录.

我使用的是带有32G RAM和SSD的8核机器,所以硬件不应该是一个因素.我正在使用Java 8r31运行Windows 7 Pro.

前20M(左右)记录很快进入,每批25,000个记录不到2秒.我很受鼓舞.

然而,随着该过程继续运行,插入速率显着减慢.减速似乎非常线性.以下是输出日志中的一些示例行:

Committed 25000 GDELT Event records to OrientDB in 4.09989189 seconds at a rate of 6097 records per second. Total = 31350000
Committed 25000 GDELT Event records to OrientDB in 9.42005182 seconds at a rate of 2653 records per second. Total = 40000000
Committed 25000 GDELT Event records to OrientDB in 15.883908716 seconds at a rate of 1573 records per second. Total = 45000000
Committed 25000 …
Run Code Online (Sandbox Code Playgroud)

bulkinsert orientdb gdelt

6
推荐指数
0
解决办法
2128
查看次数

了解 Google BigQuery GDELT GKG 2.0 中的主题

我正在使用 Google bigquery 来分析 GDELT GKG 2.0数据集,并希望更好地了解如何基于主题(或 V2Themes)进行查询。该文件提到了“分类清单”表格,但到目前为止,我在寻找名单是不成功的。

以下 asesome博客提到您可以使用世界银行分类法等来缩小搜索范围。我的目标是找到所有提到“干旱/水太少”的项目,所有提到“洪水/水太多”的项目以及所有提到“质量差/水太脏”的项目,这些项目在子上具有地理匹配国家层面。

到目前为止,我已经能够得到一个不同主题的列表,但这并不广泛,我没有得到它的层次结构/结构。

SELECT
  DISTINCT theme
FROM (
  SELECT
    GKGRECORDID,
    locations,
    REGEXP_EXTRACT(themes,r'(^.[^,]+)') AS theme,
    CAST(REGEXP_EXTRACT(locations,r'^(?:[^#]*#){0}([^#]*)') AS NUMERIC) AS location_type,
    REGEXP_EXTRACT(locations,r'^(?:[^#]*#){1}([^#]*)') AS location_fullname,
    REGEXP_EXTRACT(locations,r'^(?:[^#]*#){2}([^#]*)') AS location_countrycode,
    REGEXP_EXTRACT(locations,r'^(?:[^#]*#){3}([^#]*)') AS location_adm1code,
    REGEXP_EXTRACT(locations,r'^(?:[^#]*#){4}([^#]*)') AS location_adm2code,
    REGEXP_EXTRACT(locations,r'^(?:[^#]*#){5}([^#]*)') AS location_latitude,
    REGEXP_EXTRACT(locations,r'^(?:[^#]*#){6}([^#]*)') AS location_longitude,
    REGEXP_EXTRACT(locations,r'^(?:[^#]*#){7}([^#]*)') AS location_featureid,
    REGEXP_EXTRACT(locations,r'^(?:[^#]*#){8}([^#]*)') AS location_characteroffset,
    DocumentIdentifier
  FROM
    `gdelt-bq.gdeltv2.gkg_partitioned`,
    UNNEST(SPLIT(V2Locations,';')) AS locations,
    UNNEST(SPLIT(V2Themes,';')) AS themes
  WHERE
    _PARTITIONTIME >= "2018-08-20 00:00:00"
    AND _PARTITIONTIME < "2018-08-21 00:00:00" )
WHERE
  (location_type = …
Run Code Online (Sandbox Code Playgroud)

google-bigquery gdelt

5
推荐指数
2
解决办法
1728
查看次数

Bigquery标准方言REGEXP_REPLACE输入类型

我正在使用本教程使用GDELT数据库探索Google Biguery的功能,但是sql方言处于“传统”状态,我想使用标准方言。

在传统方言中:

SELECT
  theme,
  COUNT(*) AS count
FROM (
  SELECT
    REGEXP_REPLACE(SPLIT(V2Themes,';'), r',.*',"") theme
from [gdelt-bq:gdeltv2.gkg]
where DATE>20150302000000 and DATE < 20150304000000 and V2Persons like '%Netanyahu%'
)
group by theme
ORDER BY 2 DESC
LIMIT 300
Run Code Online (Sandbox Code Playgroud)

当我尝试翻译成标准方言时:

SELECT
  theme,
  COUNT(*) AS count
FROM (
  SELECT
    REGEXP_REPLACE(SPLIT(V2Themes,';') , r',.*', " ") AS theme
    FROM
      `gdelt-bq.gdeltv2.gkg`
    WHERE
      DATE>20150302000000
      AND DATE < 20150304000000
      AND V2Persons LIKE '%Netanyahu%' )
  GROUP BY
    theme
  ORDER BY
    2 DESC
  LIMIT
    300
Run Code Online (Sandbox Code Playgroud)

它会引发以下错误:

No matching signature …
Run Code Online (Sandbox Code Playgroud)

regex google-bigquery gdelt

4
推荐指数
1
解决办法
141
查看次数

使用 bigquery 从 GDELT 收集数据

我正在尝试根据 gdelt 数据库中具有特定客串代码的所有事件构建一个经济指标。

因此,我们的想法是收集 1990 年至今的数据,看看经济合作如何根据某些词语的新闻出现而变化。具体来说,CAMEO 代码为 0211、0311、061、1011 和 1211。

我的问题是如何提取这些特定客串代码的数据。如果你能指导我找到任何来源,那将会有很大的帮助。

一个人建议我尝试使用 bigquery。老实说,到目前为止我还不知道如何导航 google bigquery 页面(我尽力了,可能来自非技术背景,这对我来说有点不知所措)。如果你们中的任何人可以帮助完成一个 Cameo 代码数据提取示例,那么我可以尝试其他事件。

编辑:我正在编辑以显示我所取得的进展以及运行查询时遇到的问题。

SELECT
   *
FROM
  [gdelt-bq:full.events]
WHERE
  Year >= 1979
  AND EventCode IN ('0211', '0311','061', '1011', '1211')
  AND Actor1CountryCode != Actor2CountryCode
Run Code Online (Sandbox Code Playgroud)

此查询在运行时将处理 228 GB,并且不包括两个国家/地区代码都为空的情况。它有超过 200 万行,我无法从 bigquery 平台将其下载为 csv 文件。

我需要帮助的部分如下,有什么方法可以获取满足以下条件的每个事件代码的事件总数

  1. Actor1Countrycode 和 Actor2CountryCode 应该不同,除非它们为 null
  2. 每月对满足上述条件的每个事件代码进行计数。

PS:您可以运行下面答案中Ben P给出的代码来查看数据库中列的数量和类型。

Edit2:我正在尝试编写另一个查询,其中具有指定代码的事件的 AvgTone 大于该特定月份中所有事件的 AvgTone 平均值。任何有关如何编写此内容的线索都会非常有帮助。假设我添加一个 WHERE 子句,其中 AvgTone 大于该特定时期(本例中为 MonthYear)的所有事件的 AvgTone 平均值。我的疑问是如何以查询格式编写它。

SELECT
  MonthYear,
  COUNT(*)
FROM
  [gdelt-bq:full.events]
WHERE
  EventCode IN ('0211',
    '0311',
    '061')
  AND …
Run Code Online (Sandbox Code Playgroud)

google-bigquery gdelt

4
推荐指数
1
解决办法
4460
查看次数

带有空值的 MySQL 浮点列 ERROR 1265 (01000):列的数据被截断

我正在尝试将GDELT数据集存储在 MySQL 数据库(MySQL 8.0、RHEL 7)中,但它返回了 ERROR 1265(01000),因为一个浮点列中有空值:

CREATE TABLE event (
    GlobalEventID INT NOT NULL,
    Day INT NOT NULL,
    MonthYear MEDIUMINT NOT NULL,
    Year SMALLINT NOT NULL,
    FractionDate FLOAT NOT NULL,
    Actor1Code TINYTEXT NULL,
    Actor1Name TINYTEXT NULL,
    Actor1CountryCode TINYTEXT NULL,
    Actor1KnownGroupCode TINYTEXT NULL,
    Actor1EthnicCode TINYTEXT NULL,
    Actor1Religion1Code TINYTEXT NULL,
    Actor1Religion2Code TINYTEXT NULL,
    Actor1Type1Code TINYTEXT NULL,
    Actor1Type2Code TINYTEXT NULL,
    Actor1Type3Code TINYTEXT NULL,
    Actor2Code TINYTEXT NULL,
    Actor2Name TINYTEXT NULL,
    Actor2CountryCode TINYTEXT NULL,
    Actor2KnownGroupCode TINYTEXT NULL,
    Actor2EthnicCode TINYTEXT NULL,
    Actor2Religion1Code TINYTEXT …
Run Code Online (Sandbox Code Playgroud)

mysql gdelt

1
推荐指数
1
解决办法
215
查看次数

标签 统计

gdelt ×5

google-bigquery ×3

bulkinsert ×1

mysql ×1

orientdb ×1

regex ×1