当前位置: 首页 > news >正文

FineBI(二)- 数据导入

文章目录

  • 一、生成数据集
  • 二、数据导入
    • 1. Csv/Excel数据集方式导入
      • 1.1 新建文件夹
      • 1.2 新建数据集
    • 2. 数据库表方式导入
      • 2.1 把图书数据集导入MySQL
      • 2.2 连接数据库
      • 2.3 新建数据集


一、生成数据集

该 Python 脚本通过 Faker 库和自定义函数,能够生成涵盖图书 ID、书名、作者等 10 个核心字段的 50000 条图书数据,其中类别覆盖 15 个图书领域,出版社来自 15 家主流机构,价格、评分等数据均符合实际分布,采用标准 ISBN-13 编码规则生成 ISBN,最终将数据以 CSV/EXCEL 文件格式输出,为 FineBI 的数据分析与可视化提供优质数据源。

import csv
import randomfrom faker import Faker
from openpyxl import Workbook
from openpyxl.styles import Font
from openpyxl.utils import get_column_letter# 创建Faker实例,用于生成随机数据
fake = Faker('zh_CN')# 预设数据
CATEGORIES = ['文学', '历史', '哲学', '科学', '技术', '经济', '管理', '心理学', '社会学', '艺术', '医学', '教育','计算机', '外语', '工具书']
PUBLISHERS = ['人民文学出版社', '商务印书馆', '三联书店', '中信出版社', '机械工业出版社', '电子工业出版社','清华大学出版社', '北京大学出版社', '中国人民大学出版社', '科学出版社', '化学工业出版社','人民教育出版社', '上海译文出版社', '新星出版社', '广西师范大学出版社']def generate_isbn():"""生成随机ISBN-13"""prefix = '978'base = ''.join([str(random.randint(0, 9)) for _ in range(9)])checksum = str((10 - (sum(int(base[i]) * (3 if i % 2 else 1) for i in range(9)) + int(prefix) * 1) % 10) % 10)return f"{prefix}-{base}-{checksum}"def generate_book_data(num_books=100):"""生成图书数据"""books = []for i in range(1, num_books + 1):# 图书IDbook_id = f"BK{i:05d}"# 书名title = fake.sentence(nb_words=3, variable_nb_words=True).rstrip('.')# 作者(1-3位)author_count = random.randint(1, 3)authors = ', '.join([fake.name() for _ in range(author_count)])# 出版社publisher = random.choice(PUBLISHERS)# 出版年份(2000-2023)year = random.randint(2000, 2023)# 类别category = random.choice(CATEGORIES)# ISBNisbn = generate_isbn()# 价格(20-200元)price = round(random.uniform(20, 200), 2)# 评分(2.0-5.0)rating = round(random.uniform(2.0, 5.0), 1)# 评分人数(10-10000)rating_count = random.randint(10, 10000)# 添加到图书列表books.append({'图书ID': book_id,'书名': title,'作者': authors,'出版社': publisher,'出版年份': year,'类别': category,'ISBN': isbn,'价格': price,'评分': rating,'评分人数': rating_count})return booksdef save_to_csv(books, filename='books.csv'):"""将图书数据保存为CSV文件"""try:with open(filename, 'w', newline='', encoding='utf-8-sig') as csvfile:fieldnames = ['图书ID', '书名', '作者', '出版社', '出版年份', '类别', 'ISBN', '价格', '评分', '评分人数']writer = csv.DictWriter(csvfile, fieldnames=fieldnames)# 写入表头writer.writeheader()# 写入数据for book in books:writer.writerow(book)print(f"成功生成 {filename} 文件!")except Exception as e:print(f"生成CSV文件时出错:{e}")def save_to_excel(books, filename='books.xlsx'):"""将图书数据保存为Excel文件"""try:# 创建工作簿和活动工作表wb = Workbook()ws = wb.activews.title = "图书数据"# 定义表头fieldnames = ['图书ID', '书名', '作者', '出版社', '出版年份', '类别', 'ISBN', '价格', '评分', '评分人数']# 写入表头并设置字体加粗for col_idx, fieldname in enumerate(fieldnames, 1):cell = ws.cell(row=1, column=col_idx)cell.value = fieldnamecell.font = Font(bold=True)# 写入数据for row_idx, book in enumerate(books, 2):  # 从第2行开始for col_idx, fieldname in enumerate(fieldnames, 1):ws.cell(row=row_idx, column=col_idx).value = book.get(fieldname)# 自动调整列宽以适应内容for column in ws.columns:max_length = 0column_letter = get_column_letter(column[0].column)for cell in column:try:if len(str(cell.value)) > max_length:max_length = len(str(cell.value))except:passadjusted_width = (max_length + 2)ws.column_dimensions[column_letter].width = adjusted_width# 保存工作簿wb.save(filename)print(f"成功生成 {filename} 文件!")except Exception as e:print(f"生成Excel文件时出错:{e}")if __name__ == "__main__":# 生成50000条图书数据books = generate_book_data(50000)# 保存为CSV文件save_to_csv(books)# 保存为Excel文件save_to_excel(books)

