跳转到主要内容

mobilitydb_datagen

MobilityDB随机数据生成函数

概览

扩展包名版本分类许可证语言
mobilitydb1.3.1GISPostgreSQLSQL
ID扩展名BinLibLoadCreateTrustReloc模式
1650mobilitydb否是是是否否-
1651mobilitydb_datagen否否否是否是-

Pigsty 1.3.1 bundles MobilityDB DataGen; upgrading from 1.2 to 1.3 requires upstream backup/restore.

版本

类型仓库版本PG 大版本包名依赖
EXTPIGSTY1.3.11817161514mobilitydbmobilitydb
RPMPIGSTY1.3.11817161514mobilitydb_$vpostgis36_$v
DEBPIGSTY1.3.11817161514postgresql-$v-mobilitydbpostgresql-$v-postgis-3
OS / PGPG18PG17PG16PG15PG14
el8.x86_64PIGSTY 1.3.1PIGSTY 1.3.1PIGSTY 1.3.1PIGSTY 1.3.1PIGSTY 1.3.1
el8.aarch64PIGSTY 1.3.1PIGSTY 1.3.1PIGSTY 1.3.1PIGSTY 1.3.1PIGSTY 1.3.1
el9.x86_64PIGSTY 1.3.1PIGSTY 1.3.1PIGSTY 1.3.1PIGSTY 1.3.1PIGSTY 1.3.1
el9.aarch64PIGSTY 1.3.1PIGSTY 1.3.1PIGSTY 1.3.1PIGSTY 1.3.1PIGSTY 1.3.1
el10.x86_64PIGSTY 1.3.1PIGSTY 1.3.1PIGSTY 1.3.1PIGSTY 1.3.1PIGSTY 1.3.1
el10.aarch64PIGSTY 1.3.1PIGSTY 1.3.1PIGSTY 1.3.1PIGSTY 1.3.1PIGSTY 1.3.1
d12.x86_64PIGSTY 1.3.1PIGSTY 1.3.1PIGSTY 1.3.1PIGSTY 1.3.1PIGSTY 1.3.1
d12.aarch64PIGSTY 1.3.1PIGSTY 1.3.1PIGSTY 1.3.1PIGSTY 1.3.1PIGSTY 1.3.1
d13.x86_64PIGSTY 1.3.1PIGSTY 1.3.1PIGSTY 1.3.1PIGSTY 1.3.1PIGSTY 1.3.1
d13.aarch64PIGSTY 1.3.1PIGSTY 1.3.1PIGSTY 1.3.1PIGSTY 1.3.1PIGSTY 1.3.1
u22.x86_64PIGSTY 1.3.1PIGSTY 1.3.1PIGSTY 1.3.1PIGSTY 1.3.1PIGSTY 1.3.1
u22.aarch64PIGSTY 1.3.1PIGSTY 1.3.1PIGSTY 1.3.1PIGSTY 1.3.1PIGSTY 1.3.1
u24.x86_64PIGSTY 1.3.1PIGSTY 1.3.1PIGSTY 1.3.1PIGSTY 1.3.1PIGSTY 1.3.1
u24.aarch64PIGSTY 1.3.1PIGSTY 1.3.1PIGSTY 1.3.1PIGSTY 1.3.1PIGSTY 1.3.1
u26.x86_64PIGSTY 1.3.1PIGSTY 1.3.1PIGSTY 1.3.1PIGSTY 1.3.1PIGSTY 1.3.1
u26.aarch64PIGSTY 1.3.1PIGSTY 1.3.1PIGSTY 1.3.1PIGSTY 1.3.1PIGSTY 1.3.1

构建

您可以使用 pig build 命令构建 mobilitydb 扩展的 RPM / DEB 包:

pig build pkg mobilitydb         # 构建 RPM / DEB 包

安装

您可以直接安装 mobilitydb 扩展包的预置二进制包,首先确保 PGDG 和 PIGSTY 仓库已经添加并启用:

pig repo add pgsql -u          # 添加仓库并更新缓存

使用 pig 或者是 apt/yum/dnf 安装扩展:

