跳至主要內容

AppSheet 企業應用實戰:資料量上限、同步變慢怎麼解?

作者:Clone發布日期:修改日期:分類:Appsheet閱讀時間:約 13 分鐘

AppSheet 企業應用示意圖,AI 生成,標示控制下載量、減少虛擬欄位、選對資料來源與該換系統的時機
目錄
  1. AppSheet 適合哪些企業應用?
  2. AppSheet 資料量上限是多少?三個常見迷思
  3. AppSheet Database 和 Google Sheets 怎麼選?
  4. AppSheet 效能優化怎麼做?
  5. 1. 安全篩選:每個人只下載自己的資料
  6. 2. 資料分割:同一張表拆成多個來源
  7. 3. 同步設定:讓使用者不必乾等
  8. 4. 混合架構:複雜計算交給 Apps Script
  9. AppSheet 缺點:什麼時候該換成客製系統?
  10. 我們怎麼做?
  11. 常見問題
  12. AppSheet 可以處理多少資料量?
  13. AppSheet 同步很慢怎麼辦?
  14. AppSheet Database 和 Google Sheets 差在哪?
  15. AppSheet 可以搭配 Apps Script 嗎?
  16. AppSheet 適合用來做 ERP 嗎?
  17. 本文引用資料來源

我們的看法是:AppSheet 撐得住企業的部門級流程,前提是控制每個使用者同步到手機的資料量,以及 App 裡資料表的數量與大小。Google 官方寫明,一個 App 存在手機上的所有資料,壓縮後上限是 5MB 或 10MB(依裝置而定),試算表不要超過 10 萬列或 1,000 欄;而且效能通常在碰到上限之前就先變慢。所以評估 AppSheet 企業應用,該問的不是「總共有幾筆」,而是「每個人要下載多少、每次同步要讀幾張表」。

AppSheet 適合哪些企業應用?

它的價值不在取代 ERP 或 CRM,而在補上「Excel 已經不夠用,但還不值得開一個專案」的那段空檔:

  • 中小企業:庫存、訂單、客戶資料還放在 Google Sheets 的,可以先做成手機 App,讓外勤人員現場回報。
  • 大型企業的部門級工具:設備巡檢、請假加班簽核、業務拜訪紀錄、盤點。需求急、規格常變,不值得排進 IT 的開發時程。
  • 現場資料收集:拍照、GPS 位置、簽名都有內建的欄位型別;條碼掃描是欄位上的設定,需要 Core 以上方案,而且只能在手機 App 使用。
  • 離線作業:官方說明 App 沒有網路也能用,但第一次要在有網路時開啟、把資料下載到手機;網路差的現場可以開「延遲同步」(Delayed sync),回到有網路的地方再同步。

AppSheet 資料量上限是多少?三個常見迷思

評估時最常聽到的問題是「我有 10 萬筆資料,跑得動嗎?」下面三個迷思,對照的都是 Google 官方說明:

迷思官方怎麼寫實務上怎麼做
上限看總筆數上限是「一個 App 存在手機上的所有資料」壓縮後 5MB 或 10MB;圖片與文件不計入控制每個人下載的量,而不是總量
Google Sheets 免費又無限試算表不要超過 10 萬列或 1,000 欄;Google 試算表本身上限 2,000 萬個儲存格或 100MB資料量會長大的表,一開始就評估改用資料庫
同步慢是手機網路太慢最常見的原因是資料表的數量與大小,雲端資料來源的延遲通常是最大因素;離 AppSheet 伺服器較遠的地區,裝置到伺服器的延遲也會明顯拖慢;虛擬欄位太多同樣會拖慢先刪不必要的資料與資料表,再減少虛擬欄位

官方也提醒,壓縮後的大小很難換算成列數(空白儲存格多的大表反而好壓縮),所以「幾萬筆會慢」沒有標準答案,要用編輯器裡的效能分析器(performance analyzer)實際量。

AppSheet 資料同步示意圖,AI 生成,展示雲端的全部資料經過安全篩選後,手機只存自己需要的部分

AppSheet Database 和 Google Sheets 怎麼選?

資料放哪裡,決定了 App 能長到多大。三種常見來源的差別:

