dataground/bq-jsonstore

此包的最新版本(0.2.1)没有可用的许可证信息。

0.2.1 2017-10-05 14:49 UTC

This package is auto-updated.

Last update: 2024-09-22 20:14:28 UTC


README

为任意版本化JSON项提供唯一键的不可变、追加存储。将BigQuery转换为无模式的不可变JSON数据存储,能够处理大型数据集。

安装

composer install dataground/bq-jsonstore

写入数据

$bqbs = new BigQueryBatchService(
    'myproject',
    new BigQueryClient([
      'projectId' => 'myproject',
      'keyFile' => json_decode(file_get_contents('my-gcp-key.json'), true)
  ])
);
  
$bqbs->start('mydataset');
$bqbs->add('mytable', 'something-unique', ['my-fancy-json-thing => ['foo' => 'bar']]);
$bqbs->delete('mytable', 'other-unique-thing');
$bqbs->flush();

读取数据 / 访问JSON属性

可以使用JSON_EXTRACT()和JSON_EXTRACT_SCALAR()函数在SQL中访问数据。有关更多信息,请参阅BigQuery文档。

已知问题

此方法不支持在一个版本中多次更新或删除具有相同uid的项。这样做会导致意外的结果。要更新或删除数据,请使用单独的版本。

待办事项

  • 在数据集创建时自动创建[表]_last视图

    • 要读取最新的合并数据,请使用自动创建的视图[mytable]_current(用于增量加载)。
    • 要读取数据的最后导入版本,请使用自动创建的视图[mytable]_last(用于完整加载)。
  • 防止每个版本中多次更新uid

  • 检查版本是否已存在

  • 添加单元测试

  • 更多文档