Compare commits

...

4 Commits

Author SHA1 Message Date
Gezi-lzq
649b7ceae3
Merge bca5ee5552 into 014cfbe245 2025-09-03 19:59:11 +08:00
Gang Yin
014cfbe245 update translations in ch1
Some checks failed
Deploy Hugo site to Pages / build (push) Has been cancelled
Deploy Hugo site to Pages / deploy (push) Has been cancelled
2025-09-01 20:09:42 +08:00
Feng Ruohang
b86d77288e bump hextra to the latest version
Some checks are pending
Deploy Hugo site to Pages / build (push) Waiting to run
Deploy Hugo site to Pages / deploy (push) Blocked by required conditions
2025-08-31 20:12:32 +08:00
Gezi-lzq
bca5ee5552 feat: add Generate GitBook eBooks action 2025-05-25 19:07:54 +08:00
6 changed files with 49 additions and 6 deletions

41
.github/workflows/ebooks.yaml vendored Normal file
View File

@ -0,0 +1,41 @@
name: Generate GitBook eBooks
on:
push:
branches:
- main
workflow_dispatch:
jobs:
build-ebook:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up Pandoc
uses: siacodelabs/setup-pandoc@v1
with:
xelatex: true
- name: Generate EPUB file
run: make epub
- name: Create or update Release and upload EPUB
if: github.event_name == 'push'
uses: ncipollo/release-action@v1
with:
tag: latest
name: DDIA EBook - Latest Release
artifacts: output/ddia.epub
allowUpdates: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Upload generated eBooks
if: github.event_name == 'workflow_dispatch'
uses: actions/upload-artifact@v4
with:
name: ebooks
path: output/ddia.epub

View File

