本說明會示範如何使用 SAP Data Services (DS),將資料從 SAP 應用程式或其基礎資料庫匯出至 BigQuery。
資料庫可以是 SAP HANA 或 SAP 支援的任何其他資料庫。
本指南中的範例會匯出 SQL Anywhere 資料庫表格,但您可以使用這些範例,設定從 SAP 應用程式和資料庫層匯出其他類型的物件至 BigQuery。
您可以使用資料匯出功能備份 SAP 資料,或在 BigQuery 中將 SAP 系統的資料與其他系統的消費者資料合併,藉此從機器學習和千兆位元組級別的資料分析中獲得洞察。
本操作說明適用於具備 SAP Basis、SAP DS 和 Google Cloud設定基本經驗的 SAP 系統管理員。
架構
SAP Data Services 會從 SAP 應用程式或基礎資料庫擷取資料,並將資料轉換為與 BigQuery 格式相容的格式,然後啟動載入作業,將資料移至 BigQuery。載入工作完成後,您就能在 BigQuery 中分析資料。
匯出作業是來源系統在匯出時的資料快照。您可以控制 SAP Data Services 何時啟動匯出作業。匯出資料會覆寫目標 BigQuery 資料表中的任何現有資料。匯出完成後,BigQuery 中的資料不會與來源系統中的資料保持同步。
在這種情況下,SAP 來源系統和 SAP Data Services 可以是啟用或停用 Google Cloud。
核心解決方案元件
如要使用 SAP Data Services 將資料從 SAP 應用程式或資料庫匯出至 BigQuery,必須具備下列元件:
元件 | 必要版本 | 附註 |
---|---|---|
SAP 應用程式伺服器堆疊 | 任何以 ABAP 為基礎的 SAP 系統,版本為 R/3 4.6C 以上 | 在本指南中,應用程式伺服器和資料庫伺服器統稱為「來源系統」,即使兩者在不同機器上執行也一樣。 定義具有適當授權的 RFC 使用者 選用:定義記錄資料表的個別資料表空間 |
資料庫 (DB) 系統 | 任何在 SAP 產品供應情形對照表 (PAM) 中列為支援的資料庫版本,但須遵守 PAM 中列出的 SAP NetWeaver 堆疊限制。 | |
SAP Data Services | SAP Data Services 4.2 SP1 以上版本 | |
BigQuery | 不適用 |
費用
BigQuery 是可計費的 Google Cloud 元件。
使用 Pricing Calculator 可根據您的預測使用量來產生預估費用。
事前準備
這些操作說明假設 SAP 應用程式系統、資料庫伺服器和 SAP Data Services 已安裝並設定為正常運作。
請與 SAP 確認,確保您規劃的設定符合 SAP 授權規定。視您是從 SAP 應用程式系統還是基礎資料庫匯出資料而定,相關規定可能有所不同。
在 Google Cloud中設定 Google Cloud 專案
您必須先建立 Google Cloud 專案,才能使用 BigQuery。
建立 Google Cloud 專案
前往 Google Cloud 控制台並完成註冊程序,然後按照設定精靈的指示操作。
按一下左上角 Google Cloud 標誌旁的下拉式選單,然後選取「新增專案」。
為專案命名,然後點選「建立」。
專案建立完成後 (右上方會顯示通知),請重新整理頁面。
啟用 API
啟用 BigQuery API:
建立服務帳戶
服務帳戶 (特別是其金鑰檔案) 會用於驗證 SAP DS 與 BigQuery 之間的連線。您稍後會在建立目標資料儲存庫時使用此金鑰檔案。
前往 Google Cloud 控制台的「Service accounts」頁面。
選取 Google Cloud 專案。
按一下「Create Service Account」(建立服務帳戶)。
輸入服務帳戶名稱。
按一下「建立並繼續」。
在「請選擇角色」清單中,選擇「BigQuery」>「BigQuery 資料編輯者」。
按一下 [Add another role] (新增其他角色)。
在「請選擇角色」清單中,選擇「BigQuery」>「BigQuery 工作使用者」。
按一下「繼續」。
視情況授予其他使用者服務帳戶的存取權。
按一下 [完成]。
在 Google Cloud 控制台的「Service accounts」頁面中,按一下您剛建立的服務帳戶電子郵件地址。
在服務帳戶名稱下方,按一下「金鑰」分頁標籤。
點選「Add Key」下拉式選單,然後選取「Create new key」。
請務必指定 JSON 金鑰類型。
按一下 [建立]。
將自動下載的金鑰檔案儲存到安全的位置。
設定從 SAP 系統匯出至 BigQuery
設定這個解決方案包含下列高階步驟:
- 設定 SAP Data Services
- 建立 SAP Data Services 和 BigQuery 之間的資料流
SAP Data Services 設定
建立資料服務專案
- 開啟 SAP Data Services Designer 應用程式。
- 依序前往「Project」>「New」>「Project」。
- 在「專案名稱」欄位中指定名稱。
- 按一下「建立」,您的專案會顯示在左側的「Project Explorer」中。
建立來源資料儲存庫
您可以使用 SAP 應用程式系統或其基礎資料庫,做為 SAP Data Services 的來源資料儲存庫。您可以匯出的資料物件類型會因您使用 SAP 應用程式系統還是資料庫做為資料儲存庫而異。
如果您使用 SAP 應用程式系統做為資料儲存庫,可以匯出下列物件:
- 資料表
- 瀏覽次數
- 階層
- ODP
- BAPI (函式)
- IDocs
如果您使用基礎資料庫做為資料儲存庫連線,可以匯出下列物件:
- 資料表
- 瀏覽次數
- 預存程序
- 其他資料物件
以下各節將說明 SAP 應用程式系統和資料庫的資料儲存庫設定。無論資料儲存庫連線或資料物件的類型為何,在 SAP Data Services 資料流中匯入及使用物件的程序幾乎相同。
SAP 應用程式層連線的設定
這些步驟會建立 SAP 應用程式連線,並將資料物件新增至 Designer 物件程式庫中適用的資料儲存庫節點。
- 開啟 SAP Data Services Designer 應用程式。
- 在 Project Explorer 中開啟 SAP Data Services 專案。
- 依序前往「Project」>「New」>「Datastore」。
- 填入「Datastore Name」(資料儲存庫名稱)。例如 ECC_DS。
- 在「Datastore type」欄位中,選取「SAP Applications」。
- 在「Application server name」欄位中,提供 SAP 應用程式伺服器的執行個體名稱。
- 指定 SAP 應用程式伺服器存取憑證。
- 按一下 [確定]。
SAP 資料庫層連線的設定
SAP HANA
這些步驟會建立 SAP HANA 資料庫的連線,並將資料表新增至 Designer 物件程式庫中適用的資料儲存庫節點。
- 開啟 SAP Data Services Designer 應用程式。
- 在 Project Explorer 中開啟 SAP Data Services 專案。
- 依序前往「Project」>「New」>「Datastore」。
- 填寫「Datastore Name」,例如HANA_DS。
- 在「Datastore type」(資料儲存庫類型) 欄位中,選取「Database」(資料庫) 選項。
- 在「資料庫類型」欄位中選取「SAP HANA」選項。
- 在「資料庫版本」欄位中,選取資料庫版本。
- 填寫「資料庫伺服器」名稱、「通訊埠號碼」和存取憑證。
- 按一下 [確定]。
其他支援的資料庫
這些步驟會建立 SQL Anywhere 連線,並將資料表新增至 Designer 物件程式庫中適用的資料儲存庫節點。
建立連線至其他支援的資料庫的步驟幾乎相同。
- 開啟 SAP Data Services Designer 應用程式。
- 在 Project Explorer 中開啟 SAP Data Services 專案。
- 依序前往「Project」>「New」>「Datastore」。
- 填寫「名稱」,例如SQL_ANYWHERE_DS。
- 在「Datastore type」(Datastore 類型) 欄位中,選取「Database」(資料庫) 選項。
- 在「資料庫類型」欄位中,選取「SQL Anywhere」選項。
- 在「資料庫版本」欄位中,選取資料庫版本。
- 填寫「資料庫伺服器名稱」、「資料庫名稱」和存取憑證。
- 按一下 [確定]。
新的資料儲存庫會顯示在 Designer 本機物件程式庫的「Datastore」分頁中。
建立目標資料儲存庫
這些步驟會建立 BigQuery 資料儲存庫,使用您先前在「建立服務帳戶」一節中建立的服務帳戶。服務帳戶可讓 SAP Data Services 安全存取 BigQuery。
詳情請參閱 SAP Data Services 說明文件中的「取得 Google 服務帳戶電子郵件」和「取得 Google 服務帳戶私密金鑰檔案」。
- 開啟 SAP Data Services Designer 應用程式。
- 在 Project Explorer 中開啟 SAP Data Services 專案。
- 依序前往「Project」>「New」>「Datastore」。
- 填寫「名稱」欄位。例如 BQ_DS。
- 在「Datastore type」(資料儲存庫類型) 欄位中,選取「Google BigQuery」。
- 畫面上會顯示「Web Service URL」選項。軟體會自動使用預設的 BigQuery 網路服務網址填入這個選項。
- 選取 [進階]。
- 根據 SAP Data Services 說明文件中 BigQuery 的Datastore 選項說明,填寫「進階」選項。
- 按一下 [確定]。
新的資料儲存庫會顯示在 Designer 本機物件程式庫的「Datastore」分頁中。
設定 SAP Data Services 和 BigQuery 之間的資料流
如要設定資料流,您必須建立批次工作、建立 BigQuery 載入器資料流,並將來源和 BigQuery 資料表匯入 SAP Data Services 做為外部中繼資料。
建立批次工作
- 開啟 SAP Data Services Designer 應用程式。
- 在 Project Explorer 中開啟 SAP Data Services 專案。
- 依序前往「專案」>「新增」>「批次工作」。
- 填寫「名稱」欄位。例如 JOB_SQL_ANYWHERE_BQ。
- 按一下「確定」。
建立資料流邏輯
匯入來源資料表
這些步驟會從來源資料儲存庫匯入資料庫資料表,並在 SAP Data Services 中提供。
- 開啟 SAP Data Services Designer 應用程式。
- 在「Project Explorer」中展開來源資料儲存庫。
- 選取右側面板上方的「外部中繼資料」選項。畫面上會顯示含有可用資料表和/或其他物件的節點清單。
- 從清單中選取要匯入的資料表。
- 按一下滑鼠右鍵,然後選取「匯入」選項。
- 匯入的資料表現在會顯示在來源資料存放區節點下的物件資料庫中。
建立資料流程
- 在「Project Explorer」中選取批次工作。
- 在右側面板的空白工作區中按一下滑鼠右鍵,然後選取「Add New」>「Dataflow」選項。
- 在資料流圖示上按一下滑鼠右鍵,然後選取「重新命名」。
- 將名稱改為 DF_SQL_ANYWHERE_BQ。
按兩下資料流圖示,開啟資料流工作區。
匯入資料流並連結至來源資料儲存庫物件
- 在「Project Explorer」中展開來源資料儲存庫。
- 從資料儲存庫中,將來源資料表拖曳至資料流程工作區 (將資料表拖曳至工作區時,請選擇「Make Source」選項)。在這些操作說明中,資料儲存庫的名稱為 SQL_ANYWHERE_DS。您的資料儲存庫名稱可能不同。
- 將「查詢轉換」從物件程式庫的「轉換」分頁中的「平台」節點拖曳至資料流。
- 將工作區中的來源資料表連結至「查詢轉換」。
- 按兩下「查詢轉換」。
選取左側「Schema In」下方的所有資料表欄位,然後將它們拖曳至右側的「Schema Out」。
- 在右側的「Schema Out」清單中選取日期時間欄位。
- 選取結構定義清單下方的「對應」分頁標籤。
將欄位名稱替換為下列函式:
to_date(to_char(FIELDNAME,'yyyy-mm-dd hh24:mi:ss'), 'yyyy-mm-dd hh24:mi:ss')
其中 FIELDNAME 是您選取的欄位名稱。
按一下應用程式工具列中的「返回」圖示,即可返回資料流編輯器。
從物件程式庫的「Transforms」分頁標籤中的「Platform」節點,將「XML_Map」轉換作業拖曳至資料流。
在對話方塊中選取「Batch」模式。
將「查詢」轉換連結至「XML_Map」轉換。
建立結構定義檔案
這些步驟會建立反映來源資料表結構的結構定義檔案。稍後,您會使用結構定義檔案建立 BigQuery 資料表。
結構定義可確保 BigQuery 載入器資料流成功填入新的 BigQuery 資料表。
- 開啟 XML 對應轉換,然後根據 BigQuery 資料表中包含的資料,完成輸入和輸出結構定義部分。
- 在「Schema Out」欄中,按一下「XML_Map」節點的滑鼠右鍵,然後從下拉式選單中選取「Generate Google BigQuery Schema」。
- 輸入結構定義的名稱和位置。
- 按一下 [儲存]。
SAP Data Services 會產生副檔名為 .json 的結構定義檔。
建立 BigQuery 資料表
您必須在Google Cloud 的 BigQuery 資料集中建立資料表,才能載入資料。您會使用在 SAP Data Services 中建立的結構定義來建立資料表。
這個資料表是根據您在上一個步驟中產生的結構定義建立。
- 在 Google Cloud 控制台中存取 Google Cloud 專案。
- 選取 [BigQuery]。
- 按一下適用的資料集。
- 按一下「建立資料表」。
- 輸入資料表名稱。例如
BQ_DATA_LOAD
。 - 在「結構定義」下方,切換設定以啟用「以文字形式編輯」模式。
- 在 建立結構定義檔案中複製並貼上所建立的結構定義檔案內容,即可在 BigQuery 中設定新資料表的結構定義。
- 點選「建立資料表」。
匯入 BigQuery 資料表
這些步驟會匯入您在前一個步驟中建立的 BigQuery 資料表,並在 SAP Data Services 中提供該資料表。
- 在 SAP Data Services Designer 物件程式庫中,以滑鼠右鍵按一下 BigQuery 資料儲存庫,然後選取「Refresh Object Library」選項。這會更新您可以在資料流中使用的資料來源資料表清單。
- 開啟 BigQuery 資料儲存庫。
- 在右側面板的頂端,選取「外部結構定義資料」。您建立的 BigQuery 資料表會隨即顯示。
- 在適用的 BigQuery 資料表名稱上按一下滑鼠右鍵,然後選取「Import」。
- 系統開始將所選資料表匯入 SAP Data Services。該資料表現在已在目標資料儲存庫節點下的物件程式庫中提供。
匯入資料流並與目標資料儲存庫物件連結
- 從物件程式庫中的資料儲存庫,將匯入的 BigQuery 資料表拖曳至資料流程。這些操作說明中的資料儲存庫名稱為
BQ_DS
。您的資料儲存庫名稱可能不同。 將 XML_Map 轉換連結至匯入的 BigQuery 資料表。
開啟 XML_Map 轉換,並根據您在 BigQuery 資料表中納入的資料,完成輸入和輸出結構定義部分。
在工作區中雙擊 BigQuery 資料表來開啟資料表,然後按照下表所示,在「Target」分頁中完成選項:
選項 說明 Make Port 指定預設值「否」。
指定「是」會將來源或目標檔案設為嵌入式資料流程埠。眾數 針對初始載入作業指定「Truncate」,這樣一來,BigQuery 表格中的任何現有記錄都會替換為 SAP Data Services 載入的資料。預設為「Truncate」。 載入器數量 指定正整數,設定用於處理的載入器 (執行緒) 數量。預設值為 4。
每個載入器會在 BigQuery 中啟動一個可暫停的載入工作。您可以指定任意數量的載入器。
如要瞭解如何判斷適當的載入器數量,請參閱 SAP 說明文件,包括:
每個載入器的失敗記錄數量上限 指定 0 或正整數,設定每個載入工作在 BigQuery 停止載入記錄前,可失敗的記錄數量上限。預設值為零 (0)。 按一下頂端工具列中的「驗證」圖示。
按一下應用程式工具列中的「返回」圖示,即可返回資料流編輯器。
將資料載入 BigQuery
這些步驟會啟動複製工作,並在 SAP Data Services 中執行資料流程,將資料從來源系統載入至 BigQuery。
執行載入作業時,來源資料集中的所有資料都會複製到與載入資料流程連結的目標 BigQuery 資料表。目標資料表中的所有資料都會遭到覆寫。
- 在 SAP Data Services Designer 中,開啟「Project Explorer」。
- 在複寫工作名稱上按一下滑鼠右鍵,然後選取「執行」。
- 按一下 [確定]。
- 載入程序開始,SAP Data Services 記錄檔中會開始顯示偵錯訊息。系統會將資料載入您在 BigQuery 中建立的資料表,以便進行初始載入作業。這些指令中的載入表格名稱為
BQ_DATA_LOAD
。您的資料表名稱可能不同。 - 如要查看是否已完成載入作業,請前往 Google Cloud 控制台,然後開啟包含資料表的 BigQuery 資料集。如果資料仍在載入中,資料表名稱旁會顯示「Loading」。
載入完成後,資料即可在 BigQuery 中處理。
排程負載
您可以使用 SAP Data Services 管理控制台,排定定期執行的載入工作。
- 開啟 SAP Data Services Management Console 應用程式。
- 按一下「管理員」。
- 展開左側選單樹狀結構中的「Batch」節點。
- 按一下 SAP Data Services 存放區的名稱。
- 按一下「大量工作設定」分頁標籤。
- 按一下「新增時間表」。
- 填入「排程」名稱。
- 勾選「已啟用」。
- 在「Select scheduled time for executing the jobs」(選取執行工作排程時間) 部分,指定差異負載執行的頻率。
- 重要事項: Google Cloud 會限制您每天可以執行的 BigQuery 載入工作數量。請確認您的排程未超過上限,因為上限無法提高。如要進一步瞭解 BigQuery 載入工作限制,請參閱 BigQuery 說明文件中的「配額與限制」。
按一下「套用」。
後續步驟
在 BigQuery 中查詢及分析複製的資料。如要進一步瞭解查詢,請參閱:
- 請參閱 BigQuery 說明文件中的查詢 BigQuery 資料總覽。
如要瞭解如何設定解決方案,透過 SAP Landscape Transformation Replication Server 和 SAP Data Services,將資料從 SAP 應用程式近乎即時複製到 BigQuery,請參閱:
如需更多參考架構、圖表和最佳做法,請瀏覽 雲端架構中心。