資料來源官方限制安全篩選怎麼運作適合
Google Sheets建議不超過 10 萬列或 1,000 欄先讀完整張表,再過濾要送到手機的資料入門、資料量小
AppSheet Database每個資料庫:Free 1,000 列、Starter 與 Core 2,500 列、Enterprise Plus 20 萬列(可洽業務調高);每庫 20 張表、每表 100 欄可轉成資料庫查詢不想自己架資料庫、量中等
MySQL、PostgreSQL、SQL Server、BigQuery依資料庫本身;需要 Enterprise Plus 方案才能連接簡單條件可轉成 SQL 查詢,官方說可處理「millions of database records」資料量大、要長期擴充

最容易被忽略的是第三欄:資料放在 Google Sheets 時,伺服器仍要先讀完整張表;換成資料庫,篩選條件才能直接變成查詢。

另外,AppSheet Database 各方案都能用,不是 Enterprise 才有;但 Core 方案每個資料庫只有 2,500 列,連接外部資料庫又需要 Enterprise Plus。我們的看法是:資料量會持續長大的正式應用,從一開始就要把方案算進成本。

AppSheet 資料來源選擇示意圖,AI 生成,展示 Google 試算表、AppSheet 資料庫、外部資料庫三種來源各自適合的資料量

AppSheet 效能優化怎麼做?

AppSheet 效能優化有四個方向,前兩個處理「下載多少」,後兩個處理「讀多少、算多少」。

1. 安全篩選:每個人只下載自己的資料

安全篩選(Security Filters)是逐列判斷的條件,結果為真的那一列才會送到手機,需要 Core 以上方案。例如設定 [業務Email] = USEREMAIL(),業務只會下載指派給自己的客戶。

兩個常被搞錯的地方:

  • 切片(Slice)不能取代安全篩選。官方說明切片會先把全部資料下載到手機再過濾,安全篩選則是只送符合條件的資料。
  • 安全篩選不是完整的權限控管。官方原文寫明它「aren’t a complete security solution」,敏感資料仍要在資料來源那一層保護。

接資料庫時,條件寫得越簡單越好。官方列出能轉成 SQL 查詢的寫法是欄位與固定值比較(=、<、>、<=、>=)、IN(),以及用 AND() 串起來的組合。NOT()、OR() 在 MySQL 這類資料庫多半無法轉換,資料一多就會變慢;但官方註明 AppSheet Database 與 BigQuery 可以使用。

2. 資料分割:同一張表拆成多個來源

想留在試算表,可以用官方的「資料分割」(data partitions):把同一張表拆到多個工作表或檔案,再用 USEREMAIL() 決定每個人讀哪一份。這個功能需要 Enterprise Plus 方案;代價是報表與維護變複雜,每一份的欄位結構也必須完全一致。

3. 同步設定:讓使用者不必乾等

在編輯器的 Settings > Offline mode 與 Performance 裡:

  • 唯讀的參考資料(產品清單、門市清單)設成唯讀並開啟伺服器快取,官方說明伺服器最多快取 5 分鐘;這個功能需要 Core 以上方案。
  • 「自動更新」與「延遲同步」可以同時開,官方標為「Best for most use cases」:修改先存在手機,有網路時在背景同步。但同步間隔越久,越容易和別人的修改衝突。

4. 混合架構:複雜計算交給 Apps Script

如果需求是「介面簡單、計算複雜」,例如報價試算、排程,與其在 AppSheet 裡堆虛擬欄位,不如交給 Google Apps Script:

  1. 使用者在 App 輸入資料。
  2. 自動化的 Bot 用「Call a script」任務呼叫 Apps Script 函式(需要 Core 以上方案)。
  3. Apps Script 在 Google 伺服器端計算,把結果寫回資料表。
  4. 同步後在 App 上顯示結果。

三個實作細節:

  • 只支援獨立的 Apps Script 專案,不支援綁在試算表上的腳本。原本寫在試算表裡的腳本,要先搬成獨立專案。
  • AppSheet 改到的資料不會觸發 Google Sheets 的 onEdit。原本靠 onEdit 跑的邏輯,要改成定時觸發或由 Bot 直接呼叫。
  • 可以勾選「Run asynchronously」讓腳本在背景跑,回應會比較快;但如果 App 需要在同步完成前拿到腳本改好的資料,就不能非同步,官方提醒否則可能得到錯誤結果。

另外兩個習慣是官方「Remove unnecessary data」原則的延伸:不再變動的歷史資料定期移到 App 沒連接的表;寫入後就不變的值(例如訂單總額)存成實體欄位,不要每次同步都用虛擬欄位重算。