安装
pig install mobilitydb;          # 当前活跃 PG 版本安装
pig
pig ext install -y mobilitydb -v 18  # PG 18
pig ext install -y mobilitydb -v 17  # PG 17
pig ext install -y mobilitydb -v 16  # PG 16
pig ext install -y mobilitydb -v 15  # PG 15
pig ext install -y mobilitydb -v 14  # PG 14
dnf
dnf install -y mobilitydb_18       # PG 18
dnf install -y mobilitydb_17       # PG 17
dnf install -y mobilitydb_16       # PG 16
dnf install -y mobilitydb_15       # PG 15
dnf install -y mobilitydb_14       # PG 14
apt
apt install -y postgresql-18-mobilitydb   # PG 18
apt install -y postgresql-17-mobilitydb   # PG 17
apt install -y postgresql-16-mobilitydb   # PG 16
apt install -y postgresql-15-mobilitydb   # PG 15
apt install -y postgresql-14-mobilitydb   # PG 14

创建扩展:

CREATE EXTENSION mobilitydb_datagen CASCADE;  -- 依赖: mobilitydb

用法

来源:

mobilitydb_datagen 1.3.1 提供 PL/pgSQL 函数,用来生成合成的 PostgreSQL、PostGIS 和 MobilityDB 值。它主要适用于需要随机时态值或轨迹的回归数据、演示和基准测试数据集。

-- After the main MobilityDB extension is loaded:
CREATE EXTENSION mobilitydb_datagen;

生成随机时态值

-- A random temporal float sequence.
SELECT random_tfloat_seq(
    -100.0, 100.0,                                  -- value bounds
    '2025-06-01 00:00+00', '2025-06-02 00:00+00',  -- time bounds
    10.0,                                           -- max value delta
    10,                                             -- max minutes between instants
    5, 10                                           -- min/max instants
);

-- Step interpolation instead of the default linear interpolation.
SELECT random_tfloat_seq(
    -100.0, 100.0,
    '2025-06-01 00:00+00', '2025-06-02 00:00+00',
    10.0, 10, 5, 10,
    false
);

-- A random temporal geometry point sequence.
SELECT asEWKT(
    random_tgeompoint_contseq(
        2.20, 2.50, 48.80, 48.95,                  -- x/y bounds
        '2025-06-01 08:00+00', '2025-06-01 18:00+00',
        0.02, 5, 20, 40,                           -- max delta, max minutes, min/max instants
        srid => 4326
    )
);

其他已确认的生成器家族包括 random_bool、random_int、random_float、random_text、random_timestamptz 等标量辅助函数;数组、集合、span 和 range 辅助函数;random_tbool_inst、random_tint_discseq、random_tfloat_seq、random_tfloat_seqset 等 temporal 辅助函数;以及 random_geom_point、random_geom_linestring、random_tgeompoint_contseq、random_tgeompoint_seqset、random_tgeogpoint_contseq、random_tgeogpoint_seqset 等空间/temporal-point 辅助函数。

生成测试数据集

为 trip 查询基准测试创建批量测试数据:

CREATE TABLE trip_samples AS
SELECT
    vehicle_id,
    random_tgeompoint_contseq(
        2.20, 2.50, 48.80, 48.95,
        '2025-06-01 08:00+00', '2025-06-01 18:00+00',
        0.02, 5, 20, 40,
        srid => 4326
    ) AS trip
FROM generate_series(1, 1000) AS vehicle_id;

注意事项

  • control file 要求主 mobilitydb 扩展已存在;mobilitydb_datagen 不是独立扩展。
  • 生成器随 mobilitydb 版本 1.3.1 分发。应保持依赖与生成器文件一致;可选类型族是否存在取决于构建开关及软件包可用性。
  • 上游文档有意省略许多生成器函数的详细参数列表,并让用户查看 SQL 源文件确认精确签名。

生成器默认产生随机合成值,并不保证应用数据集可重现。比较多次运行时应设置明确的随机种子,并核对边界、时区、插值方式和 SRID 是否符合工作负载。

这个页面对您有帮助吗?