<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>AI 数据工具 on AI 副业工具箱</title><link>https://www.duckdblab.com/zh/categories/ai-%E6%95%B0%E6%8D%AE%E5%B7%A5%E5%85%B7/</link><description>Recent content in AI 数据工具 on AI 副业工具箱</description><generator>Hugo -- gohugo.io</generator><language>zh-CN</language><lastBuildDate>Fri, 15 May 2026 23:00:00 +0800</lastBuildDate><atom:link href="https://www.duckdblab.com/zh/categories/ai-%E6%95%B0%E6%8D%AE%E5%B7%A5%E5%85%B7/index.xml" rel="self" type="application/rss+xml"/><item><title>AI + 数据分析副业：DuckDB/Streamlit 自动报表服务全攻略</title><link>https://www.duckdblab.com/zh/post/ai-data-side-hustle/</link><pubDate>Fri, 15 May 2026 23:00:00 +0800</pubDate><guid>https://www.duckdblab.com/zh/post/ai-data-side-hustle/</guid><description>&lt;h2 id="为什么数据分析副业是-2026-年的金矿"&gt;为什么数据分析副业是 2026 年的金矿
&lt;/h2&gt;&lt;p&gt;不是每个人都能写代码、做设计、搞视频创作。但几乎每个企业——从小电商到线下门店——都需要数据报表。&lt;/p&gt;
&lt;p&gt;传统的数据分析服务收费高、交付周期长。一个 Excel 报表外包要 500-2000 元，而且要等好几天。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;DuckDB + Streamlit + AI&lt;/strong&gt; 的组合，让一个人可以：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;10 分钟完成过去 3 天的数据分析工作&lt;/li&gt;
&lt;li&gt;交付交互式报表而非静态 Excel&lt;/li&gt;
&lt;li&gt;按需定制，成本降低 80%&lt;/li&gt;
&lt;li&gt;月服务费 2000-8000 元，毛利率 90%+&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这就是 2026 年最被低估的 AI 副业赛道：&lt;strong&gt;自动化数据分析服务&lt;/strong&gt;。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="技术栈解读为什么选这三样"&gt;技术栈解读：为什么选这三样？
&lt;/h2&gt;&lt;h3 id="duckdb--轻量级分析引擎"&gt;DuckDB — 轻量级分析引擎
&lt;/h3&gt;&lt;p&gt;DuckDB 是一个内嵌式 OLAP 数据库，专为分析查询设计。它的优势：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;免安装&lt;/strong&gt;：单文件、无需服务器&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;超快&lt;/strong&gt;：亿级数据秒级聚合&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SQL 全兼容&lt;/strong&gt;：会 SQL 就能用&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;免费开源&lt;/strong&gt;：零成本启动&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;对比传统方案：&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;方案&lt;/th&gt;
 &lt;th&gt;成本&lt;/th&gt;
 &lt;th&gt;学习曲线&lt;/th&gt;
 &lt;th&gt;性能&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Excel&lt;/td&gt;
 &lt;td&gt;已购&lt;/td&gt;
 &lt;td&gt;低&lt;/td&gt;
 &lt;td&gt;10 万行就崩&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;MySQL&lt;/td&gt;
 &lt;td&gt;自建/云&lt;/td&gt;
 &lt;td&gt;中&lt;/td&gt;
 &lt;td&gt;OLTP 设计，分析慢&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;DuckDB&lt;/td&gt;
 &lt;td&gt;免费&lt;/td&gt;
 &lt;td&gt;低&lt;/td&gt;
 &lt;td&gt;百亿行无压力&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="streamlit--用-python-快速搭-ui"&gt;Streamlit — 用 Python 快速搭 UI
