10 分钟,从零到第一次查询

一行命令部署,一行代码连接数据源,一条 SQL 开始分析。不需要配置集群,不需要申请资源。

只需 Docker,1 台机器

$ docker compose up -d

终端窗口

P

Portal 登录页

浏览器

SELECT * FROM ...

JupyterLab

第一步:启动 PocketLakehouse

1 台 Linux 机器 + Docker + 3 条命令

克隆仓库

git clone https://github.com/your-org/pocketlake-standalone.git
cd pocketlake-standalone

启动 MVP 湖仓

docker compose up -d
# 等待 2 分钟

打开 Portal

# 浏览器访问 → http://localhost:28080
# 默认账号: admin / admin123

环境要求:Docker ≥ 20.10 · 内存 ≥ 8GB · 磁盘 ≥ 20GB

第二步:连接你的第一个数据源

Portal 内一键配置,自动同步到 JupyterLab

Portal → 工作台 → 📡 数据源 → 新增数据源

myapp
MySQL
xxx.xxx.xxx.xxx
3306
myapp

✅ 自动同步到 JupyterLab

JupyterLab 中立即使用:

from pocketlake_datasource import mysql_source
import pandas as pd

conn = mysql_source("myapp")
c = conn.cursor()
c.execute("SELECT * FROM user_info LIMIT 5")
df = pd.DataFrame(c.fetchall(), 
      columns=[d[0] for d in c.description])
df

第三步:一切从 SHOW 开始

Spark SQL 始于 SHOW DATABASES,Trino 始于 SHOW CATALOGS。两条路径,同一个 Iceberg。

Spark SQL 路径

# Spark SQL:看 Iceberg 仓库
from pyspark.sql import SparkSession
spark = SparkSession.builder.getOrCreate()

spark.sql("SHOW DATABASES").toPandas()
# → namespace: minio, gmall_dw

spark.sql("""
  CREATE TABLE demo.minio.my_first_table (
    id BIGINT, name STRING, value DOUBLE
  ) USING iceberg
""")

spark.sql("""
  INSERT INTO demo.minio.my_first_table VALUES
    (1, 'hello', 3.14), (2, 'iceberg', 2.71)
""")

Output: DataFrame with 2 rows

Trino 路径

# Trino:看全部数据源
from pocketlake_datasource import trino_source
c = trino_source("biz-tpch").cursor()

c.execute("SHOW CATALOGS")
# → demo, tpch, tpcds, mysql_business, system, jmx, memory

c.execute("""
  SELECT n.name, COUNT(*)
  FROM tpch.tiny.customer c
  JOIN tpch.tiny.nation n ON c.nationkey = n.nationkey
  GROUP BY n.name ORDER BY 2 DESC
""")

Output: 7 catalogs listed

5 分钟,跑通你的第一条数据管道

从 Notebook 开发 → 测试运行 → 提交到调度,一气呵成

00:00

JupyterLab 打开 Notebook

SHOW DATABASES → CREATE TABLE → INSERT → SELECT → UPDATE → DELETE

02-spark-iceberg-crud.ipynb
02:00

Portal 工作台 → 测试运行

papermill 立即执行 → ✅ 186 行写入 Iceberg

03:30
🔧

Portal 工作台 → 提交到 DS 调度

cron: 0 3 * * * → 每天凌晨自动跑

05:00
📋

Portal 工作台 → Jobs

查看状态、日志 → 完成 ✅

试试 AI:用自然语言查数据

接入 MCP Server 后,直接对话操作 PocketLake

👤

TpcH 中哪个国家的客户最多?

🤖

🔍 search_tables("customer")

📊 analyze_table("tpch.tiny.customer")

🧠 生成 SQL ...

✅ 执行查询

📋 结果:

CHINA, 300 个客户

INDIA, 280 个客户

JAPAN, 250 个客户

查看 MCP 配置
// mcp.json — 3 步接入
{
  "mcpServers": {
    "pocketlake": {
      "command": "pocketlake-mcp",
      "env": {
        "POCKETLAKE_API_BASE": "http://localhost:28080/api",
        "POCKETLAKE_API_KEY": "sk-xxx"
      }
    }
  }
}

接下来,深入 PocketLakehouse

4 条进阶路径,按需选择

🏗

建仓向导

完整 ODS→DIM→DWD→DWS→ADS 五层数仓

examples/02-spark-iceberg-crud.ipynb
📊

TPC-H 基准测试

跑通 22 条标准分析查询

examples/tpch/01-tpch-queries-trino.ipynb
🌐

Trino 联邦查询

一条 SQL 跨 7 个 Catalog

examples/03-trino-catalogs-query.ipynb
🤖

MCP 接入指南

22 个 AI Tool 全清单

docs/user-guide/mcp-access-guide.md