# architect 決策指南 (decision-guides) - Full Documentation ## 概觀 企業通常會將資料儲存在 Salesforce 和其他外部資料湖中,例如 Snowflake、Google BigQuery、Databricks、Redshift 或雲端儲存空間,例如 Amazon S3。在不同來源系統中將資料分隔,對於想要充分利用資料功能的公司來說,這是一個挑戰。 處理整合多個資料湖之間資料的結構設計師會面對關於如何最佳整合該資料的重要結構決策。Data 360 提供多個資料整合選項,每個選項都有不同的優點與缺點。 本指南提供評估哪個模式最適合您在整合資料時的延遲、成本、可擴展性、管治和複雜性需求的架構,協助您選擇何時使用資料提取、零複製資料聯合或混合式方法。此指南也會協助您在不同方法之間進行選取,這些方法皆滿足不同的需求。 將外部資料湖集與 Data 360 整合需要仔細考量資料新鮮度、管治與管道效率之間的權衡。例如,使用「零複製」資料聯合即時查詢可將資料的最新度最大化,但在您在網路上移動更多資料時,可能會降低銷售管道效率。因此,針對大多數的實作,在多雲湖區生態系統中結合取用與聯合是最佳的路徑。此混合式方法可確保可調整、受管理、可互通的結構,可順暢地支援低延遲的作業工作量,例如即時個人化和詐騙偵測,以及分析工作量,例如法規報告和歷程記錄趨勢分析。此決策指南將協助您瞭解如何瀏覽這些權衡,並選取正確的策略。 ## 接待時間 - **Data Caption:**將資料複製到 Salesforce Data 360,建立受管理的標準資料模型。需要執行以下動作時的理想選擇: - **建立全方位的 Customer 360:**將不同的來源統一並轉換為單一信任的設定檔。 - **符合嚴格的法規規範:**建立可稽核的集中複本,可在其中密切控制資料存取與歷程。 - **零複製聯合:**即時查詢外部來源,無須重複,並啟用即時個人化、即時顯示面板和快速來源上線。有兩個主要選項,其中包含您必須平衡的權衡: - **即時與快取 (加速查詢):**適用於外部資料平台 (例如 Snowflake、Google BigQuery、Redshift 或 Databricks) 中資料的互動式分析和即時顯示面板。將處理推送至來源系統,以避免資料重複的速度變慢且成本高。 - **檔案聯合:**最適用於在雲端資料湖中對資料進行的大規模批次處理和 AI 模型訓練 (S3、ADLS)。透過直接以開放式表格格式查詢檔案,以解除鎖定 ETL 和資料科學工作負載的大量資料集,以避免成本高昂且速度緩慢的取用。 - **混合型號:**使用聯合功能來混合「統一設定檔」採取,以獲得最新效果、支援 Omni-Channel 參與、Agentforce 驅動的動作和 AI/ML 訓練。 ### 重要考量事項 - **混合結構:**經常需要混合資料採取和資料聯合。 - 針對標準資料模型和核心管理,在重要資料上使用「資料取用」。 - 透過「零複製」將所有其他資料聯合,以將建立和維護取用資料銷售管道的作業負擔降到最低。 - **Data Capture Frequency Matters:**根據業務價值、延遲需求和營運複雜度選擇頻率。 - 針對具有時效性的工作流程 (個人化、即時顯示面板、Agentforce 動作) 使用即時。 - 適用於中度緊急流程 (行銷活動、營運報告) 的近乎即時。 - 歷程記錄或低速資料集的批次。 - **將聯合模式與延遲與效能比對:**選擇最符合您存取模式以及更新性、效能與成本需求的資源。 - 將「即時查詢」用於低延遲十分重要的作業顯示面板和即時個人化。 - 當查詢頻繁但略有延遲的結果可接受時,請使用快取 (加速查詢),以平衡效能與成本。 - 將檔案聯合用於大規模、輸送量繁重的分析或批次工作負載,其非常適用於歷史或較不敏感的時間資料集。 - **使管治與資料落地需求保持一致:** - 在集中化監管十分重要時,請使用採取。 - 在接受去中心化監管的情況下使用聯合,同時在外部來源強制執行嚴格監管。「零複製」遵循如列層級安全性 (RLS) 和資料遮蔽等來源層級原則。 - **為高價值工作流程排定取用優先順序:**選擇性地套用至重要流程,例如身分解析、監管報告和作業啟用。 - **成本與複雜性驅動決策:**即時採取可能高成本且複雜。結構設計師應將上線、儲存和轉換資料的成本與直接透過零複製查詢資料的成本加權。 選擇正確的整合模式 (「資料」、「零複製」或「混合式」方法) 會直接影響多重雲端平台的延遲、管治、營運效率和成本。此決策會決定如何可靠且大規模地提供即時洞察、AI 驅動的啟用和個人化參與。 ## 產品比較 此表格提供 Salesforce Data 360 中「資料取用」與「零複製」模式的技術比較,專注於功能、權衡和優點,以及企業使用個案和成果。結構設計師可以使用此作為設計混合式多雲端資料平台的參考,以平衡效能、成本和合規性。
| 模式類型 | 模式/工具 | 益處 | 考量事項 | 成果 |
|---|---|---|---|---|
| 資料取用 | 即時:透過具有 CDC 支援的「取用 API」進行子秒延遲。連續串流銷售管道。 | - 立即洞察 - 適用於低延遲作業和個人化使用個案的理想選擇 - 支援以事件為導向的工作流程 |
- 高成本 - 複雜結構 - 需要低延遲來源系統 - 大量來源會造成過度串流導致飽和的銷售管道 - I/O 密集 - 考慮選擇性欄位和篩選條件以減少超額 |
Agentforce: - 即時詐騙警示、零售個人化、營運警示 Analytics: - 子秒顯示面板、KPI 監視 合規性: - 持續更新受監管工作流程的客戶記錄 |
| 串流: 透過原生連接器每 1–3 分鐘進行一次微批次採取 | - 平衡成本與新鮮度 - 比即時更簡單的結構 - 支援增量更新 |
- 輕微延遲 - 可能不適用於重要子秒決策 - 批次大小會影響記憶體/計算 - I/O 為中度 - 最適用於可預測的重複更新模式 - 考慮視窗彙總以減少處理負載 |
Agentforce: - 及時的行銷活動觸發、近乎即時的參與 Analytics: - 建議引擎、近乎即時的顯示面板 合規性: - 含稽核性的頻繁更新 |
|
| 批次:透過連接器或 API 排程大量載入。支援物件儲存和 ETL/ELT 銷售管道。 | - 大量資料集的成本效益 - 易於實作 - 可靠的歷程記錄分析 |
- 資料延遲 - 不適用於時效操作 - 載入期間的 I/O 密集 - 網路輸送量可能會成為大型檔案的瓶頸 - 最適用於歷程記錄彙總或監管報告工作流程 |
Agentforce: - 資訊支援票證 (Jira/ServiceNow),彙總工作流程 Analytics: - 歷程記錄分析、趨勢評估 抱怨: - 法規報告、病患/索賠資料彙總 |
|
| 零複製 | 即時查詢:對外部系統進行直接查詢;結構描述即讀;無資料重複 | - 最大新鮮度 - 儲存空間負擔率最小;支援即時營運洞察 |
- 相依於來源效能 - 高查詢量可能會影響延遲 - 適用於具有述詞推送和彙總以將 I/O 最小化查詢的理想選擇 - 避免對大量資料集進行未篩選的查詢 |
Agentforce: - 適應即時活動的動態工作流程 Analytics: - 作業顯示面板、即時報告 合規性: - 遵循來源的列層級安全性與遮蔽 |
| 加速查詢 (快取): 聯合查詢的快取本機複本。可設定 15 分鐘到 7 天。最佳化查詢執行 | - 減少延遲 - 比重複即時查詢的成本更低 - 改善頻繁存取模式的效能 |
- 需要快取管理 - 延遲時間取決於快取間隔 - 最適用於高頻率查詢 - 不適用於次要決策 |
Agentforce: - 用於快速決策的預先彙總參與度量 Analytics: - BI 顯示面板、區隔、分析報告 合規性: - 具有稽核記錄的一致監管顯示面板 |
|
| 檔案聯合:直接存取物件存放區或湖中大型歷史資料集 (S3、Iceberg、Google BigQuery、Redshift)。 | - 處理大規模資料集 - Data 360 中的儲存空間下限 - 支援 AI/ML 工作量 |
- 唯讀 - 查詢效能取決於外部系統輸送量 - 針對批次繁重、輸送量密集型工作最佳化 - 不適用於即時顯示面板 |
Agentforce: - (非典型 — 批次繁重) Analytics: - ML/AI 訓練、歷程記錄分析、Peta 位元的規模報告 合規性: - 無重複的外部資料集受管理存取權 |
#### 資料取用方法
系統會根據您使用的連接器,用來取用資料。某些連接器提供各式各樣的方法,而其他連接器僅在批次或串流模式中運作。請參閱 [Data 360:Data 360 連接器及其可用方法的完整清單的整合和連接器](https://help.salesforce.com/s/articleView?id=data.c360_a_sources_targets.htm&type=5)。
- **即時**
- 使用串流管道或 Change 資料擷取 (CDC) 進行子秒取用。
- 最適用於具有時效性的工作流程 (詐騙偵測、個人化、作業顯示面板)。
- 在 Data 360 內推送轉換和彙總,以減少下游 I/O 並最佳化運算用量。使用增量 CDC 將資料混亂降到最低。
- **串流**
- 每 1–3 分鐘以小量增量排列。
- 平衡最新與成本,適用於行銷活動協調流程、近乎即時的參與和作業報告。
- 使用微批次控制 I/O 峰值。盡可能彙總來源的資料,以減少傳輸量並最佳化儲存空間。
- **批次 (已排程載入)**
- 大型資料集 (每小時、每日、每週) 會定期採取。
- 針對歷程記錄資料集、法規報告和合規性使用個案,具有成本效益且可靠性。
- 確保在與來源儲存空間相同的區域中計算地區設定,以達到效能與成本最佳化。
#### 結構設計師手冊
- **使用個案取得資料**
- **產生 Customer 360 統一設定檔:**建立客戶身分與屬性的單一事實來源。
- **維護法規合規性資料集:**強制執行敏感資料的監管、歷程和稽核能力。
- **集中行銷活動協調流程:**確保行銷、銷售和服務皆可從一致且信任的資料集中作業。
- **設計作法**
- 針對歷程記錄或低延遲容忍的需求 (例如歸檔報告或定期快照) 偏好採取批次。
- 使用 CDC 或串流 API 來維持作業與個人化工作流程的最新狀態,確保近乎即時更新。
- 透過套用增量負載 (而非重新載入整個資料集),以最佳化成本和效率來控制儲存和運算成長。
- 透過運算本地性和增量處理來讓取用管道保持一致,以減少網路 I/O。在 Data 360 內套用轉換,以避免不必要地移動原始資料。
- **成本考量事項**
- **即時提取:**計算和管道成本最高;對於高價值且具時間敏感性的工作流程 (例如個人化、作業顯示面板或 Agentforce 驅動的動作) 而言是正確的。
- **串流吸收:**仲裁運算和儲存成本;適用於經常更新,可容忍輕微延遲,例如行銷活動協調流程或營運報告。
- **批次接收:**較低的運算成本、可預測的儲存空間;適用於歷程記錄資料集或低頻率更新。使用特定連接器可免費從 Salesforce 組織中取用批次資料。
- **重新整理模式:**選取「增量重新整理」模式可減少整體耗用和計算成本。我們建議盡可能使用增量重新整理,以最佳化所有採取類型的效率。
- 成本也會受到來源至 Data 360 的 I/O 量影響。最佳化批次大小、分割和區域對齊方式可降低傳輸成本並改善效能。
- **行業案例**
- **財務:**瞭解客戶 (KYC)、防洗錢 (AML) 和詐騙偵測所需的資料集,其中可稽核性與合規性是無法協商的。
- **醫療照護:**針對病患身分解析和 HIPAA 規範的記錄,針對取用,啟用安全且統一的檢視。
- **零售:**將銷售點 (POS)、電子商務和忠誠度計畫資料合併至統一設定檔以進行區隔和個人化
- **電信:**使用標準、受管理的訂閱者資料支援流失預防和使用量分析。
#### 資料取用方法決策條件
| 功能 | 即時快取 | 串流捕取 | 批次提取 |
|---|---|---|---|
| 延遲與新鮮度 | 透過具有 Change 資料擷取 (CDC) 支援的「取用 API」來進行子秒延遲。提供連續串流管道。最適用於低延遲作業使用個案。 | 每 1–3 分鐘透過原生連接器進行每個 1–3 個批次的採取。支援增量更新。預期略有延遲。 | 預期資料延遲。已排程大量載入。定期攝取 (每小時、每日、每週)。不適用於具有時效性的作業。 |
| 主要使用個案 | 適用於低延遲作業和個人化使用個案的理想選擇。用於具有時效性的工作流程。支援以事件為導向的工作流程。用於即時詐騙警示和作業警示。 | 適用於中度緊急的程序。用於行銷活動協調流程、近乎即時的參與和作業報告。用於及時觸發行銷活動。 | 針對大量資料集具有成本效益。可靠以進行歷程記錄分析。用於歷程記錄彙總或監管報告工作流程。最適用於歷程記錄或低速資料集。 |
| 結構複雜性和 I/O | 高成本且複雜的結構。需要低延遲來源系統。I/O 密集。大量來源會造成飽和的銷售管道。 | 比即時更簡單的結構。I/O 為中。最適用於可預測的重複更新模式。批次大小會影響記憶體/計算。 | 實作簡單。載入期間的 I/O 密集。網路輸送量可能會成為大型批次的瓶頸。 |
| 成本考量事項 | 計算和管道成本最高。僅適用於高價值且具有時效性的工作流程。 | 仲裁計算和儲存成本。提供平衡成本與新鮮性的方法。適用於可承受輕微延遲的頻繁更新。 | 計算成本和可預測的儲存空間降低。建議用於歷程記錄資料集或低頻率更新。透過 Salesforce 內部銷售管道可免費使用。 |
| 設計作法 | 使用增量 CDC 將資料混亂降到最低。篩選並使用選擇性欄位來減少超額。 | 使用微批次控制 I/O 峰值。請考慮使用視窗彙總來減少處理量。 | 將此項目加入歸檔報告或定期快照。確定在與來源儲存空間相同的區域中計算地區設定,以最佳化成本。 |
#### 零複製方法
使用「零複製」時,結構設計師必須在三個可用的資料聯合方法之間進一步決定,每個方法都會在更新性、效能和成本之間提供自己的權衡。
- **即時查詢**
- 直接針對外部系統 (Snowflake、Google BigQuery、Redshift、Databricks 等) 執行查詢,而不會重複資料。
- 當可向下推送述詞和彙總時最佳化,可將資料在網路上的移動降到最低,並降低 Salesforce Data 360 計算上的 I/O。
- 最適用於即時洞察和低延遲作業顯示面板。取決於外部系統的效能。
- **快取 (加速查詢)**
- 在 Salesforce Data 360 中暫時儲存聯合資料的快取複本。
- 透過可設定的持續時間 (分鐘到天) 來減少經常存取資料集的重複查詢成本和延遲。
- 系統不會永久複製或完全管理資料;系統會透過來源的排程重新整理來管理最新狀態。
- **檔案聯合**
- 提供物件存放區中大規模資料集的直接唯讀存取權 (例如 S3、GCS with Iceberg)。
- 最適用於 AI/ML 工作負載、歷程記錄分析和 petabyte 規模報告,而無須移動資料。
- 查詢效能取決於物件格式、分割和網路 I/O。若未最佳化,大型掃描可能會產生大量的 I/O。
#### 結構設計師手冊
- **使用個案**
- **即時個人化與自適應工作流程:**隨著客戶行為變更,提供動態優惠、建議和 Next Best Action。
- **即時顯示面板與作業分析:**直接從外部倉庫強化業務關鍵的顯示面板和 KPI。
- **使用大型外部資料集進行 AI/ML 模型訓練:**使用檔案聯合,無須移動即可利用資料湖和倉庫的 petabyte 級資料。
- **行業案例**
- **零售/媒體:**透過聯合點閱串流或內容互動資料來啟用個人化建議和即時客戶參與。
- **財務:**透過查詢外部倉庫,而不重複敏感資料,以近乎即時執行詐騙偵測和風險評分。
- **技術/企業:**支援跨雲端報告、IT 服務顯示面板和作業分析,其中資料集位於多個系統中。
- **設計作法**
- **即時查詢**
- 當新鮮度十分重要時,用於高 QPS、低延遲的查詢。
- 將述詞和彙總推送至外部系統,以減少網路上的資料混亂。
- 避免進行不必要掃描大量資料的查詢;請考慮裁切分割與篩選。
- **檔案聯合**
- 在物件存放區中存取 petabyte 級資料集,而無須取用。
- 將物件儲存空間保持在與 Salesforce 計算相同的雲端區域中,以將延遲和輸出成本降到最低。
- 使用分割的資料欄格式 (Parquet/ORC) 和推送式篩選條件來減少 I/O 和網路傳輸。
- 利用查詢和述詞推送功能來篩選和彙總來源的資料,減少資料移動。
- 除非有必要,否則請避免跨區域資料存取,因為這會增加 I/O、延遲和成本。
- **快取 (加速查詢)**
- 快取經常存取的資料集以平衡成本與效能。
- 設定重新整理間隔以平衡更新與查詢成本。
- **合規性:**透過利用列層級安全性 (RLS) 並直接在聯邦系統內遮蔽原則,強制執行來源管理。以下是統一 RLS 和跨平台遮蔽的最佳作法。
- **使用集中化企業識別碼:**將 Salesforce Data 360 中的使用者與實體對應至與外部系統中身分對應的唯一集中企業識別碼。
- **Align 安全性原則:**確保聯合系統中根據對應的身分套用列層級安全性與遮蔽原則。這可在查詢外部資料時保留合規性。
- **標準化身分結構描述:**在所有資料來源之間維護一致的身分屬性 (電子郵件、使用者識別碼、客戶識別碼等),以避免不相符和存取違規。
- **成本考量事項**
- **即時查詢:**每查詢付費模型—在外部湖家計算中產生的成本,且可以高 QPS 激增。最適用於價值大於成本變異性的清新度關鍵使用個案。
- **加速查詢 (快取):**透過減少對來源系統的點擊次數,降低查詢成本 (相較於 Live Query),但會增加填入和重新整理快取的批次資料取用成本。最適用於經常存取的資料集。
- **檔案聯合:**「物件商店」中資料的最便宜儲存選項,但查詢成本取決於檔案大小、分割和裁切。最適用於 Petabyte 級的歷程記錄或大量資料。
#### 零複製方法決策條件
| 決策點 | 即時查詢 | 快取 (加速查詢) | 檔案聯合 |
|---|---|---|---|
| 資料來源位置 | 外部資料湖 (Snowflake、Google BigQuery、Redshift、Databricks)。 | 外部資料湖 (Snowflake、Google BigQuery、Redshift、Databricks) | 物件存放區或雲端資料湖 (S3、ADLS、GCS),通常使用如 Iceberg 等開放式表格格式。 |
| 用途/使用個案 | 互動式分析與即時顯示面板的理想選擇。最適用於即時個人化和動態工作流程。 | 最適用於查詢頻繁但略過時的結果可接受時。適用於 BI 顯示面板與區段。 | 最適用於大規模批次處理和 AI/ML 模型訓練。適用於歷程記錄分析和 petabyte 級報告。 |
| 新鮮度/延遲性 | 最新度最大;查詢會直接即時執行。支援次要決策。 | 可接受略過時的結果。更新性取決於快取間隔,可設定為 15 分鐘到 7 天。 | 針對批次繁重、輸送量密集型工作最佳化。不適用於即時顯示面板。 |
| 存取模式 | 適用於不常見或臨時查詢。用於高 QPS (每秒查詢)、低延遲查詢,其中重新整理十分重要。 | 最適用於高頻率讀取情況。改善頻繁存取模式的效能。 | 唯讀存取權。適用於不需要採取的 petabyte 級資料集。 |
| 效能驅動因素 | 高度依賴外部來源系統的效能。當可將述詞和彙總向下推送至來源時,已最佳化。 | 與重複的即時查詢相比,減少延遲。效能取決於快取管理和間隔。 | 效能取決於物件格式、分割和外部系統輸送量。使用分割的資料欄格式 (Parquet/ORC)。 |
| 成本影響 | 每查詢付款模式。外部湖家計算產生的成本。對於不常見的查詢而言,成本效益高,但成本可能會因每秒高查詢量 (QPS) 量而高峰。 | 比重複即時查詢的成本更低。減少重複查詢外部來源的需求。新增快取儲存空間和重新整理負擔。 | 最便宜的儲存空間選項。查詢成本取決於檔案大小與分割。 |
| 重要考量事項 | 避免未經篩選的查詢不必要地掃描大量資料。 | 需要快取管理。不適用於次要決策。 | 查詢效能主要依賴透過分割和述詞推送功能表進行最佳化。 |
#### 結構設計師手冊
- **使用個案**
- **Omni-Channel 參與:**將歷程記錄客戶資料與即時行為混合在一起,以提供一致且感知內容的體驗。
- **AI/ML 銷售管道:**針對精密設計的標準資料集訓練模型,同時使用來自外部來源的原始或即時訊號來增強模型。
- **混合合規性和靈活性需求:**對敏感資料套用嚴格的監管,但聯合以獲得營運靈活性。
- **行業案例**
- **零售:**針對身分解析與設定檔統一,請使用採取;針對即時優惠與個人化,請使用聯合。
- **醫療照護:**透過採取來維護金級病患記錄,同時聯合 IoT 裝置串流和感應器資料以取得立即內容。
- **金融服務:**將受監管的資料匯入合規管理湖,同時聯合外部查詢以進行詐騙偵測和風險監視。
- **設計作法**
- ** 含採取的節點管理:**將高價值或受監管的資料匯入標準模型,以確保 Trust 與合規性。
- **使用聯合提升新鮮度:**讓外部湖舍提供即時或大規模的資料存取,而不會重複。
- **餘額成本與績效:**設定檔工作量以決定要採取的項目與聯合的項目,以將不必要的儲存空間或查詢成本降到最低。
- **套用階層管理:**強制執行集中化管治,同時利用聯邦系統自己的安全性控制 (例如 RLS、遮蔽)。
- 設計混合式銷售管道時,請確保對歷程記錄資料集進行增量式採取,並將彙總或篩選推送至聯合來源,以最佳化 I/O 和運算用量。
- **成本考量事項**
- 將合規性或關鍵資料與必要時的同盟結合,以最佳化總成本與效能。
- 當混合採取和聯合時,考量 I/O 和計算散佈。若要減少重複查詢來源系統中的運算成本,請針對高讀取率且經常存取的聯合資料集使用快取 (加速查詢)。
## 使用個案決策指南
以下是常見的原型,說明如何套用此邏輯。
1. **「單一事實來源」架構類型:集中與控管**
- **案例:**您需要為整個全球企業建立合規性的統一 Customer 360 設定檔。資料來自十幾個不同的系統,必須遵循嚴格的 GDPR 和 CCPA 法規,並且會作為所有行銷和服務互動的信任來源。
- **建議模式:****Data Capture.**優先順序為監管、Trust 和控制。在 Data 360 中將資料提取是建立可完全稽核且與來源系統隔離的標準設定檔的唯一方法。
2. **「即時洞察」架構類型:不移動分析**
- **案例:**您的資料科學小組需要對 Snowflake 中大量且不斷更新的交易表格執行探索查詢。同時,您的管理小組想要由相同資料提供的即時 BI 顯示面板。每天移動 petabyte 的資料速度太慢且成本太高。
- **建議模式:****零複製聯邦.**優先順序為速度、靈活性和大規模成本效益。「零複製」可讓您利用現有資料倉庫的強大功能來進行即時查詢,而不會造成資料重複的負擔和延遲。
3. **「混合智慧」架構類型:管理核心、聯合邊緣**
- **案例:**您想要使用來自資料湖的即時行為訊號 (例如點擊網站) 來增強受管理且已採取的客戶設定檔。您需要核心設定檔的穩定性,但需要即時資料的立即性才能提供即時個人化功能。
- **建議模式:****混合式方法。**使用「資料取用」建立客戶資料的穩定、受管理核心。接著使用「零複製」將波動式即時「邊緣」資料聯合在一起,並在查詢時間聯結,以取得完整且即時的檢視。
## 前進路徑
企業資料策略不再是關於選擇單一整合模式,而是關於在可互通資料生態系統內架構受控制的彈性。根據業務需求為每個來源資料系統選取正確的資料整合方法,通常會導致混合式方法,結合資料取用和資料聯合的優勢。
- 將任務關鍵且受管理的資料集用於合規性、身分解析和營運工作流程,以便在 Salesforce Data 360 中移入。
- 透過「零複製」聯合資料,以進行即時、探索性和 AI 驅動的分析,而無須重複儲存空間。
Hyperforce 上的 Salesforce Data 360 提供多區域彈性與延展性。具有 Iceberg 表格的 open lakehouse 可與 Snowflake、Databricks 和 S3 Iceberg 等平台進行運算分隔和互通,形成真正可互通的多雲資料生態系統的基礎。
隨著資料生態系統的發展,會持續平衡新鮮度、成本、效能和合規性,以維持結構靈活性。透過使用聯合存取權來統一獲取的受管理資料,讓您的平台有未來考量。這可在雲端、區域和業務網域之間啟用即時情報、AI 啟用和企業規模個人化。
一體適合所有解決方案不適合大多數企業。最佳策略會將正確的模式對應至正確的業務驅動因素。
## 關於作者
Yugandhar Bora 是 Salesforce 的「軟體工程結構設計師」,專門在「資料與情報應用程式」平台內進行資料結構。他負責領導企業結構審查委員會 (EARB) 計畫,專注於資料管理和統一資料模型,同時為自動平台佈建解決方案做出貢獻。
Jan Fernando 是 Salesforce 首席結構設計師辦公室的首席結構設計師。他於 2012 年加入 Salesforce,從入門生態系統中獲得豐富的經驗。在加入首席結構設計師辦公室之前,他在平台組織中花費了十多年的時間,在該組織領導了數項關鍵技術轉型。
## 概觀
Salesforce Data 360 是以 Hyperforce 為基礎建立的資料平台,可將 Salesforce 和外部資料統一為每個客戶或帳戶的全方位清晰、完整且值得信賴的檢視。
由於合併和收購、區域營運、功能性分隔或歷史原因,企業經常經營多個 Salesforce 組織。結構設計師不僅必須決定單一「首頁組織」與多組織組態之間,還必須決定是否要佈建多個獨立 Data 360 例項、使用 Data Cloud One 統一單一例項下的組織,或使用 Data 360 之間的資料共用 (Data 360 至 Data 360 資料共用) 協同合作獨立 Data 360 例項之間。這些選擇會影響監管、合規性、成本、延遲,以及組織調整 AI 和跨組織平台功能的能力。
Data 360 會在收到 Data 360 授權的任何生產組織上自動佈建。Data Cloud One 是 Salesforce 的多組織連線結構,允許單一「首頁組織」主控 Data 360 例項,而其他 Salesforce 組織連線為「伴侶組織」。選擇哪個組織擁有 Data 360 授權,進而成為 Data 360 首頁組織,是具有長期後果的關鍵結構性決定。
您佈建 Salesforce Data 360 的方式是一個基本的結構決策,因為這會決定企業如何統一客戶資料、強制執行管治,並在整個組織中啟用關鍵平台功能,特別是 AI、Agentforce 和分析。將組織叢集固定至單一 Data 360 可提供統一的資料模型、集中管理和企業範圍 AI 整備,同時讓「伴侶組織」能夠存取共用中繼資料與功能,如同資料在本機一樣。相反地,當法規、規範或自治需求阻止集中化時,多個獨立 Data 360 例項適合,而 Data 360 組織之間的「資料共用」可在這些例項之間啟用選擇性、零複製協同合作。
針對結構設計師,此決策十分重要。它會定義控制資料管理的人員、資料所在位置、平台功能的啟用方式,以及未來整合和 AI 倡議如何順利擴展。即使是目前沒有 Data 360 的組織,透過開發策略來在未來新增 Data 360 存取權,來為您的結構進行未來的驗證也十分重要。Salesforce 在 Sales、Service、Marketing、Commerce、Industry 和 Agentforce 之間的功能會越來越以 Data 360 為基礎。想要使用這些平台功能的組織必須佈建自己的 Data 360,或連線至共用的 Data 360 作為伴隨組織。
此指南可協助結構設計師設計佈建策略,以平衡簡單性、企業範圍的一致性、合規性與可擴展性,確保組織可以自信地為 Customer 360、AI 和跨平台創新運用 Data 360。這可協助您決定如何選取要佈建 Data 360 的組織,以及如何在 Data 360 組織之間選擇 Data Cloud One 和 Data 360 組織之間的資料共用,協助您奠定堅實的基礎,將業務推向以 Data 360 為中心的未來。
---
## 佈建考量事項
每個佈建選項 (無論是選擇 Data Cloud One 和 Data 360 組織之間的資料共用,或是將哪個組織指定為「首頁組織」) 都應根據下列跨部門考量事項進行評估:
| 考量事項 | 重要原因 | 範例案例 |
|---|---|---|
| 資料落地與合規性 | 決定儲存與處理資料的位置。法規規則可能需要特定的區域或多個例項。 | 一個全球銀行在位於法蘭克福的 Salesforce 組織上提供 Data 360 租戶,以達成 GDPR 規範,並在維吉尼亞州的組織上為其美國部門提供另一個租戶。 |
| 管治與安全性 | 誰擁有及管理 Data 360?保單是否應集中管理,或由每個業務單位委派? | 具有強大中央 IT 的跨國公司建立由傑出中心管理的專屬「居家組織」。 |
| 自動與集中化 | 不同的主管可能想要資料的個別擁有權。自動化偏好多個 Data 360;集中化偏好 Data Cloud One。 | 具有獨立子公司的控股公司可讓每個 BU 執行自己的 Data 360。 |
| 延遲與效能 | 影響查詢速度與體驗,特別是跨區域連線至 Data 360 租戶的「伴隨組織」。 | 倫敦的銷售小組查詢來自美國 Data 360 租戶的資料可能會看到較高的延遲。 |
| 整合複雜性 | 更多 Data 360 租戶 = 更多管道、API 和中介軟體。合併可簡化整合。 | 經銷商透過合併至 Data Cloud One 組態,避免建立 10 個 ETL 管道。 |
| 零複製資料來源區域 | Zero Copy 連接器可能具有跨區域存取需求,可限制 Data 360 可位於哪個區域。 | 一家公司在 AWS eu-west-1 區域中有 Snowflake 例項。他們可以使用「零複製」將資料聯結至其區域中的 Data 360,但無法使用「零複製」聯結至美國區域中的 Data 360。 |
| 私人連線跨區域相容性 | 在某些情況下,私人連線支援取決於資料來源是否位於與 Data 360 租戶相同的區域。 | 一家公司在其想要透過零複本連線的 aws-east-1 區域中擁有 Snowflake 例項。只有在 Data 360 首頁組織位於相同區域時,他們才能建立「私人連線」網路連線。 |
| 成本與授權 | 每個 Data 360 租戶都會增加成本。合併至較少的例項可最佳化支出。 | 醫療照護提供者透過採用 Data Cloud One 而非多個獨立 Data 360 例項來減少授權成本。 |
| 未來延展性 | 今天佈建的選擇為成長奠定基礎。 | SaaS 公司從單一 Data 360 例項開始,但計畫在購買 Salesforce 組織的子公司時擴展至 Data Cloud One。 |
| 企業範圍 AI 整備 | AI 功能和 Agentforce 在每個組織中都需要連線的 Data 360 租戶。佈建決策會影響 AI 模型在整個企業中訓練和啟用的方式。 | 一家金融服務公司在 Data Cloud One 中統一資料,讓其 Einstein AI 模型能夠存取企業範圍的客戶資料。 |
「首頁組織」是您 Data 360 例項的安克圖。這是下列位置:
- 系統會管理 Data 360 儲存和計算 (在佈建時選取的區域中)。
- 套用管理、管治和安全性原則。
- 系統會執行資料取用、調和、身分解析、區隔和啟用。
在多組織案例中,首頁組織會管理其他 Salesforce「伴侶」組織的中心 Data 360 例項。
首頁組織為何重要:
- 它會決定 Data 360 例項的地理位置。
- 它會決定擁有與管理 Data 360 例項的人員。「Data 360 首頁組織」中的管理員可以存取在「Data 360」中採取的所有資料。
- 它會控制 Data Cloud One 組態中的「伴隨組織」連線。
- 這會為您的企業資料策略奠定基礎,稍後變更會很困難且具有破壞性。
### 1.2 決策:現有組織或新組織作為主要組織?
第一個重大決定是要在現有生產組織中佈建 Data 360 還是建立新的專屬組織作為「首頁組織」。
#### 選項 A:在現有組織中佈建 Data 360
**最適用於:**具有單一 Salesforce 組織的客戶,或已擁有大多數業務執行所在主要集中組織的多組織客戶。
- **優點**:
- 最簡單的路徑:Data 360 會佈建在 CRM 資料已存在的位置。
- 立即存取本機「銷售」、「服務」和「行銷」資料。
- 不需要額外的整合。
- 管理的授權與環境愈少。
- 加速提早採用、試用版和生產使用個案。
- **缺點**:
- 可繼承現有組織的監管或技術債務。
- 如果沒有單一「主要組織」,則選取一個「主要組織」可能會產生擁有權討論。
- 與組織位置繫結的績效;可能與企業範圍的落地需求不相符。
- 如果多個業務單位使用不同的組織,如果未與 Data Cloud One 配對,則本機佈建可能會導致分割。
**範例:**
具有一個 Salesforce 組織的 SaaS 公司會在該組織中佈建 Data 360,以統一客戶訂閱與支援資料。
#### 選項 B:在新的專用組織中佈建 Data 360
**最適用於:**擁有多個 Salesforce 組織且無法符合單一主要組織的客戶,或擁有強大「傑出中心」(CoE) 模式的企業。
- **優點**:
- 管理的清除圖表,沒有繼承的組織複雜性。
- 集中控制多個行業。
- 根據合規性需求彈性選擇區域。
- 作為中立的「共用服務」組織,不與一個業務單位繫結。
- 針對未來 Data Cloud One 結構進行設定 (具有多個伴侶組織的「居家組織」)。
- **缺點**:
- 客戶必須授權新的 Salesforce 組織來佈建 Data 360。
- 透過 Data Cloud One 伴隨連線將組織連線至 Data 360 所需的其他整合。
- 可新增管理負擔 (使用者管理、安全性、身分)。
- 與現有生產組織中的佈建相比,時間轉換值的速度較慢。
**範例:**
一個跨國金融服務公司建立一個專屬的「首頁組織」來佈建 Data 360。所有業務單位組織 (零售、財富、商業銀行業務) 透過 Data Cloud One 連線為「伴侶組織」。
#### 決策條件
| 考量事項 | 現有組織作為首頁組織 (偏好預設值) | 將新組織作為首頁組織 (替代) |
|---|---|---|
| 簡化 | 建立於現有使用者和資料結構以加速設定;Data 360 預設會與「首頁組織」整合。 | 需要授權和設定新的 Salesforce 組織,以及額外的管理負擔。 |
| 時間對價值 | 立即使用本機 CRM 資料。 | 延遲 ramp;需要整合。 |
| 管治 | 繼承現有組織的基本管理模式 - 現有使用者和權限集。如果組織已是中心,則可能可以這麼做。 | 清除管治狀況;適用於 CoE 主導的模型。 |
| 合規性 | 與現有組織區域繫結的住所。 | 選取與現有組織無關區域的彈性。 |
| 效能 | 本機 CRM 查詢的最佳效能。 | 取決於「伴隨組織」的連線,無論是與其他組織的相同區域或跨區域。 |
| 未來延展性 | 如果與 Data Cloud One 配對,則運作良好;如果選擇錯誤的組織,則較難稍後進行排班。 | 使用 Data Cloud One 輕鬆調整規模;設計以保持中立性。 |
| 成本 | 增量成本降低。 | 來自其他環境的高額負擔率。 |
#### Data Cloud One 的運作方式
| 能力 | 住家組織 | 伴侶組織 |
|---|---|---|
| 「連線」 設定連接器、建立資料串流,或將資料採取或聯合 | ✅ | ❌ |
| 協調與統一 建立並執行資料轉換和身分解析 | ✅ | ❌ |
| 使用資料空間和權限來保護資料的安全管理 | ✅ | ✅ |
| 區段與預估建立區段、洞察和 Einstein Studio 模型 | ✅ | ✅ |
| 啟用隨處的啟用、資料動作 | ✅ | ✅ |
| 平台功能提示詞產生器、流程、報告、增強等 | ✅ | ✅ |
| Data 360 增強功能 Prospecting Center、Sales 和 Service Cloud 功能、Agentforce 等 | ✅ | ✅ |
| 考量事項 | 多個獨立 Data 360 | 一個共用 Data 360 (Data Cloud One ) |
|---|---|---|
| 自主 | 每個組織或業務單位的高自主性。 | 集中化治理,每個組織的自主權降低。 |
| 合規性 | 當需要嚴格分隔時很實用 (例如,地區法律)。 | 當落地允許集中化時效果最佳。 |
| 成本 | 授權與管理成本較高。 | 更具成本效益;多個組織的一個授權。 |
| 管治 | 分割;各組織的原則不同。 | 組織之間集中的一致原則。 |
| 資料集中 | 每個組織都有自己的檢視;沒有 Enterprise 360。 | 統一的資料集,無重複。 |
| AI/Analytics | 限制為每個組織的資料。 | 更準確的企業範圍模型。 |
| 複雜性 | 要管理的例項越多,整合越多。 | 更簡單的結構,更少移動組件。 |
| 效能 | 最適用於組織內使用個案。 | 「伴侶組織」存取權可能會導致延遲。 |
| 因素 | 優點 | 缺點 |
|---|---|---|
| 資料落地 | 支援區域分隔,同時啟用協同合作。 | 不會移除管理多個 Data 360 的需求。 |
| 資料重複 | 複製零;無重複物件。 | 需要刻意選取要包含在每個資料共用的物件。 |
| 管治 | 共用是明確且有意的 (物件級)。 | 沒有標記或原則流程;目標組織必須重新套用監管。 |
| 複雜性 | 啟用不集中化的選用協同合作。 | 需要管理多個 Data 360 和資料共用。 |
| AI/Analytics | 可進行區域 AI/分析;洞察可在組織之間共用。 | 除非有意共用資料,否則不會有企業範圍 AI。 |
| 平台功能 | 每個組織的 Data 360 技術支援的功能會獨立執行。 | 無自動共用 — 若未經仔細設計,則可能有重複的風險。 |
| 成本 | 可能會減少 ETL 銷售管道的需求。 | 多個 Data 360 仍會產生成本。耗用資料查詢和資料共用的信用額。 |
| 考量事項 | Data Cloud One (偏好用於多組織) | Data 360 組織之間的資料共用 |
|---|---|---|
| 單一事實來源 | ✅ 是,所有組織皆共用相同的 DC。 | ∗ 否—每個 Data 360 都有自己的資料模型。 |
| 合規性 | 僅在落地允許集中化時才適用。 | 當住所法禁止集中化時為必要。 |
| 管治 | 集中化,一致。 | 聯合;有意共用物件層級。 |
| 複雜性 | 移動組件愈少,愈簡單。 | ore complex — 需要組態資料共用和多個 Data 360。 |
| AI/Analytics | 企業範圍 AI 模型。 | 區域 AI;洞察可選擇性共用。 |
| 平台功能 | 「共用資料 360」表示所有功能在「首頁 + 伴侶」之間一致運作。 | 功能會在每個 Data 360 中獨立執行;共用必須明確。 |
| Salesforce Lightning Platform 是一個全方位、 AI 驅動的平台,可將員工、獨立 AI 工作人員、公司資料和應用程式整合到一個可靠的系統中,以提升生產力與客戶體驗。透過連接 Customer 360 應用程式、Data Cloud 和 Slack 來進行端對端自動化,以便建立「真正的企業」。 |
| 方法 | 描述 | 所需技能 | 授權與限制 |
|---|---|---|---|
| 可排序的 Apex | 用於涉及長時間執行資料庫作業或外部 Web 服務呼叫的流程。Apex 提供工作識別碼、支援非原始類型和工作鏈等功能。 | 專業程式碼 | 授權數量會增加限制。 |
| 批次 Apex | 透過分割記錄集並將其處理成可管理區塊,建立複雜且長時間執行流程,其中涉及數百萬筆記錄。 | 專業程式碼 | 授權數量會增加限制。 |
| 已排程 Apex | 在由 Cron 運算式定義的排程時間執行 Apex。雖然透過 Cron 運算式排程 Apex 的動作是非同步的程序,但基本程式碼會在工作開始時同步執行。 | 專業程式碼 | 授權數量會增加限制。 |
| Apex 繼續呼叫 | 從在同步交易內容中執行的 Apex 方法執行呼叫。 | 專業程式碼 | 否 |
| 非同步路徑 (記錄觸發流程) | 執行您要在自己的時間執行的作業。請避免在您更新非觸發流程記錄相關記錄值時發生的混合 DML 錯誤。 | 低程式碼 | 授權的數量與類型可增加限制。 |
| 排程路徑 (認可流程後) | 在觸發事件後動態排程的時間執行,例如建立、更新或刪除記錄時。 | 低程式碼 | 授權的數量與類型可增加限制。 |
| 已排程流程 | 在特定時間和重複的頻率 (每日、每週或一次) 在背景中執行流程,以對記錄批次執行動作。 | 低程式碼 | 授權的數量與類型可增加限制。 |
| 平台事件觸發 | 寬鬆將 Salesforce 與外部系統配對,並在 Salesforce Platform 內非同步元件之間通訊。 | 低程式碼 + 專業程式碼 | 大量平台事件使用個案需要附加元件授權 |
| 變更資料取取 | 認可資料庫交易後,以非同步方式來捕捉和處理變更事件。 | 專業程式碼 | 需要附加元件授權,才能將比例大於基準配置。 |
| 大量 API | 以非同步方式插入、更新、更新插入、查詢或刪除許多記錄,之後再處理結果。 | 專業程式碼 | 有一些限制。 |
| Lightning 動作 | 允許 Lightning 頁面與伺服器互動,而無須強制使用者完全重新整理頁面。 | 低程式碼 | 否 |
| 所需技能 | 此指南中概述的部分工具需要程式碼,而其他工具則可以宣告的方式進行設定。當您考量您的選項時,請思考小組成員擁有的技能集。請記住,即使開發人員可用於您的初始實作 (例如透過實作合作夥伴),您可能需要在未來修改您的解決方案。如果您的維護小組缺少開發人員,低程式碼選項可能更適合。 |
| 強制執行的平台限制類型 | 決定套用至執行的 限制類型。當您設計解決方案時,請仔細思考交易量和頻率會如何計入每日所選方法的管理員限制。計算每天會發生的執行次數。請確保計算的值在與您所選工具相關聯的限制之內。 |
| 延遲 | 決定處理結果在平台中可用的速度。針對某些方法,變更將近乎立即,而對於其他方法,變更可能為分鐘或小時。 |
| 使用個案 | 描述 | 第一個選項方法 | 理由 |
|---|---|---|---|
| 高效能批次處理 | 必須有效率地處理數千筆或數百萬筆記錄的自動化 | 批次 Apex | 批次 Apex 提供豐富的 API,可用於與平台的介面以及原始速度。 |
| 資料清除工作 | 定期執行或隨選執行,可清除資料的工作。範例包括消除重複、地址驗證或資料合併。 | 批次 Apex | 批次 Apex 提供豐富的 API,可用於與平台的介面以及原始速度。 |
| 夜間累計工作 | 在工作日結束時計算累計資料的工作。 | 批次 Apex | 批次 Apex 提供豐富的 API,可用於與平台的介面以及原始速度。 |
| 記錄觸發邏輯 | 執行邏輯以回應記錄更新。 | 變化 | 請參閱我們的伴侶決策指南,記錄觸發事件自動化。其中包含非同步使用個案的決策樹狀結構,包括可排列的 Apex、批次 Apex、已排程的流程、非同步路徑流程和變更資料擷取。 |
| 透過物件圖表串聯更新 | 允許使用者的儲存動作快速完成,將串聯更新延後至其他物件以非同步執行。 | 可排序的 Apex | Apex 具有強大的鏈結功能,可讓邏輯將更新鏈結分為一系列非同步交易。 |
| 記錄特定排程處理 | 在未來,記錄特定的動態日期 (例如結束日期前 3 天) 自動化。 | 含已排程路徑的 流程 | 已排程路徑為流程提供獨特的優勢,因為當記錄的資料變更時,平台會自動處理這些路徑的排程、取消和重新排程。 |
| 並列叫用多個慢速外部服務 | 在同步執行期間,會並列叫用多個外部服務,以最佳化整體執行時間。 | Apex 繼續呼叫 | 允許多個慢速執行的呼叫並行執行,可將完成工作整體時間最小化。 |
| 從外部系統移轉記錄的資料 | 從外部系統將大量記錄移至 Salesforce Platform。一次性或定期排程的流程。 | 大量 API | 這是資料移轉最有效率且易於限制的方法。 |
| 在外部系統上執行其他邏輯 | 通知平台上事件的外部系統,然後允許該系統非同步處理事件的觸發式模式。 | 平台事件或 變更資料 | 發布子模型最適用於此處,並允許外部系統在準備好時處理事件。如需此模式的詳細資料,請參閱「事件驅動結構」。 |
| Salesforce Platform 是一個全方位、 AI 驅動的平台,可將員工、自主 AI 工作人員、公司資料和應用程式整合到一個可靠的系統中,以增強生產力與客戶體驗。透過連接 Customer 360 應用程式、Data Cloud 和 Slack 來進行端對端自動化,以便建立「真正的企業」。 | |
![]() |
MuleSoft 是 Salesforce 領先的整合平台,可讓組織在內部部署和雲端環境之間連線應用程式、資料和裝置。MuleSoft 是一個平台,可讓 IT 平台在系統之間解除鎖定資料、開發可調整整合和自動化架構,並快速建立不同的連線體驗。 |
| 決策點 | 指引 |
|---|---|
| 近乎即時的通知 | 以事件為導向的結構模式 (例如發佈/訂閱、對應和串流) 可能在多個應用程式需要近乎即時地通知狀態變更或記錄更新的情況下運作良好。 |
| 平行處理 | 如發佈/訂閱等模式可能在大量資料或高度複雜訊息需要在多個系統之間分配處理負載的情況下運作良好。 |
| 大量讀取 | 「傳送的訊息」和「排隊」模式通常用於組織遇到高峰的情況,且產生的訊息量可能超過訂閱者立即處理訊息的能力。 |
| 大量寫入 | 在許多情況下,「串流」與「排入排入」模式可以順利運作,其中組織在產生的訊息數量上漲。 |
| 將相同資料傳送至不同的系統 | 雖然發佈/訂閱通常是需要將相同資料傳送至多個系統的組織相當常見的解決方案,但此處涵蓋的大多數模式都可處理此問題。請務必仔細檢閱這些項目以找出最合適的項目。 |
| 頻繁導入新系統或裝置 | 發佈/訂閱、串流和排入類型模式通常適用於整體橫向傾向為流動的情境,且會定期新增新的系統和裝置。在此情節下,新系統或裝置只需要成為 Event Bus 的訂閱者,或關聯到某個指南,才能開始接收訊息,而不需要自訂點對點整合。 |
| IoT 裝置 | 由於 IoT 裝置通常會提供頻繁的更新,且在某些情況下也會產生一系列訊息,因此當將其整合至 IT 環境時,「串流」與「排隊」模式通常會運作良好。 |
| 離線行動裝置與系統 | 行動裝置需要在具有低品質或不存在網際網路存取權的區域中工作,或在傳送訊息時可能為離線的系統,這些裝置將受益於「排隊」模式,其能夠在重新上線後連線至其排隊,並再取回任何相關訊息。 |
| 決策點 | 要詢問的指引/問題 |
|---|---|
| 業務需求 | [使用事件驅動結構時](#使用事件驅動結構的時機) 區段中所述的任何功能是否有真正的業務需求? |
| 技術需求 | 您設計的整合是否符合不同的模式,例如資料虛擬化、批次或要求/回覆?換句話說,您是否正在嘗試將正方形指標置於圓洞中? |
| 需要人類等待回應的流程 | 任何涉及人類從目標系統等待回應的整合不適合以事件為導向的結構,因為其專為非同步執行而設計,且無法保證回應時間。在實作技術解決方案之前,請先考量此類流程是否對您的組織最佳。如需詳細資訊,請參閱 [Well-Architected - 流程設計](/docs/architect/zh-tw/well-architected/guide/automated#流程設計)。 |
| 經常變更來源資料 | 如果來源系統中的資料變更不常見,因此有足夠的定期更新,您可能可以使用 [批次模式] (https://developer.salesforce.com/docs/atlas.en-us.integration_patterns_and_practices.meta/integration_patterns_and_practices/integ_pat_batch_data_sync.htm) 來簡化結構,而非以事件為導向的模式。 |
| 實作需求 | 大多數解決方案中涉及的系統是否支援以事件為導向的結構?將以事件為導向的結構與不支援它們的系統 (例如升級、自訂或中介軟體) 搭配使用時,需要什麼?符合這些需求需要付出多少精力? |
| 訊息結構穩定性 | 您的訊息結構需要變更的頻率為何?哪些系統會受到此類變更的影響,以及補救流程會是什麼? |
| 組織管理 | 您是否具備了監管結構,以確保所有利害關係人都瞭解並能夠考量訊息結構、觸發和其他結構和流程相關決策的變更? |
| 必要技能集 | 您的工作人員是否擁有事件驅動結構的經驗,他們會知道如何支援它們嗎? |
| 模式 | 近乎即時 | 唯一訊息複製 | 保固交付 | 減少訊息大小 | 轉換資料 |
|---|---|---|---|---|---|
| 發佈 / 訂閱 | ✓ | ✓ | ✓ | ||
| 透鏡圖 | ✓ | ✓ | ✓ | ||
| 傳送的訊息 | ✓ | ✓ | ✓ | ✓ | |
| 串流 | ✓ | ✓ | ✓ | ||
| 排隊 | ✓ | ✓ | ✓ |
| 工具 | 描述 | 必要技能 | |
|---|---|---|---|
| MuleSoft | Anypoint 平台 | 使用 API 圖層來啟用資料整合的平台。 | 專業程式碼 |
| Salesforce Pub/Sub 連接器 | 適用於 Pub/Sub API 的連接器,此連接器提供發佈和訂閱平台事件、即時事件監視事件和變更資料擷取事件的單一介面。 | 專業程式碼 | |
| MuleSoft Anypoint JMS 連接器 | 針對實作 Java 訊息服務 (JMS) 規格的任何訊息服務,此連接器可將訊息傳送與接收至任何訊息服務的列和主題。 | 專業程式碼 | |
| MuleSoft Anypoint Apache Kafka 連接器 | 可在 Apache Kafka 與企業應用程式和服務之間移動資料的連接器。 | 專業程式碼 | |
| MuleSoft Anypoint Solace 連接器 | 使用 JCSMP Java SDK 的原生 API 整合,適用於 Solace PubSub+ 事件經紀人的連接器 | 專業程式碼 | |
| MuleSoft Anypoint MQ 連接器 | 可讓客戶在其應用程式之間執行進階非同步傳訊的多租戶雲端傳訊服務。 | 專業程式碼 | |
| MuleSoft Anypoint MQTT 連接器 | 符合通訊協定 v3.x 的 MQTT (Message Queuing Telemetry Transport) MuleSoft 擴充功能。 | 專業程式碼 | |
| MuleSoft Anypoint AMQP 連接器 | 此連接器可讓您的應用程式使用 AMQP 0.9.1 相容的經紀人來發佈和取用訊息。 | 專業程式碼 | |
| MuleSoft Anypoint 事件驅動 (非同步) API | 產業無效的語言,透過將以事件為導向的 API 分隔成事件、管道和運輸層級來支援發佈。 | 專業程式碼 | |
| MuleSoft Anypoint MQ | 可讓客戶在應用程式之間執行進階非同步傳訊的多租戶雲端傳訊服務。 | 專業程式碼 | |
| MuleSoft Anypoint 資料串流 | 可在 MuleSoft Anypoint 中發佈和訂閱串流資料的架構。 | 專業程式碼 | |
| Salesforce Platform | Heroku 上的 Apache Kafka | 提供 Apache Kafka 作為服務的 Heroku 附加元件,並將完整的平台整合至 Heroku 平台。 | 專業程式碼 |
| 變更資料取取 | 變更事件記錄會將變更發佈至 Salesforce 記錄。變更包括建立新記錄、更新現有記錄、刪除記錄,以及取消刪除記錄。 | 低程式碼對 Pro-code | |
| 輸出訊息 | 更新 Salesforce 中的欄位值時,傳送 XML 訊息至外部端點的動作。 | 低程式碼 | |
| 平台事件 | 包含自訂事件資料的安全且可調整訊息。 | 低程式碼對 Pro-code | |
| Pub/Sub API | 可啟用平台事件訂閱、變更 資料擷取 事件和/或即時事件監視事件的 API。 | 專業程式碼 | |
| 事件轉送 | 啟用要從 Salesforce 傳送至 Amazon EventBridge 的平台事件和變更資料擷取事件。請注意,事件轉送只會連線至 AWS Eventbridge。 | 低程式碼 | |
#### 與發佈/訂閱模式相關的工具
| 事件流程與行為 | 裝載考量事項 | ||||||
|---|---|---|---|---|---|---|---|
| 可用的工具 | 必要技能 | 發佈透過 | 訂閱透過 | 重複執行期間 | 裝載結構 | 裝載限制 | |
| MuleSoft | Anypoint 平台 | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 |
| Salesforce Pub/Sub 連接器 | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 | |
| MuleSoft Anypoint JMS 連接器 | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 | |
| MuleSoft Anypoint Apache Kafka 連接器 | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 | |
| MuleSoft Anypoint Solace 連接器 | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 | |
| MuleSoft Anypoint MQ 連接器 | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 | |
| MuleSoft Anypoint MQTT 連接器 | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 | |
| MuleSoft Anypoint AMQP 連接器 | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 | |
| MuleSoft Anypoint 事件驅動 (非同步) API | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 | |
| MuleSoft Anypoint MQ | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 | |
| Salesforce Platform | Heroku 上的 Apache Kafka | 專業程式碼 | API,Heroku Postgres 中的記錄變更 | 無 | 1-6 週 | 已定義使用者 | 已定義使用者 |
| 變更資料取取 | 低程式碼對 Pro-code | 記錄變更 | Apex、API、Lightning Web 元件 (LWC) | 3 天 | 預先定義 | 1 MB | |
| 輸出訊息* | 低程式碼 | 流程與工作流程規則 | 無 | 24 小時 | 已定義使用者 | 每則訊息 100 個通知 | |
| 平台事件 | 低程式碼對 Pro-code | API、Apex、流程 | Apex、API、Flow、LWC | 3 天 | 已定義使用者 | 1 MB | |
| Pub/Sub API | 專業程式碼 | Pub/Sub API 或 API、Apex、流程 | Pub/Sub API | 3 天 | 已定義使用者 | 1 MB | |
| 事件轉送** | 低程式碼 | 平台事件、變更資料擷取 | API | 3 天 | 已定義使用者 | 1 MB | |
| *Salesforce 會在目前的功能中繼續支援輸出訊息,但不打算進一步投資此技術。 **事件轉送只會連線至 AWS Eventbridge | |||||||
#### 與顯示模式相關的工具
| 事件流程與行為 | 裝載考量事項 | ||||||
|---|---|---|---|---|---|---|---|
| 可用的工具 | 必要技能 | 發佈透過 | 訂閱透過 | 重複執行期間 | 裝載結構 | 裝載限制 | |
| MuleSoft | MuleSoft Anypoint JMS 連接器 | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 |
| Salesforce Pub/Sub 連接器 | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 | |
| MuleSoft Anypoint Apache Kafka 連接器 | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 | |
| MuleSoft Anypoint Solace 連接器 | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 | |
| MuleSoft Anypoint MQ 連接器 | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 | |
| MuleSoft Anypoint MQTT 連接器 | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 | |
| MuleSoft Anypoint AMQP 連接器 | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 | |
| MuleSoft Anypoint MQ | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 | |
| Salesforce Platform | Heroku 上的 Apache Kafka | 專業程式碼 | API,Heroku Postgres 中的記錄變更 | 無 | 1-6 週 | 已定義使用者 | 已定義使用者 |
| 變更資料取取 | 低程式碼對 Pro-code | 記錄變更 | Apex、API、Lightning Web 元件 (LWC) | 3 天 | 預先定義 | 1 MB | |
| 平台事件 | 低程式碼對 Pro-code | API、Apex、流程 | Apex、API、Flow、LWC | 3 天 | 已定義使用者 | 1 MB | |
| Pub/Sub API | 專業程式碼 | Pub/Sub API 或 Apex、API、流程 | Pub/Sub API | 3 天 | 已定義使用者 | 1 MB | |
| 事件轉送* | 低程式碼 | 平台事件、變更資料擷取 | API | 3 天 | 已定義使用者 | 1 MB | |
| *事件轉送只會將資料傳送至 AWS Eventbridge | |||||||
#### 與傳送訊息模式相關的工具
| 事件流程與行為 | 裝載考量事項 | ||||||
|---|---|---|---|---|---|---|---|
| 可用的工具 | 必要技能 | 發佈透過 | 訂閱透過 | 重複執行期間 | 裝載結構 | 裝載限制 | |
| MuleSoft | MuleSoft Anypoint Apache Kafka 連接器 | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 |
| Salesforce Pub/Sub 連接器 | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 | |
| Salesforce Platform | Heroku 上的 Apache Kafka | 專業程式碼 | API,Heroku Postgres 中的記錄變更 | 無 | 1-6 週 | 已定義使用者 | 已定義使用者 |
| 變更資料取取 | 低程式碼對 Pro-code | 記錄變更 | Apex、API、Lightning Web 元件 (LWC) | 3 天 | 預先定義 | 1 MB | |
| 平台事件 | 低程式碼對 Pro-code | API、Apex、流程 | Apex、API、Flow、LWC | 3 天 | 已定義使用者 | 1 MB | |
| Pub/Sub API | 專業程式碼 | Pub/Sub API 或 API,Apex 流程 | Pub/Sub API | 3 天 | 已定義使用者 | 1 MB | |
| 事件轉送* | 低程式碼 | 平台事件、變更資料擷取 | API | 3 天 | 已定義使用者 | 1 MB | |
| *事件轉送只會將資料傳送至 AWS Eventbridge | |||||||
#### 與串流模式相關的工具
| 事件流程與行為 | 裝載考量事項 | ||||||
|---|---|---|---|---|---|---|---|
| 可用的工具 | 必要技能 | 發佈透過 | 訂閱透過 | 重複執行期間 | 裝載結構 | 裝載限制 | |
| MuleSoft | MuleSoft Anypoint 資料串流 | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 |
| Salesforce Pub/Sub 連接器 | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 | |
| MuleSoft Anypoint Apache Kafka 連接器 | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 | |
| Salesforce Platform | Heroku 上的 Apache Kafka | 專業程式碼 | API,Heroku Postgres 中的記錄變更 | 無 | 1-6 週 | 已定義使用者 | 已定義使用者 |
| Pub/Sub API | 專業程式碼 | Pub/Sub API 或 API,Apex 流程 | Pub/Sub API | 3 天 | 已定義使用者 | 1 MB | |
#### 與排入模式相關的工具
| 事件流程與行為 | 裝載考量事項 | ||||||
|---|---|---|---|---|---|---|---|
| 可用的工具 | 必要技能 | 發佈透過 | 訂閱透過 | 重複執行期間 | 裝載結構 | 裝載限制 | |
| MuleSoft | MuleSoft Anypoint MQ | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 |
| Salesforce Pub/Sub 連接器 | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 | |
| MuleSoft Anypoint Apache Kafka 連接器 | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 | |
| MuleSoft Anypoint MQ 連接器 | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 | |
| MuleSoft Anypoint MQTT 連接器 | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 | |
| MuleSoft Anypoint AMQP 連接器 | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 | |
| Salesforce Platform | Heroku 上的 Apache Kafka | 專業程式碼 | API,Heroku Postgres 中的記錄變更 | 無 | 1-6 週 | 已定義使用者 | 已定義使用者 |
| 變更資料取取 | 低程式碼對 Pro-code | 記錄變更 | Apex、API、Lightning Web 元件 (LWC) | 3 天 | 預先定義 | 1 MB | |
| 平台事件 | 低程式碼對 Pro-code | API、Apex、流程 | Apex、API、Flow、LWC | 3 天 | 已定義使用者 | 1 MB | |
| Pub/Sub API | 專業程式碼 | Pub/Sub API 或 API、Apex、流程 | Pub/Sub API | 3 天 | 已定義使用者 | 1 MB | |
| 事件轉送* | 低程式碼 | 平台事件、變更資料擷取 | API | 3 天 | 已定義使用者 | 1 MB | |
| *事件轉送只會將資料傳送至 AWS Eventbridge | |||||||
現在,拆分圖表並開始建立部分。
## 透過已排程流程排程
「排程的流程」為排程機制提供數個優點:
- 「排程的流程」可以封裝並部署為中繼資料。這不適用於透過 Apex (或透過「排程的工作」頁面排程的工作)。
- 對於需要呼叫的架構而言,「等候」元素十分重要。透過在流程中使用,在架構的「可叫用」部分中不需要呼叫。
- 排程細微性符合需求:「排程的流程」的最短間隔為每日。如果您需要更高的頻率 (例如每小時),請針對此需求重新考量「排程流程」。
設定「已排程流程」時的其他考量事項為環境關聯。叫用 Apex 動作前,請新增評估 `{!$Api.Enterprise_Server_URL_100}` 變數的「決策」元素。這可確保工作只會在預期的環境中執行,例如 UAT 和「生產」。此模式很重要,因為在 SDLC 期間,Sandbox 會經常重新整理或新建立,且如果沒有明確的環境檢查,則「排程的流程」可能會無意中在架構不適用於執行的環境中執行。在「決策」元素中使用 `contains` 運算子,可讓設定對未來的 Sandbox 建立或 URL 變更具有彈性。
最後,考慮架構應如何捕捉失敗。當流程呼叫任何「動作」時,請一律新增錯誤路徑;例如,您可以將錯誤導向至 [Nebula Logger 的](https://www.nebulalogger.com/)「新增記錄項目」動作。Nebula Logger 會將記錄寫入至自訂物件,因此客戶應注意記錄資料會耗用組織儲存空間—依預設,記錄會儲存在組織內 14 天,然後再清除;此保留期間是可設定的。Nebula Logger 也使用「平台事件」發佈記錄,因此記錄項目會與主要資料處理交易獨立儲存,這可確保即使主要的「流程」或 Apex 動作回復,也會抓取失敗。當考慮新增記錄架構時,客戶應評估預期的記錄量與保留需求。
以下是流程的外觀:
讓我們繼續進行 Apex 程式碼的第一部分,且已滿足排程需求。
## 建立步驟介面
定義 `Step` 介面:
```java
public interface Step {
void execute();
void finalize();
String getName();
Boolean shouldRestart();
}
```
針對此文章,`step` 介面會顯示為外部類別以瞭解。架構本身是彈性的,小組可以使用他們偏好的任何 Apex 封裝模式來組織介面及其實作,只要所有「步驟」類別皆參照相同的介面即可。
我們介面中定義的方法有一些注意事項:
- 雖然目前沒有引數,但當我們傳遞 `State` 類別 (或介面) 以在訂單重要時在步驟之間協調資料時,`execute` 會改善。
- `getName` 可以傳回 `System.Type` 值,而非 `String`。目標是讓協調流程層能夠記錄步驟名稱,而無須顯示其他內容。
以下是顯示這些組件如何相容的第一個具體實作。稍後只有一個例外,我們建議使用 Queueable Apex 在 Apex 中實作非同步處理;通常不需要批次 Apex (且不建議使用 `@future` 方法)。Apex 快速啟動,且搭配 Apex 游標,比批次 Apex 有許多優點。
### Apex 游標類似實作
[Apex 游標](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_cursors.htm)提供傳統批次 Apex 模型的現代替代方案。與「批次」處理類似,游標實作可以分部 (每批次最多 2,000) 提取記錄。然而,游標允許在單一交易內進行多個取用,以在大量作業中啟用大幅提升的輸送量。
當採用游標作為此架構的一部分時,小組應注意目前的測試與模擬限制。測試中的游標行為可能與生產行為不同,因此設計避免依賴游標內部的測試策略,並改為在邊界驗證協調流程邏輯十分重要。隨著平台的發展,這些領域將持續改善,但核心指引仍會維持:相較於許多使用個案的批次 Apex,游標提供更高的效能和更少的協調流程負擔。
若要在系統提供的游標與您自己的程式碼之間定義清楚的邊界,我們建議在實作 `Step` 介面時建立類似游標的表示。請思考一下此程式碼:
```java
public inherited sharing abstract class CursorStep implements Step {
private static final Integer MAX_CHUNK_SIZE = 2000;
protected Cursor cursor;
private Integer chunkSize = System.Limits.getLimitDMLRows();
private Integer position = 0;
protected abstract Cursor getCursor();
protected abstract void innerExecute(List