我有一堆 SQL 數據庫。我應該如何將這些放入 Azure?
我有一堆本地 SQL 數據庫,其中包含與 HR 相關的數據。一個數據庫可以是純員工數據,例如員工記錄、離職記錄或招聘記錄。另一個數據庫可能來自外部服務提供商,它會告訴我我的員工正在利用哪些福利。最後一個例子可能是薪水審查數據,其中數據由企業每年由直線經理送出員工績效分數生成。
我目前正在探索 Azure,因為我想要為我的數據提供雲解決方案。我需要將所有這些數據集儲存在一個中心位置,並應用一些標準治理。我還需要將這些數據提供給 Power BI 等應用程序以滿足 BI 需求,並且我還需要機器學習功能用於數據科學項目。
我目前使用 SSIS 在 SQL Server 中獲取我的數據,但是我的研究建議使用 Azure Data Factory、Azure Data Lake 和 Azure Synapse 來管理我的數據。
我真的不知道從哪裡開始,任何指導都會很棒!謝謝你。
數據庫更改的頻率是多少?您的企業可以允許多少停機時間?
有多種非實時方法可以移動數據庫的快照,例如:
還有一系列更實時的連續同步選項:
它們各有優缺點,具體取決於您的需求。如果您需要一次性遷移,並且可以安排一個維護時段,在該時段內數據庫不會在您切換之前發生更改,那麼 BACPAC 文件可能是遷移到 Azure 的最簡單方法。像 RedGate 的 SQL 比較這樣的工具也非常方便,尤其是當您認為需要多次移動內容時。如果您需要在一段時間內持續同步到雲,然後才能進行切換,那麼 AlwaysOn 可用性組可能是最簡單的選擇或複制(事務或快照,具體取決於數據更改的頻率)。但是請仔細閱讀它們並確定最適合您的案例的內容。
關於您在選擇數據湖與使用 Synapse 的評論中的問題:
它們都沒有綁定到特定的文件類型,它們幾乎都可以使用任何文件類型,所以認為系統是文件類型不可知的。
數據湖的目的是在將不同的結構化數據結構化並在其他地方使用之前儲存它。例如,您可以擁有兩個具有相似數據的 Excel 文件,但其中一個缺少另一個的幾列,反之亦然,但兩者都可以輕鬆消化到同一個數據湖中,這樣您就可以將數據集中到一個地方並最終報告出來. 不過,數據湖可能能夠更輕鬆地使用不同的數據和文件類型。
Synapse的結構更像一個數據庫(或一系列數據庫),因此將數據導入其中需要一些不同的工作流程。由於您堅持使用標準化的數據儲存格式,您應該也可以使用Synapse將數據拉入其中(因此任何一個系統都可以在拉入數據方面工作,Data Lakes在不同的結構中更加靈活它可以存放在一個地方的數據)。Synapse比Data Lake****更結構化,這意味著它也更願意提前報告。日期湖可能需要您設置一系列流程來轉換和移動數據,然後才能報告它。
因此,這實際上歸結為您的數據是結構化還是非結構化,以及您希望在整個工作流程中開發多少 ETL。但一個系統不一定比另一個更好,它們只是用途略有不同。
Data Lake用於不同結構的數據,因此更靈活地將數據儲存在一個地方,但如果需要報告更多的 ETL 工作,Synapse用於更多結構化數據,因此不太靈活但更適合直接報告。我最後的想法是,數據湖非常適合從多個來源整合併重新運送到某個消費系統的數據,因此基本上只是多個不同數據集的集中位置,作為轉移到最終消費目的地之前的集結地。