PolarDB-X最佳实践系列(五):使用通义千问和存储过程快速生成测试数据

本文涉及的产品
云原生数据库 PolarDB 分布式版,标准版 2核8GB
简介: 我们在测试数据库性能的过程中,通常需要生成一批测试数据。以前,一般要写一段程序或者脚本来完成这项工作,但现在是2024年啦!时代变了!

文章来源:PolarDB知乎号

作者:梦实


我们在测试数据库性能的过程中,通常需要生成一批测试数据。

以前,一般要写一段程序或者脚本来完成这项工作,但现在是2024年啦!时代变了!

PolarDB-X目前是少有的支持存储过程的分布式数据库,结合大模型,我们可以非常简单的来制造测试数据: 存储过程的原理和使用方法 通义官网


例如,有这样的表结构:

CREATE TABLE t2 (
        id bigint(20) NOT NULL AUTO_INCREMENT,
        c1 varchar(64) NOT NULL ,
        c2 tinyint(4) NOT NULL ,
        c3 varchar(64) NOT NULL ,
        c4 tinyint(4) NOT NULL ,
        c5 varchar(64) NOT NULL ,
        c6 bigint(20) DEFAULT NULL ,
        c7 bigint(20) DEFAULT NULL ,
        c8 double DEFAULT NULL ,
        c9 bigint(20) DEFAULT NULL ,
        PRIMARY KEY (id),
        CLUSTERED INDEX gsi1 (c3)
                PARTITION BY KEY(c3)
                PARTITIONS 32,
        UNIQUE KEY uk1 (c5, c3, c1),
        KEY idx1 (c1),
        KEY idx2 (c5, c1, c8),
        KEY idx3 (c5, c3, c8)
) ENGINE = InnoDB PARTITION BY KEY(c1) PARTITIONS 32;


我们只需要对通义千问进行提问,描述以下需求,它就能自动生成一个存储过程:

写一个存储过程,为以下表生成100万条数据,其中,c1和c5是40位的十六进制字符串。(SQL内容省略了)

1.jpg


通义千问生成了这样的下面的存储过程:

DELIMITER ;;
CREATE PROCEDURE GenerateTestData()
BEGIN
    DECLARE v_counter INT DEFAULT 0;
    DECLARE v_hex_string CHAR(40);
    WHILE v_counter < 1000000 DO
        -- 生成40位十六进制字符串
        SET v_hex_string = LPAD(LOWER(REPLACE(UUID(), '-', '')), 40, '0');
        INSERT INTO t2 (
            c1,
            c2,
            c3,
            c4,
            c5,
            c6,
            c7,
            c8,
            c9
        ) VALUES (
            -- 生成c1的十六进制字符串
            v_hex_string,
            -- 随机生成tinyint值(例如,范围从0到255)
            FLOOR(RAND() * 256),
            -- 生成c3的随机字符串(也可以是十六进制,这里仅作示例)
            LPAD(LOWER(REPLACE(UUID(), '-', '')), 32, '0'),
            -- 随机生成tinyint值
            FLOOR(RAND() * 256),
            -- 生成c5的十六进制字符串
            v_hex_string,
            -- 随机生成bigint值
            FLOOR(RAND() * POW(2, 63)),
            -- 随机生成bigint值
            FLOOR(RAND() * POW(2, 63)),
            -- 随机生成double值
            RAND(),
            -- 随机生成bigint值
            FLOOR(RAND() * POW(2, 63))
        );
        SET v_counter = v_counter + 1;
    END WHILE;
END;;
DELIMITER ;
CALL GenerateTestData();


由于PolarDB-X对MySQL的语法兼容都非常高,我们无需对生成结果进行修改,直接粘贴到PolarDB-X中即可执行:

2.jpg 喝一杯茶,我们的测试数据就创建完成了:

3.png

欢迎关注,我们会带给大家更多PolarDB-X的最佳实践!




数据库PolarDB-X新人入门一站式页面,快速体验集中分布式一体化新特性!

云原生数据库PolarDB分布式版新人入门