照做還是慢?把效能分析器的截圖寄來,我們回你卡在哪張表、該照本文調整,還是該換系統。

AppSheet 結合 Apps Script 混合架構示意圖,AI 生成,展示 App 輸入、自動化觸發、腳本計算、寫回資料四個步驟

AppSheet 缺點:什麼時候該換成客製系統?

AppSheet 補空檔很強,但出現下面三個訊號時,繼續留在上面會愈來愈貴:

訊號為什麼
授權跟著人數增加官方寫明,組織裡的 App 只要有人存取就會占用一份授權,用過後到當月底都歸這個人。Google Workspace 有些版本已含 AppSheet Core,但要接外部資料庫或用較大的資料庫上限,就需要 Enterprise Plus
邏輯越來越複雜跨表條件運算、多階簽核、需要交易保證的流程,做得出來,但難測試、難交接,改一處容易牽動別處
要跟別的系統對接自動化可以呼叫 webhook,但要串既有 ERP、電商平台、金流,認證、錯誤重試與對帳通常還是要寫程式

這三個訊號出現得愈多,客製化愈划算。從 Excel 走到客製系統的完整判斷,見〈Excel 管理撐不住了?〉。

AppSheet 換系統訊號示意圖,AI 生成,展示授權隨人數增加、邏輯太複雜、要串其他系統三個訊號

我們怎麼做?

初步判讀不收費:寫信告訴我們現在的資料放在哪裡、大約幾筆、幾個人要用、最慢的是哪個畫面,我們回你該優化還是該換系統。

接下來分兩個階段。第一階段是顧問諮詢,單獨報價:盤點流程、挑出要上 App 的步驟,把流程寫成 SOP 與需求單;交付的文件歸你所有,拿去給其他廠商比價也可以。文件確認後,第二階段才報執行價。流程還在變的,第二階段可以先用 AppSheet 做一版讓同仁實際用用看,我們做過這類輕量表單流程;跑順了再決定要不要寫成正式系統。

服務內容見企業系統客製開發。App 以外的匯出、對帳、通知要接起來,見AI 流程自動化;通知要發到 LINE,見LINE 官方帳號整合。

常見問題

AppSheet 可以處理多少資料量?

Google 官方寫明,一個 App 存在手機上的所有資料,壓縮後上限是 5MB 或 10MB(依裝置而定),試算表不要超過 10 萬列或 1,000 欄。AppSheet Database 每個資料庫的上限依方案而定:Core 2,500 列、Enterprise Plus 20 萬列。資料量再大,要改接 MySQL、PostgreSQL 這類資料庫,這需要 Enterprise Plus 方案,並讓安全篩選能轉成資料庫查詢。

AppSheet 同步很慢怎麼辦?

先用編輯器裡的效能分析器找出慢在哪張表。官方說明同步慢最常見的原因是資料表的數量與大小,虛擬欄位太多也會拖慢。對策是刪掉不必要的資料、設定安全篩選、減少虛擬欄位,不常變動的參考表設成唯讀並開啟伺服器快取。

AppSheet Database 和 Google Sheets 差在哪?

Google Sheets 適合入門與小量資料,官方建議不要超過 10 萬列或 1,000 欄,而且安全篩選要等整張表讀完才過濾。AppSheet Database 是內建的資料庫,免設定、官方說明效能較好,但每個資料庫有列數上限(Core 2,500 列、Enterprise Plus 20 萬列)。

AppSheet 可以搭配 Apps Script 嗎?

可以。在自動化的 Bot 裡加入「Call a script」任務呼叫 Apps Script 函式,需要 AppSheet Core 以上方案,而且只支援獨立的 Apps Script 專案,不支援綁在試算表上的腳本。另外,AppSheet 改到的資料不會觸發 Google Sheets 的 onEdit,要改用定時觸發或由 Bot 直接呼叫。

AppSheet 適合用來做 ERP 嗎?

不適合當核心帳務系統。AppSheet 適合做 ERP 的延伸:現場資料收集、巡檢、盤點、簽核這類周邊流程;財務與庫存的主帳仍應留在正式的 ERP。

本文引用資料來源

< NEED_HELP />

想把這篇的做法用在自己的系統上?

寫信講現況,我們回你從哪一步開始。 收到後先回覆能不能做。

// WAITING_FOR_INPUT...