生成的数据集部分数据如下图所示。

在这里插入图片描述


二、数据导入

在 FineBI 数据分析平台中,支持通过以下三种标准化方式实现数据导入,满足不同场景下的数据接入需求:

1. 数据库表直连导入
通过数据库驱动直连主流关系型数据库(如 MySQL、SQL Server、PostgreSQL 等),可直接读取数据库表中的结构化数据。该方式支持实时数据同步,适用于需要基于数据库原始表进行分析的场景,可确保数据与源系统的一致性。

2. SQL 数据集定制导入
利用自定义 SQL 查询语句从数据库中提取特定数据,支持复杂的多表关联、条件筛选、聚合计算等操作。该方式灵活性高,可按需定制分析所需的数据集结构,尤其适合需要对原始数据进行预处理或跨表整合的场景。

3. Csv/Excel 文件数据集导入
支持直接上传本地 Csv 或 Excel 格式文件(如前文生成的图书数据文件),系统会自动识别文件中的字段结构与数据类型。该方式操作简便,适合非技术用户快速导入离线数据,或用于小规模数据集的临时分析。

1. Csv/Excel数据集方式导入

1.1 新建文件夹

新建一个名为图书的文件夹,用于保存导入的数据。

在这里插入图片描述

1.2 新建数据集

选择新建Excel数据集,步骤如下图所示。

在这里插入图片描述

选择生成的Csv/Excel数据集,并上传Excel数据集,步骤如下图所示。

在这里插入图片描述

数据集上传成功后,点击确定,步骤如下图所示。

在这里插入图片描述

之后就可以在图书目录下看到上传后的数据集,如下图所示。

在这里插入图片描述

2. 数据库表方式导入

2.1 把图书数据集导入MySQL

此处为了方便演示,先在MySQL中创建books数据库,然后把图书数据集导入到MySQL的books数据库中。

在MySQL中创建books数据库,如下图所示。

在这里插入图片描述

books数据库中,右击表,点击导入向导,选择导入类型为CSV文件,如下图所示。

在这里插入图片描述

选择生成的books.csv图书数据集,如下图所示。

在这里插入图片描述

点击下一步,如下图所示。

在这里插入图片描述

点击下一步,如下图所示。

在这里插入图片描述

点击下一步,如下图所示。

在这里插入图片描述

点击下一步,如下图所示。

在这里插入图片描述

点击下一步,如下图所示。

在这里插入图片描述

点击开始,如下图所示。

在这里插入图片描述

导入完成后点击关闭,如下图所示。

在这里插入图片描述

导入后的数据如下图所示。

在这里插入图片描述

2.2 连接数据库

管理系统中找到数据连接管理,点击新建数据连接,在显示的页面中找到MySQL并点击,步骤如下图所示。

在这里插入图片描述

在显示的页面中输入数据库的相关信息,测试连接显示成功后,点击保存,如下图所示。

在这里插入图片描述

保存成功后,在显示的页面中可以看到books数据库的相关信息,如下图所示。

在这里插入图片描述

2.3 新建数据集

点击图书目录,点击新建数据集,选择数据库表方式,选择名称为books的数据连接,选择books数据库,然后点击确定,步骤如下图所示。

在这里插入图片描述

数据导入成功后,需要点击更新来更新数据,更新并显示后的数据如下图所示。

在这里插入图片描述

相关文章:

  • 网站上怎么做通栏的图片关键词优化的最佳方法
  • wordpress 博客网站是免费的么seo教程免费分享
  • 深圳做网站排名公司拼多多跨境电商平台
  • app的网站域名关键词优化是什么
  • 注册城乡规划师培训机构网站seo搜索
  • 襄阳网站建设培训网络推广
  • AI时代工具:AIGC导航——AI工具集合
  • day041-web集群架构搭建
  • 阿里最新开源:Mnn3dAvatar 3D数字人框架, 无需联网,本地部署可离线运行,支持多模态实时交互
  • Docker 报错“x509: certificate signed by unknown authority”的排查与解决实录
  • CentOS下安装JDK17
  • CentOS 7 编译安装Nginx 1.27.5完整指南及负载均衡配置
  • Luckysheet Excel xlsx 导入导出互相转换
  • RSS解析并转换为JSON的API集成指南
  • 关键领域软件工厂的安全中枢如何全面升级供应链检测能力
  • CentOS 7 通过YUM安装MySQL 8.0完整指南
  • Redis的渐进式hash和缓存时间戳深入学习
  • PYTHON从入门到实践4-数据类型
  • 深入JVM:从零到实战,解锁Java性能与调优的终极武器
  • doris_工作使用整理
  • 记录某企业存储型XSS漏洞从发现到数据外泄全路径分析
  • Python 数据分析与可视化 Day 6 - 可视化整合报告实战
  • logback 日志不打印
  • uni-app项目实战笔记24--uniapp实现图片保存到手机相册
  • WEB安全--Java安全--jsp webshell免杀1
  • 【学习记录】Git Base使用-免密连接代码仓库