有没有办法像在 SQL 服务器中那样在 BigQuery 中模拟数据?
Is there a way to simulate data in BigQuery as in SQL Server?
在SQLServer 2016中有一个名为wide-world-importers的数据库,我们可以通过调用SQLServer内置的存储过程模拟数据生成数百万条数据。
有没有办法在 google-大查询中做同样的事情?或者有没有办法根据我的要求在 google-big query 中模拟数据?或者甚至有一个地方可以获取包含数百万条记录的示例数据集,例如 HR、Finance、Sales 等以进行大查询; public big-query 中的数据集不满足我的要求?
as is
下方 运行
CREATE TEMPORARY FUNCTION gender(num STRING)
RETURNS STRING
LANGUAGE js AS """
var n = parseInt(num);
if (Math.floor(Math.sin(n*n)) == 0) return "f"
return "m";
""";
CREATE TEMPORARY FUNCTION department(num STRING)
RETURNS STRING
LANGUAGE js AS """
var n = parseInt(num);
return Math.floor(Math.sin(n) * 3 + 3)
""";
WITH sequence AS (
SELECT FORMAT("%07d", ROW_NUMBER() OVER()) AS num
FROM UNNEST((SELECT SPLIT(FORMAT("%1000000s", ""),"") AS h FROM (SELECT NULL))) AS pos
)
SELECT
num AS id,
CONCAT("FN ", num) AS first_name,
CONCAT("LN ", num) AS last_name,
gender(num) AS gender,
CONCAT("Department ", department(num)) AS department
FROM sequence
ORDER BY num
请耐心等待 运行 - 您可以将 %1000000s
中的 1000000 更改为较低的数字(它在结果中设置行数)以使其在玩它时更快
这只是如何免费生成您自己的数据的超级简单示例
您可以将此示例扩展到您有的任何特定要求
这里有无尽的机会——比如控制不同属性的分布、嵌套数据——记录/重复等。
如果对语法或函数有任何疑问,您可以查看Standard SQL Reference
另外注意:我这里用的是最近介绍的Scalar User-Defined Functions
享受并希望这对您有所帮助!
在SQLServer 2016中有一个名为wide-world-importers的数据库,我们可以通过调用SQLServer内置的存储过程模拟数据生成数百万条数据。
有没有办法在 google-大查询中做同样的事情?或者有没有办法根据我的要求在 google-big query 中模拟数据?或者甚至有一个地方可以获取包含数百万条记录的示例数据集,例如 HR、Finance、Sales 等以进行大查询; public big-query 中的数据集不满足我的要求?
as is
下方 运行
CREATE TEMPORARY FUNCTION gender(num STRING)
RETURNS STRING
LANGUAGE js AS """
var n = parseInt(num);
if (Math.floor(Math.sin(n*n)) == 0) return "f"
return "m";
""";
CREATE TEMPORARY FUNCTION department(num STRING)
RETURNS STRING
LANGUAGE js AS """
var n = parseInt(num);
return Math.floor(Math.sin(n) * 3 + 3)
""";
WITH sequence AS (
SELECT FORMAT("%07d", ROW_NUMBER() OVER()) AS num
FROM UNNEST((SELECT SPLIT(FORMAT("%1000000s", ""),"") AS h FROM (SELECT NULL))) AS pos
)
SELECT
num AS id,
CONCAT("FN ", num) AS first_name,
CONCAT("LN ", num) AS last_name,
gender(num) AS gender,
CONCAT("Department ", department(num)) AS department
FROM sequence
ORDER BY num
请耐心等待 运行 - 您可以将 %1000000s
中的 1000000 更改为较低的数字(它在结果中设置行数)以使其在玩它时更快
这只是如何免费生成您自己的数据的超级简单示例
您可以将此示例扩展到您有的任何特定要求
这里有无尽的机会——比如控制不同属性的分布、嵌套数据——记录/重复等。
如果对语法或函数有任何疑问,您可以查看Standard SQL Reference
另外注意:我这里用的是最近介绍的Scalar User-Defined Functions
享受并希望这对您有所帮助!