&lt;/h3&gt;&lt;p&gt;Streamlit 是专门给数据科学家用的 Web 框架，&lt;strong&gt;写 3 行代码出一个交互界面&lt;/strong&gt;。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;streamlit&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;st&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;duckdb&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;st&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;title&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;月度销售报表&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;conn&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;duckdb&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;connect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;sales.duckdb&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;df&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;conn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;execute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;SELECT * FROM sales&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;fetchdf&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;st&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;dataframe&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;st&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;bar_chart&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;groupby&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;category&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;revenue&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sum&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="ai-辅助--你的效率倍增器"&gt;AI 辅助 — 你的效率倍增器
&lt;/h3&gt;&lt;p&gt;Claude/GPT-4 帮你做三件事：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;写 SQL 查询&lt;/strong&gt;：业务需求→SQL，不用自己写&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;生成分析逻辑&lt;/strong&gt;：描述你的分析维度，AI 生成代码&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;优化报表设计&lt;/strong&gt;：从配色到布局，AI 给出专业建议&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;实测效率对比：传统方式做一张销售报表 3 小时；AI + DuckDB + Streamlit = 15 分钟。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="四步搭建你的数据分析服务体系"&gt;四步搭建你的数据分析服务体系
&lt;/h2&gt;&lt;h3 id="第一步本地搭建开发环境"&gt;第一步：本地搭建开发环境
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 安装 DuckDB&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pip install duckdb duckdb-engine
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pip install streamlit pandas plotly
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 验证安装&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;python -c &lt;span class="s2"&gt;&amp;#34;import duckdb; print(duckdb.execute(&amp;#39;SELECT 1+1&amp;#39;).fetchone())&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 输出: (2,)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="第二步构建可复用的数据管道"&gt;第二步：构建可复用的数据管道
&lt;/h3&gt;&lt;p&gt;创建一个通用的数据导入模块 &lt;code&gt;data_pipeline.py&lt;/code&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;duckdb&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;pandas&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;pd&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;pathlib&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Path&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;DataPipeline&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="fm"&gt;__init__&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;db_path&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;analytics.duckdb&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;conn&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;duckdb&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;connect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;db_path&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;load_csv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;file_path&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;table_name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&amp;#34;加载 CSV 文件到 DuckDB&amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;df&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pd&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;read_csv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;file_path&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;conn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;execute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;CREATE OR REPLACE TABLE &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;table_name&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; AS SELECT * FROM df&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;row_count&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;conn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;execute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;SELECT COUNT(*) FROM &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;table_name&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;fetchone&lt;/span&gt;&lt;span class="p"&gt;()[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;row_count&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;load_excel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;file_path&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;sheet_name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;table_name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&amp;#34;加载 Excel 文件到 DuckDB&amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;df&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pd&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;read_excel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;file_path&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;sheet_name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;sheet_name&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;conn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;execute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;CREATE OR REPLACE TABLE &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;table_name&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; AS SELECT * FROM df&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;conn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;execute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;SELECT COUNT(*) FROM &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;table_name&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;fetchone&lt;/span&gt;&lt;span class="p"&gt;()[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;run_query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;sql&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;pd&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;DataFrame&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&amp;#34;执行 SQL 查询，返回 DataFrame&amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;conn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;execute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;sql&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;fetchdf&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;export_to_csv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;sql&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;output_path&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&amp;#34;导出查询结果到 CSV&amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;df&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;run_query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;sql&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;to_csv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;output_path&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;index&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;False&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;✅ 导出 &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; 行到 &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;output_path&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="第三步用-ai-生成定制报表模板"&gt;第三步：用 AI 生成定制报表模板
&lt;/h3&gt;&lt;p&gt;把下面这个 prompt 发给 Claude/ChatGPT：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;你是数据分析专家。客户是一家月营业额 50 万的小电商，
需要一份月度销售报表。数据表结构如下：

- orders: order_id, customer_id, amount, order_date, status
- products: product_id, name, category, price
- order_items: id, order_id, product_id, quantity

请生成：
1. 5 个最有价值的 SQL 分析查询
2. Streamlit 前端代码，包含筛选器（日期范围、品类）
3. 关键指标看板（GMV、客单价、复购率、TOP 10 商品）
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;AI 会直接生成可运行的 Streamlit 代码。复制到 &lt;code&gt;app.py&lt;/code&gt; 即可启动：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;streamlit run app.py
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="第四步打包成服务产品定价和交付"&gt;第四步：打包成服务产品，定价和交付
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;产品矩阵&lt;/strong&gt;（针对中小企业）：&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;服务等级&lt;/th&gt;
 &lt;th&gt;价格&lt;/th&gt;
 &lt;th&gt;内容&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;基础报表&lt;/td&gt;
 &lt;td&gt;199 元/月&lt;/td&gt;
 &lt;td&gt;1 张月报 + 6 个核心指标看板&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;专业分析&lt;/td&gt;
 &lt;td&gt;499 元/月&lt;/td&gt;
 &lt;td&gt;月报 + 周报 + 趋势预测 + AI 洞察&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;定制咨询&lt;/td&gt;
 &lt;td&gt;1999 元/月&lt;/td&gt;
 &lt;td&gt;全部功能 + 数据仓库搭建 + 实时看板 + 1v1 支持&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;交付流程&lt;/strong&gt;：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;客户提供数据源（CSV/Excel/数据库连接）&lt;/li&gt;
