如何快速将测试数据插入 BigQuery?
How can I quickly insert test data into BigQuery?
将大量测试数据插入 BigQuery 可能会很慢,尤其是当数据的确切细节并不重要并且您只想测试 query/data 的特定形状的性能时。
无需等待大量 GB 数据上传到 GCS 即可实现此目的的最佳方法是什么?
一般来说,我建议测试少量数据(以节省金钱和时间)。
如果你真的需要大量的测试数据,有几种选择。
如果您关心数据的确切结构:
- 您可以将数据并行上传到 GCS(如果单次传输速度慢是瓶颈)。
- 您可以创建一个短期的 Compute Engine VM 并使用它将测试数据插入 GCS(这可能会提供比本地 link 更高的吞吐量)。这有点复杂,但为您提供了一个非常快速的途径来插入由脚本即时生成的数据。
如果您只想试用该平台的功能,可以使用许多 public 数据集进行实验。看:
https://cloud.google.com/bigquery/docs/sample-tables
如果你只是需要大量的数据和重复的行是acceptable:
您可以通过上传到 GCS 来插入适量的数据。然后通过查询 table 并将结果附加到原始文件来复制它。您还可以使用带有复制和 --append 标志的 bq 命令行工具来获得类似的结果,而无需为查询付费。
此方法有一点需要注意——要获得类似于典型生产使用的性能,您需要以相当大的块加载数据。对于 400GB 的用例,我会考虑在一次导入中从 250MB - 1GB 的数据开始。许多微小的插入操作会减慢速度(最好通过流处理 API,它会为您进行适当的批处理)。
将大量测试数据插入 BigQuery 可能会很慢,尤其是当数据的确切细节并不重要并且您只想测试 query/data 的特定形状的性能时。
无需等待大量 GB 数据上传到 GCS 即可实现此目的的最佳方法是什么?
一般来说,我建议测试少量数据(以节省金钱和时间)。
如果你真的需要大量的测试数据,有几种选择。
如果您关心数据的确切结构:
- 您可以将数据并行上传到 GCS(如果单次传输速度慢是瓶颈)。
- 您可以创建一个短期的 Compute Engine VM 并使用它将测试数据插入 GCS(这可能会提供比本地 link 更高的吞吐量)。这有点复杂,但为您提供了一个非常快速的途径来插入由脚本即时生成的数据。
如果您只想试用该平台的功能,可以使用许多 public 数据集进行实验。看: https://cloud.google.com/bigquery/docs/sample-tables
如果你只是需要大量的数据和重复的行是acceptable:
您可以通过上传到 GCS 来插入适量的数据。然后通过查询 table 并将结果附加到原始文件来复制它。您还可以使用带有复制和 --append 标志的 bq 命令行工具来获得类似的结果,而无需为查询付费。
此方法有一点需要注意——要获得类似于典型生产使用的性能,您需要以相当大的块加载数据。对于 400GB 的用例,我会考虑在一次导入中从 250MB - 1GB 的数据开始。许多微小的插入操作会减慢速度(最好通过流处理 API,它会为您进行适当的批处理)。