相关实践学习
快速体验PolarDB开源数据库
本实验环境已内置PostgreSQL数据库以及PolarDB开源数据库:PolarDB PostgreSQL版和PolarDB分布式版,支持一键拉起使用,方便各位开发者学习使用。
相关文章
|
1月前
|
存储 关系型数据库 分布式数据库
GraphRAG:基于PolarDB+通义千问+LangChain的知识图谱+大模型最佳实践
本文介绍了如何使用PolarDB、通义千问和LangChain搭建GraphRAG系统,结合知识图谱和向量检索提升问答质量。通过实例展示了单独使用向量检索和图检索的局限性,并通过图+向量联合搜索增强了问答准确性。PolarDB支持AGE图引擎和pgvector插件,实现图数据和向量数据的统一存储与检索,提升了RAG系统的性能和效果。
|
3月前
|
SQL 关系型数据库 索引
关系型数据库SQLserver插入数据
【7月更文挑战第28天】
40 4
|
15天前
|
存储 人工智能 Cloud Native
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
阿里云瑶池在2024云栖大会上重磅发布由Data+AI驱动的多模数据管理平台DMS:OneMeta+OneOps,通过统一、开放、多模的元数据服务实现跨环境、跨引擎、跨实例的统一治理,可支持高达40+种数据源,实现自建、他云数据源的无缝对接,助力业务决策效率提升10倍。
|
1月前
|
存储 人工智能 Cloud Native
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
阿里云数据库重磅升级!元数据服务OneMeta + OneOps统一管理多模态数据
|
18天前
|
存储 关系型数据库 分布式数据库
GraphRAG:基于PolarDB+通义千问+LangChain的知识图谱+大模型最佳实践
本文介绍了一种结合知识图谱与大型语言模型(LLM)的GraphRAG系统,利用PolarDB、通义千问及LangChain实现。知识图谱通过结构化信息、语义理解和推理等功能,增强了信息检索与自然语言处理效果。PolarDB具备图引擎与向量检索能力,适配知识图谱存储与查询。通义千问处理自然语言,LangChain则整合模型与应用。实战步骤包括环境准备、数据库配置与数据导入,并通过实例展示了图谱与向量联合检索的优越性,提升了问答系统的准确性和实用性。
|
2月前
|
监控 关系型数据库 分布式数据库
PolarDB 读写分离的最佳实践
【8月更文第27天】PolarDB 是阿里云推出的一款高度兼容 MySQL、PostgreSQL 和 Oracle 的云原生数据库服务。它支持读写分离,能够显著提高应用的性能和响应速度。本文将详细介绍如何在 PolarDB 中实施读写分离策略,并通过示例代码演示具体的配置步骤。
69 1
|
2月前
|
存储 算法 Cloud Native
【PolarDB-X列存魔法】揭秘TPC-H测试背后的性能优化秘籍!
【8月更文挑战第25天】阿里巴巴的云原生数据库PolarDB-X以其出色的性能、可靠性和扩展性闻名,在多种业务场景中广泛应用。尤其在列存储模式下,PolarDB-X针对分析型查询进行了优化,显著提升了数据读取效率。本文通过TPC-H基准测试探讨PolarDB-X列存执行计划的优化策略,包括高效数据扫描、专用查询算法以及动态调整执行计划等功能,以满足复杂查询的需求并提高数据分析性能。
70 1
|
2月前
|
存储 SQL Cloud Native
揭秘!PolarDB-X存储引擎如何玩转“时间魔术”?Lizard多级闪回技术让你秒回数据“黄金时代”!
【8月更文挑战第25天】PolarDB-X是一款由阿里巴巴自主研发的云原生分布式数据库,以其高性能、高可用性和出色的可扩展性著称。其核心竞争力之一是Lizard存储引擎的多级闪回技术,能够提供高效的数据恢复与问题诊断能力。本文通过一个电商公司的案例展示了一级与二级闪回技术如何帮助快速恢复误删的大量订单数据,确保业务连续性不受影响。一级闪回通过维护最近时间段内历史数据版本链,支持任意时间点查询;而二级闪回则通过扩展数据保留时间并采用成本更低的存储方式,进一步增强了数据保护能力。多级闪回技术的应用显著提高了数据库的可靠性和灵活性,为企业数据安全保驾护航。
38 1
|
2月前
|
存储 SQL JSON
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
|
2月前
|
关系型数据库 分布式数据库 数据库
基于PolarDB的图分析:通过表格将数据快速导入到图
本文介绍了使用 PolarDB PostgreSQL兼容版的AGE插件时,在大数据量下,快速导入数据的方法。可以快速将图数据库中亿级以上的节点和边快速导入到数据库中,避免了插入边时进行查询带来的性能瓶颈。

相关产品

  • 云原生分布式数据库 PolarDB-X