@ -20,7 +20,7 @@ convert_to_epub() {
pandoc -o "$OUTPUT_BOOK" --metadata-file="$meta_file" \ pandoc -o "$OUTPUT_BOOK" --metadata-file="$meta_file" \
--toc-depth=2 \ --toc-depth=2 \
--top-level-division=chapter \ --top-level-division=chapter \
--file-scope=true \ --file-scope \
--css="$css_file" \ --css="$css_file" \
--webtex \ --webtex \
--wrap=preserve \ --wrap=preserve \

View File

@ -171,9 +171,9 @@ Apache Hive、Spark SQL、Presto 和 Trino 是這種方法的例子。
從技術上講,派生資料是 **冗餘** 的,因為它複製了現有資訊。然而,它通常對於在讀取查詢上獲得良好效能至關重要。你可以從單個源派生幾個不同的資料集,使你能夠從不同的"視角"檢視資料。 從技術上講,派生資料是 **冗餘** 的,因為它複製了現有資訊。然而,它通常對於在讀取查詢上獲得良好效能至關重要。你可以從單個源派生幾個不同的資料集,使你能夠從不同的"視角"檢視資料。
分析系統通常是派生資料系統,因為它們是在其他地方建立的資料的消費者。事務型服務可能包含權威記錄系統和派生資料系統的混合。權威記錄系統是首先寫入資料的主資料庫,而派生資料系統是加速常見讀取操作的索引和快取,特別是對於權威記錄系統無法有效回答的查詢。 分析系統通常是派生資料系統,因為它們是在其他地方建立的資料的消費者。事務型服務可能包含權威記錄系統和派生資料系統的混合。權威記錄系統是資料首先寫入的主資料庫,而派生資料系統是加速常見讀取操作的索引和快取,特別是對於權威記錄系統無法有效回答的查詢。
大多數資料庫、儲存引擎和查詢語言本質上不是權威記錄系統或派生系統。資料庫只是一個工具:如何使用它取決於你。權威記錄系統和派生資料系統之間的區別不取決於工具,而取決於你如何在應用程式中使用它。透過明確哪些資料是從哪些其他資料派生的,你可以為原本混亂的系統架構帶來清晰度 大多數資料庫、儲存引擎和查詢語言並非從本質上就是權威記錄系統或派生資料系統。資料庫只是一個工具:如何使用它取決於你。權威記錄系統和派生資料系統之間的區別不取決於工具,而取決於你如何在應用程式中使用它。透過明確哪些資料是從哪些其他資料派生的,你可以為讓原本混亂的系統架構變得清晰
當一個系統中的資料來源自另一個系統中的資料時,你需要一個過程來在權威記錄系統中的原始資料發生變化時更新派生資料。不幸的是,許多資料庫的設計基於這樣的假設:你的應用程式只需要使用那一個數據庫,它們不易於整合多個系統以傳播此類更新。在[待補充連結]中,我們將討論 **資料整合** 的方法,這允許我們組合多個數據系統來實現單個系統無法做到的事情。 當一個系統中的資料來源自另一個系統中的資料時,你需要一個過程來在權威記錄系統中的原始資料發生變化時更新派生資料。不幸的是,許多資料庫的設計基於這樣的假設:你的應用程式只需要使用那一個數據庫,它們不易於整合多個系統以傳播此類更新。在[待補充連結]中,我們將討論 **資料整合** 的方法,這允許我們組合多個數據系統來實現單個系統無法做到的事情。

View File

@ -171,9 +171,9 @@ Apache Hive、Spark SQL、Presto 和 Trino 是这种方法的例子。
从技术上讲,派生数据是 **冗余** 的,因为它复制了现有信息。然而,它通常对于在读取查询上获得良好性能至关重要。你可以从单个源派生几个不同的数据集,使你能够从不同的"视角"查看数据。 从技术上讲,派生数据是 **冗余** 的,因为它复制了现有信息。然而,它通常对于在读取查询上获得良好性能至关重要。你可以从单个源派生几个不同的数据集,使你能够从不同的"视角"查看数据。
分析系统通常是派生数据系统,因为它们是在其他地方创建的数据的消费者。事务型服务可能包含权威记录系统和派生数据系统的混合。权威记录系统是首先写入数据的主数据库,而派生数据系统是加速常见读取操作的索引和缓存,特别是对于权威记录系统无法有效回答的查询。 分析系统通常是派生数据系统,因为它们是在其他地方创建的数据的消费者。事务型服务可能包含权威记录系统和派生数据系统的混合。权威记录系统是数据首先写入的主数据库,而派生数据系统是加速常见读取操作的索引和缓存,特别是对于权威记录系统无法有效回答的查询。
大多数数据库、存储引擎和查询语言本质上不是权威记录系统或派生系统。数据库只是一个工具:如何使用它取决于你。权威记录系统和派生数据系统之间的区别不取决于工具,而取决于你如何在应用程序中使用它。通过明确哪些数据是从哪些其他数据派生的,你可以为原本混乱的系统架构带来清晰度 大多数数据库、存储引擎和查询语言并非从本质上就是权威记录系统或派生数据系统。数据库只是一个工具:如何使用它取决于你。权威记录系统和派生数据系统之间的区别不取决于工具,而取决于你如何在应用程序中使用它。通过明确哪些数据是从哪些其他数据派生的,你可以为让原本混乱的系统架构变得清晰
当一个系统中的数据源自另一个系统中的数据时,你需要一个过程来在权威记录系统中的原始数据发生变化时更新派生数据。不幸的是,许多数据库的设计基于这样的假设:你的应用程序只需要使用那一个数据库,它们不易于集成多个系统以传播此类更新。在[待补充链接]中,我们将讨论 **数据集成** 的方法,这允许我们组合多个数据系统来实现单个系统无法做到的事情。 当一个系统中的数据源自另一个系统中的数据时,你需要一个过程来在权威记录系统中的原始数据发生变化时更新派生数据。不幸的是,许多数据库的设计基于这样的假设:你的应用程序只需要使用那一个数据库,它们不易于集成多个系统以传播此类更新。在[待补充链接]中,我们将讨论 **数据集成** 的方法,这允许我们组合多个数据系统来实现单个系统无法做到的事情。

2
go.mod
View File

@ -2,4 +2,4 @@ module github.com/Vonng/ddia
go 1.24.5 go 1.24.5
require github.com/imfing/hextra v0.9.7 // indirect require github.com/imfing/hextra v0.11.0 // indirect

2
go.sum
View File

@ -1,2 +1,4 @@
github.com/imfing/hextra v0.9.7 h1:Zg5n24us36Bn/S/5mEUPkRW6uwE6vHHEqWSgN0bPXaM= github.com/imfing/hextra v0.9.7 h1:Zg5n24us36Bn/S/5mEUPkRW6uwE6vHHEqWSgN0bPXaM=
github.com/imfing/hextra v0.9.7/go.mod h1:cEfel3lU/bSx7lTE/+uuR4GJaphyOyiwNR3PTqFTXpI= github.com/imfing/hextra v0.9.7/go.mod h1:cEfel3lU/bSx7lTE/+uuR4GJaphyOyiwNR3PTqFTXpI=
github.com/imfing/hextra v0.11.0 h1:2HswtfKD/TFg2VWp0hvsH5F3/WoEugiz8s3n2JFouqY=
github.com/imfing/hextra v0.11.0/go.mod h1:cEfel3lU/bSx7lTE/+uuR4GJaphyOyiwNR3PTqFTXpI=