(AI总结版)SQL Developer 安装好了,Oracle 21c XE 数据库已连接,之后的操作:搭建大数据开发的基础环境
本文介绍了在Windows环境下搭建Oracle大数据开发基础环境的完整流程,分为4个阶段:1)切换到XEPDB1容器;2)创建开发用户bigdata_dev并授权;3)创建订单表并插入100万测试数据;4)执行4个典型分析SQL验证环境。关键步骤包括确认数据文件路径、创建表空间、配置用户权限,并通过PL/SQL批量生成测试数据。完成所有步骤后,即可进行SQL优化、PL/SQL编程等大数据开发练习
本文介绍了在Windows环境下搭建Oracle大数据开发基础环境的完整流程,分为4个阶段:1)切换到XEPDB1容器;
2)创建开发用户bigdata_dev并授权;
3)创建订单表并插入100万测试数据;
4)执行4个典型分析SQL验证环境。
关键步骤包括确认数据文件路径、创建表空间、配置用户权限,并通过PL/SQL批量生成测试数据。
完成所有步骤后,即可进行SQL优化、PL/SQL编程等大数据开发练习。
每个阶段都提供了验证标准,确保环境配置正确。
搭建大数据开发的基础环境
从“SQL Developer安装好了,Oracle 21c XE 数据库已连接”这个状态开始,以下是按正确顺序需要完成的全部操作,帮助你在 Windows 环境下搭建好大数据开发的基础环境。
整个流程分为 4 个阶段,请按顺序执行:
📋 总览
| 阶段 | 目标 | 核心任务 | 关键验证点 |
|---|---|---|---|
| 阶段一 | 切换到正确的容器 | ALTER SESSION SET CONTAINER = XEPDB1 |
SHOW CON_NAME 显示 XEPDB1 |
| 阶段二 | 创建开发用户 | 表空间 → 用户 → 授权 | bigdata_dev 能登录 |
| 阶段三 | 导入测试数据 | 创建 orders 表,插入 100 万行数据 |
SELECT COUNT(*) 返回 1000000 |
| 阶段四 | 验证分析查询 | 执行 4 个典型分析 SQL | 每个查询正常返回结果 |
🔧 阶段一:切换到正确的容器(PDB)
原因:Oracle 12c 及以上采用多租户架构,业务用户必须在 PDB(可插拔数据库) 中创建,而不是 CDB 根容器。
sql
-- 1. 查看当前容器(应该是 CDB$ROOT) SHOW CON_NAME; -- 2. 切换到 XE 版本自带的 PDB 容器 ALTER SESSION SET CONTAINER = XEPDB1; -- 3. 确认切换成功(应显示 XEPDB1) SHOW CON_NAME;
✅ 验证标准:SHOW CON_NAME 显示 XEPDB1
👤 阶段二:创建专属开发用户
原因:大数据开发不应使用 system 管理员账号,需要创建有独立权限的普通用户。
第 1 步:确认数据文件路径
sql
-- 查询现有数据文件路径,确定你的数据库文件存放在哪里 SELECT name FROM v$datafile;
记录下路径,例如:D:\APPDATA\DATABASE\ORADATA\XE\XEPDB1\SYSTEM01.DBF → 目录是 D:\APPDATA\DATABASE\ORADATA\XE\XEPDB1\
第 2 步:创建表空间
sql
-- 使用上一步查到的正确路径 CREATE TABLESPACE bigdata_ts DATAFILE 'D:\APPDATA\DATABASE\ORADATA\XE\XEPDB1\BIGDATA01.DBF' SIZE 500M AUTOEXTEND ON NEXT 100M;
第 3 步:创建用户
sql
CREATE USER bigdata_dev IDENTIFIED BY dev123 DEFAULT TABLESPACE bigdata_ts QUOTA UNLIMITED ON bigdata_ts;
第 4 步:授予权限
sql
GRANT CONNECT, RESOURCE, CREATE SESSION, CREATE TABLE TO bigdata_dev;
第 5 步:用新用户测试连接(重要!)
在 SQL Developer 中新建连接:
| 配置项 | 填写内容 |
|---|---|
| 用户名 | bigdata_dev |
| 密码 | dev123 |
| 主机名 | localhost |
| 端口 | 1521 |
| 服务名 | XEPDB1(⚠️ 不是 XE) |
✅ 验证标准:点击“测试”显示“成功”
📊 阶段三:导入测试数据
原因:为了练习大数据分析,需要一张有足够数据量的业务表。
第 1 步:创建订单表
sql
DROP TABLE orders PURGE; -- 如果之前创建过,先删除
CREATE TABLE orders (
order_id NUMBER PRIMARY KEY,
customer_id NUMBER,
product_name VARCHAR2(100),
order_amount NUMBER(10,2),
order_date DATE,
status VARCHAR2(20)
);
第 2 步:插入 100 万行测试数据
sql
-- 使用 PL/SQL 块生成数据(比 CONNECT BY 更稳定)
BEGIN
FOR i IN 1..1000000 LOOP
INSERT INTO orders (order_id, customer_id, product_name, order_amount, order_date, status)
VALUES (
i,
TRUNC(DBMS_RANDOM.VALUE(1, 10001)),
'Product_' || TRUNC(DBMS_RANDOM.VALUE(1, 501)),
ROUND(DBMS_RANDOM.VALUE(10, 5001), 2),
SYSDATE - TRUNC(DBMS_RANDOM.VALUE(1, 366)),
CASE TRUNC(DBMS_RANDOM.VALUE(1, 4))
WHEN 1 THEN 'COMPLETED'
WHEN 2 THEN 'PENDING'
ELSE 'CANCELLED'
END
);
-- 每 1 万行提交一次
IF MOD(i, 10000) = 0 THEN
COMMIT;
END IF;
END LOOP;
COMMIT;
END;
/
第 3 步:验证数据
sql
-- 应该返回 1000000 SELECT COUNT(*) FROM orders; -- 查看前 10 行示例 SELECT * FROM orders WHERE ROWNUM <= 10;
✅ 验证标准:COUNT(*) 返回 1000000
📈 阶段四:执行分析查询验证
原因:确认环境可用于大数据分析场景。
依次执行以下 4 个 SQL:
查询 1:月度销售趋势
sql
SELECT
TO_CHAR(order_date, 'YYYY-MM') AS month,
COUNT(*) AS order_count,
SUM(order_amount) AS total_amount,
AVG(order_amount) AS avg_amount
FROM orders
GROUP BY TO_CHAR(order_date, 'YYYY-MM')
ORDER BY month DESC;
查询 2:产品销售额 TOP 10
sql
SELECT
product_name,
COUNT(*) AS sales_count,
SUM(order_amount) AS total_revenue
FROM orders
WHERE status = 'COMPLETED'
GROUP BY product_name
ORDER BY total_revenue DESC
FETCH FIRST 10 ROWS ONLY;
查询 3:客户价值分层
sql
SELECT
customer_id,
COUNT(*) AS order_frequency,
MAX(order_date) AS last_order_date,
SUM(order_amount) AS total_spent,
CASE
WHEN SUM(order_amount) > 100000 THEN 'VIP'
WHEN SUM(order_amount) > 50000 THEN 'Gold'
WHEN SUM(order_amount) > 10000 THEN 'Silver'
ELSE 'Bronze'
END AS customer_tier
FROM orders
GROUP BY customer_id
ORDER BY total_spent DESC
FETCH FIRST 20 ROWS ONLY;
查询 4:订单状态占比
sql
SELECT
status,
COUNT(*) AS order_count,
ROUND(COUNT(*) * 100.0 / SUM(COUNT(*)) OVER(), 2) AS percentage,
SUM(order_amount) AS total_amount
FROM orders
GROUP BY status
ORDER BY order_count DESC;
✅ 验证标准:每个查询都正常返回结果,无报错
📋 完整操作清单(可打印对照)
| 步骤 | 操作 | 状态 |
|---|---|---|
| 1 | ALTER SESSION SET CONTAINER = XEPDB1 |
☐ |
| 2 | SELECT name FROM v$datafile 确认路径 |
☐ |
| 3 | CREATE TABLESPACE bigdata_ts... |
☐ |
| 4 | CREATE USER bigdata_dev... |
☐ |
| 5 | GRANT CONNECT, RESOURCE... |
☐ |
| 6 | 用 bigdata_dev 新建连接测试 |
☐ |
| 7 | CREATE TABLE orders... |
☐ |
| 8 | 执行 PL/SQL 块插入 100 万行数据 | ☐ |
| 9 | SELECT COUNT(*) FROM orders 验证 |
☐ |
| 10 | 执行 4 个分析查询验证 | ☐ |
完成以上 10 步后,你的 Oracle 21c XE 环境就完全准备好用于大数据开发练习了。
接下来可以学习 SQL 优化、PL/SQL 编程,或者用 Spark/Python 连接数据库进行数据分析。
更多推荐



所有评论(0)