&lt;li&gt;你用 &lt;code&gt;DataPipeline&lt;/code&gt; 导入数据&lt;/li&gt;
&lt;li&gt;AI 辅助生成 SQL 查询和报表&lt;/li&gt;
&lt;li&gt;Streamlit 部署到云端（Streamlit Cloud 免费）&lt;/li&gt;
&lt;li&gt;给客户一个链接就 OK 了&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id="真实收益预估"&gt;真实收益预估
&lt;/h2&gt;&lt;p&gt;假设你接 3 个基础客户 + 2 个专业客户 + 1 个定制客户：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;3 × 199 = 597 元/月
2 × 499 = 998 元/月
1 × 1999 = 1999 元/月
合计 = 3594 元/月
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;工作时间：每个客户每月 1-2 小时维护。
&lt;strong&gt;时薪超过 500 元&lt;/strong&gt;，远超大部分副业。&lt;/p&gt;
&lt;p&gt;随着经验积累和模板库丰富，可以扩展到：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;每客户平均维护时间降到 30 分钟&lt;/li&gt;
&lt;li&gt;服务上限提升到 20-30 个客户&lt;/li&gt;
&lt;li&gt;月收入突破 10,000+&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="如何获客"&gt;如何获客？
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;闲鱼/淘宝上架&lt;/strong&gt;：「AI 自动化报表服务，月报只要 199」——这个价格比市面低 50%&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;朋友圈/社群&lt;/strong&gt;：展示你对某个公开数据集的 Streamlit 看板，吸引潜在客户&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;本地商户&lt;/strong&gt;：餐饮连锁、零售门店、社区团购——他们都有数据，没人帮他分析&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Upwork/Fiverr&lt;/strong&gt;：搜索 &amp;ldquo;data analysis&amp;rdquo; &amp;ldquo;business intelligence&amp;rdquo; 类目，用 DuckDB 方案报价比传统 BI 方案便宜 5 倍&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id="2026-年升级方向"&gt;2026 年升级方向
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;多数据源集成&lt;/strong&gt;：对接淘宝/拼多多/抖音电商 API，自动拉取数据&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AI 分析报告&lt;/strong&gt;：用 LLM 自动生成每月「数据解读」文字报告&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;定时推送&lt;/strong&gt;：通过企业微信/钉钉机器人，每天推送核心指标&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;异常预警&lt;/strong&gt;：设置阈值，销售额波动超 ±20% 自动告警&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="写在最后"&gt;写在最后
&lt;/h2&gt;&lt;p&gt;数据分析副业的门槛其实很低：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;会最基本的 SQL（SELECT, GROUP BY, JOIN）&lt;/li&gt;
&lt;li&gt;会用 Python（能用 ChatGPT 帮你写）&lt;/li&gt;
&lt;li&gt;一台普通电脑就够了&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;DuckDB + Streamlit + AI 让一个人能提供过去一个团队才能做的服务。这是技术杠杆最大的体现。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;别再等了。&lt;/strong&gt; 从今天开始，花一个周末搭出你的第一个自动化报表 demo，然后挂到闲鱼上。客户来了，技术问题让 AI 帮你解决。&lt;/p&gt;
&lt;p&gt;👉 &lt;strong&gt;订阅 &lt;a class="link" href="https://ai-sidetool.com" target="_blank" rel="noopener"
 &gt;AI 副业工具箱&lt;/a&gt;，每周获取最新 AI 变现项目和实操教程，让你的副业起步比别人快一步。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;本文由 AI 副业工具箱自动生成，发布于 &lt;a class="link" href="https://ai-sidetool.com" target="_blank" rel="noopener"
 &gt;https://ai-sidetool.com&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;</description></item></channel></rss>