一、技能目标
- 允许用户提供 MySQL 连接信息(URL、用户名、密码)。
- 能够查询数据库表数据。
- 对数据进行分析,例如统计销量、趋势、Top N 数据。
- 生成报表(Excel、PDF 或 HTML 可视化表格)。
二、技能输入参数
{
"mysql_url": "jdbc:mysql://host:port/database",
"username": "root",
"password": "123456",
"query": "SELECT * FROM orders"
}
mysql_url:数据库连接 URL。
username / password:数据库账号。
query:可选,自定义 SQL 查询。
三、技能核心步骤
1. 连接 MySQL
- 使用 JDBC(Java)或者 Python
mysql-connector-python 连接数据库。
- 小龙虾技能内部可以封装成一个函数:
import mysql.connectordef connect_mysql(url, user, password):
conn = mysql.connector.connect(
host=url.split("//")[1].split(":")[0],
port=int(url.split(":")[2].split("/")[0]),
database=url.split("/")[-1],
user=user,
password=password
)
return conn
2. 查询数据
def query_data(conn, sql):
cursor = conn.cursor(dictionary=True)
cursor.execute(sql)
result = cursor.fetchall()
cursor.close()
return result
3. 数据分析示例
- 假设查询的是小龙虾订单表
orders,字段包含:
order_id、product_name、quantity、price、order_date
- 可以分析:
- 每天销量统计
- 最畅销的商品 Top 5
- 总收入统计
import pandas as pddef analyze_data(data):
df = pd.DataFrame(data)
daily_sales = df.groupby('order_date')['quantity'].sum()
top_products = df.groupby('product_name')['quantity'].sum().sort_values(ascending=False).head(5)
total_revenue = (df['quantity'] * df['price']).sum()
return daily_sales, top_products, total_revenue
4. 生成报表
- 可导出 Excel 或生成 HTML 可视化表格:
def generate_report(daily_sales, top_products, total_revenue, file_path="report.xlsx"):
with pd.ExcelWriter(file_path) as writer:
daily_sales.to_excel(writer, sheet_name='Daily Sales')
top_products.to_excel(writer, sheet_name='Top Products')
pd.DataFrame({'Total Revenue':[total_revenue]}).to_excel(writer, sheet_name='Revenue')
- 可选:用
matplotlib 或 plotly 生成图表,增强报表可视化。
四、技能调用流程(用户视角)
- 打开“小龙虾技能”,输入:
- 数据库 URL、用户名、密码
- SQL 查询(可用默认查询)
- 小龙虾执行:
- 连接数据库
- 获取数据
- 分析数据
- 生成报表
- 用户下载报表或查看可视化结果。
五、可拓展功能
- 自动定时生成报表(每天/每周)
- 数据可视化图表嵌入报表
- 自动发送报表到邮箱或团队群
- 支持多数据库(PostgreSQL、SQL Server)