TW202411858A - Systems and methods for database migration, and systems for migration of an online database - Google Patents

Systems and methods for database migration, and systems for migration of an online database Download PDF

Info

Publication number
TW202411858A
TW202411858A TW112116496A TW112116496A TW202411858A TW 202411858 A TW202411858 A TW 202411858A TW 112116496 A TW112116496 A TW 112116496A TW 112116496 A TW112116496 A TW 112116496A TW 202411858 A TW202411858 A TW 202411858A
Authority
TW
Taiwan
Prior art keywords
database
data
replica
migration
online
Prior art date
Application number
TW112116496A
Other languages
Chinese (zh)
Inventor
董斌
韓全泉
張軍釗
黃志永
劉揚
Original Assignee
南韓商韓領有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 南韓商韓領有限公司 filed Critical 南韓商韓領有限公司
Publication of TW202411858A publication Critical patent/TW202411858A/en

Links

Images

Abstract

A system for database migration including one or more processors and one or more memory devices storing instructions The processors are configured to perform operations for database migration that include cloning the online database to a first clone database, generating export files from the first clone database and importing them to a migration database, performing a row comparison of the first clone database and the migration database after importing the export files, and initializing a double write operation replicating writing of the online database on the migration database to capture incremental data. The operations also include cloning the online database to a second clone database after performing the row comparison, identifying catch-up data by comparing the second clone database with the incremental data, and updating the migration database to include the catch-up data.

Description

資料轉移系統以及方法Data transfer system and method

本揭露大體上是有關於資料庫轉移電腦化系統和方法。特定言之,本揭露的實施例是有關於用於實時即時資料庫之間的改良轉移的系統和方法,採用雙寫入、串行複製以及一致性驗證同時最少化停工時間和使轉移資料庫的訊務交遞自動化。The present disclosure generally relates to computerized systems and methods for database migration. In particular, embodiments of the present disclosure relate to systems and methods for improved migration between real-time databases, using dual write, serial replication, and consistency verification while minimizing downtime and automating traffic handoff of the migrated database.

資料庫轉移為在不同資料庫之間轉移資料的過程。當轉移完成時,原始(或源)資料庫中的資料經拷貝至轉移(或目標)資料庫中,和在一些情形下為經重組的。資料庫轉移過程亦可包括從原始資料庫重新導向至轉移資料庫的指令的重新路由(例如,寫入或讀取指令)。在一些情境下,資料庫轉移可為均質的,其中原始資料庫和轉移資料庫具有同一資料庫管理系統。在其他情境下,資料庫轉移可為異質的,其中原始資料庫和轉移資料庫具有不同資料庫管理系統。資料庫轉移可包括資料庫複寫(亦稱為資料庫串流傳輸)和資料庫傳送的過程。資料庫複寫將原始資料庫中的資料拷貝至轉移資料庫中。資料庫傳送將移動、替換及/或快速資料庫之間的資源。Database migration is the process of transferring data between different databases. When the migration is complete, the data in the original (or source) database is copied to the transfer (or target) database, and in some cases is reorganized. The database migration process may also include rerouting instructions (e.g., write or read instructions) from the original database to the transfer database. In some scenarios, the database migration may be homogeneous, where the original database and the transfer database have the same database management system. In other scenarios, the database migration may be heterogeneous, where the original database and the transfer database have different database management systems. Database migration may include the processes of database replication (also known as database streaming) and database transfer. Database replication copies the data in the original database to the transfer database. Database transfers will move, replace, and/or accelerate resources between databases.

資料庫轉移伴隨有特定風險,此在轉移實時或即時資料庫(亦即,以恆定通量處置工作負載的已連接資料庫)為時間極敏感的及/或由用戶端並行存取時可尤其成問題。在資料庫轉移期間,存在資料丟失(例如,資料中的一些可不從源系統轉移)、語義改變(例如,可出現語義誤差,從而產生不一致)、經延長的停工時間(例如,當資料轉移過程花費時間比預期的要長從而防止對關鍵資料的存取)和資料損壞(例如,非所需資料可轉移至新系統中,從而導致潛在崩潰及誤差)的風險。與實時資料庫轉移尤其相關,必須考慮額外風險。例如,轉移連接至雲端且由使用者主動存取及修改的資料庫呈現應用程式穩定性風險(例如,依賴於資料庫的應用程式對於不當的開發或不當的寫碼可變得不穩定,從而導致斷電週期或故障)、編配問題(例如,當資料轉移的過程不按次序執行時)、干擾問題(例如,當多個利害關係人在轉移過程期間同時利用應用程式時)及/或不當的應用程式參數化(例如,目標系統可變得與資料轉移程式不相容)的額外挑戰。Database migrations are associated with certain risks, which can be particularly problematic when migrating a real-time or instant database (i.e., a connected database that processes workloads at a constant throughput) that is extremely time-sensitive and/or accessed in parallel by clients. During a database migration, there is a risk of data loss (e.g., some of the data may not be migrated from the source system), semantic changes (e.g., semantic errors may occur, thereby creating inconsistencies), extended downtime (e.g., when the data migration process takes longer than expected, thereby preventing access to critical data), and data corruption (e.g., undesired data may be migrated to the new system, resulting in potential crashes and errors). Particularly relevant to live database migrations, additional risks must be considered. For example, migrating a database that is connected to the cloud and actively accessed and modified by users presents the additional challenges of application stability risks (e.g., applications that rely on the database can become unstable to improper development or improperly written code, resulting in power cycles or failures), orchestration issues (e.g., when the data migration process is performed out of sequence), interference issues (e.g., when multiple stakeholders utilize the application simultaneously during the migration process), and/or improper application parameterization (e.g., the target system can become incompatible with the data migration program).

此外,資料庫轉移隨著雲端計算的興起變得愈加困難及關鍵。現如今,資料庫-和其儲存的資訊-可為企業的最具有價值資產之一。企業的整個操作可依賴於存取、更新和修改資料庫。對於某些企業,此資訊必須持久且即時可用。停工時間可引起企業混亂、顧客滿意和錯過的機會。另外,當前資料庫可為大規模的,常常具有萬億位元組或甚至千兆位元組的資訊,且需要具有極高查詢輸送量以維持具有高資料庫需求的大型用戶端基礎。例如,支援串流服務的資料庫不僅具有極大資料集而且亦需要快速遞送所述資料庫。此組合使得實時或即時資料庫轉移尤其複雜,因為必需轉移較大資料庫,同時所述資料庫以最少停工時間操作(提供及接收新資料兩者)且具有低錯誤容差。Furthermore, database migration has become increasingly difficult and critical with the rise of cloud computing. Today, databases - and the information they store - can be one of a business's most valuable assets. The entire operation of a business can rely on accessing, updating, and modifying the database. For some businesses, this information must be persistent and available instantly. Downtime can cause business disruption, customer dissatisfaction, and missed opportunities. Additionally, current databases can be massive, often with terabytes or even petabytes of information, and require extremely high query throughput to maintain a large client base with high database demands. For example, a database that supports a streaming service not only has an extremely large data set but also requires the database to be delivered quickly. This combination makes real-time or instant database migration particularly complex because large databases must be migrated while the databases are operating (both providing and receiving new data) with minimal downtime and with low error tolerance.

所揭露的資料庫轉移系統和方法解決上文所闡述的一或多個問題及/或先前技術中的其他問題。The disclosed database migration system and method solves one or more of the problems described above and/or other problems in the prior art.

本揭露的一個方面涉及一種資料庫轉移系統。系統包括:一或多個處理器;以及一或多個記憶體設備,所述一或多個記憶體設備儲存在由一或多個處理器執行時配置一或多個處理器以執行操作的指令。操作可包括將具有線上訊務的線上資料庫複製至第一複製資料庫;從複製資料庫生成導出檔案且將其導入至轉移資料庫;在導入導出檔案之後執行第一複製資料庫與轉移資料庫的列比較(列比較通過計算線上資料庫和轉移資料庫中的選定數目個列的分片鍵來執行);以及起始雙寫入操作,將線上資料庫的寫入複寫至轉移資料庫上以捕獲增量資料。操作亦可包括在執行列比較之後將線上資料庫複製至第二複製資料庫,通過比較第二複製資料庫與增量資料來識別追趕資料,以及更新轉移資料庫以包括追趕資料。One aspect of the present disclosure relates to a database migration system. The system includes: one or more processors; and one or more memory devices, wherein the one or more memory devices store instructions that configure the one or more processors to perform operations when executed by the one or more processors. The operations may include replicating an online database with online traffic to a first replica database; generating an export file from the replica database and importing it into a migration database; performing a column comparison between the first replica database and the migration database after importing the export file (the column comparison is performed by calculating the sharding keys of a selected number of columns in the online database and the migration database); and initiating a dual write operation to replicate the write of the online database to the migration database to capture incremental data. The operation may also include replicating the online database to a second replica database after performing the row comparison, identifying catch-up data by comparing the second replica database to the delta data, and updating the staging database to include the catch-up data.

本揭露的另一方面涉及一種資料庫轉移方法。方法可包括將線上資料庫複製至第一複製資料庫;從第一複製資料庫產生導出檔案且將其導入至轉移資料庫;在導入導出檔案之後執行第一複製資料庫與轉移資料庫的列比較(列比較通過計算線上資料庫及轉移資料庫中的選定數目個列的分片鍵來執行);以及起始雙寫入操作,將線上資料庫的寫入複寫至轉移資料庫上以捕獲增量資料。方法亦可包括在執行列比較之後將線上資料庫複製至第二複製資料庫,通過比較第二複製資料庫與增量資料來識別追趕資料,以及更新轉移資料庫以包括追趕資料。Another aspect of the present disclosure relates to a database migration method. The method may include replicating an online database to a first replica database; generating an export file from the first replica database and importing it into a transfer database; performing a column comparison of the first replica database and the transfer database after importing the export file (the column comparison is performed by calculating the shard keys of a selected number of columns in the online database and the transfer database); and initiating a dual write operation to replicate the writes of the online database to the transfer database to capture incremental data. The method may also include replicating the online database to a second replica database after performing the column comparison, identifying catch-up data by comparing the second replica database with the incremental data, and updating the transfer database to include the catch-up data.

本揭露的另一方面涉及用於轉移線上資料庫的系統。系統可包括:第一資料庫,耦接至網路;第二資料庫;至少一個處理器,耦接至第一資料庫和第二資料庫;以及至少一個記憶體設備,儲存指令。當此等指令由至少一個處理器執行時,其配置至少一個處理器以:將第一資料庫複製至第一複製資料庫;從第一複製資料庫產生導出檔案且將其導入至第二資料庫;在導入導出檔案之後執行第一複製資料庫與第二資料庫的列比較(列比較由計算第一資料庫和第二資料庫中的選定數目個列的分片鍵來執行);以及起始雙寫入操作,將第一資料庫的寫入複寫至第二資料庫上以捕獲增量資料。指令亦可配置處理器以:在執行列比較之後將第一資料庫複製至第二複製資料庫;通過比較第二複製資料庫與增量資料來識別追趕資料;更新第二資料庫以包括追趕資料;以及執行第二複製資料庫與第二資料庫之間的第二列比較以確定資料是否一致。指令亦可配置所述處理器以:在確定資料一致後,暫停雙寫入操作且將來自第一資料庫的線上訊務切換至第二資料庫。Another aspect of the present disclosure relates to a system for migrating an online database. The system may include: a first database coupled to a network; a second database; at least one processor coupled to the first database and the second database; and at least one memory device storing instructions. When such instructions are executed by at least one processor, they configure at least one processor to: copy the first database to the first replica database; generate an export file from the first replica database and import it into the second database; perform a column comparison of the first replica database and the second database after importing the export file (the column comparison is performed by calculating a shard key of a selected number of columns in the first database and the second database); and initiate a dual write operation to copy the write of the first database to the second database to capture incremental data. The instructions may also configure the processor to: copy the first database to the second replica database after performing the row comparison; identify the catch-up data by comparing the second replica database with the incremental data; update the second database to include the catch-up data; and perform a second row comparison between the second replica database and the second database to determine whether the data is consistent. The instructions may also configure the processor to: after determining that the data is consistent, suspend the dual write operation and switch the online traffic from the first database to the second database.

以下詳細描述參考附圖。只要可能,在附圖和以下描述中使用相同的附圖標記來指代相同或相似的部分。雖然本文描述若干說明性實施例,但是修改、適配和其他實施方式都是可能的。例如,可以對附圖中示出的組件和步驟進行替換、添加或修改,並且可通過對所揭露的方法進行替換、重新排序、移除或添加步驟來修改本文描述的說明性方法。以下詳細描述不限於所揭露的實施例和實例。The following detailed description refers to the accompanying drawings. Whenever possible, the same figure numbers are used in the drawings and the following description to refer to the same or similar parts. Although several illustrative embodiments are described herein, modifications, adaptations, and other implementations are possible. For example, the components and steps shown in the accompanying drawings may be replaced, added to, or modified, and the illustrative methods described herein may be modified by replacing, reordering, removing, or adding steps to the disclosed methods. The following detailed description is not limited to the disclosed embodiments and examples.

用於參考圖中的個別元件的文字(例如,A或B)並不指定元件的數量或元件的總數量。實情為,其為指示可變元件數量和總元件的可變數量的可變參考物。例如,文字B並未指示具有「B」文字的元件為第2者。實情為,B為可指示任何整數的可變參考物。The words (e.g., A or B) used to reference individual elements in a figure do not specify the number of elements or the total number of elements. Instead, they are variable references that indicate variable numbers of elements and total numbers of elements. For example, the word B does not indicate that the element with the word "B" is the second. Instead, B is a variable reference that can indicate any integer.

本揭露的實施例涉及資料庫轉移系統和方法。所揭露系統和方法能夠使用一或多個複製資料庫快速且穩定地轉移資料庫且並行寫入以促進資料轉移和訊務傳送。所揭露系統和方法可適用於在即時操作中用以處置在恆定通量下的工作流程的實時資料庫。例如,所揭露方法和系統可用於支撐具有不斷改變且高訊務需求的電子商務的線上應用程式的資料庫。所揭露系統和方法解決傳統資料庫轉移過程的問題。傳統系統頻繁地遭受比可接受的資料庫停工時間長的影響。當前線上應用程式頻繁地需要幾乎恆定的可用性,且任何停工時間可對操作不利。資料庫停工時間可導致例如顧客滿意和不良保持率。所揭露實施例提供用於以最少停工時間或無停工時間進行實時資料庫轉移的系統和方法。Embodiments of the present disclosure relate to database migration systems and methods. The disclosed systems and methods are capable of quickly and stably migrating databases using one or more replica databases and writing in parallel to facilitate data migration and traffic delivery. The disclosed systems and methods may be applicable to real-time databases used to handle workflows under constant throughput in real-time operations. For example, the disclosed methods and systems may be used to support databases for online applications of e-commerce with constantly changing and high traffic demands. The disclosed systems and methods solve the problems of traditional database migration processes. Traditional systems frequently suffer from longer than acceptable database downtime. Current online applications frequently require almost constant availability, and any downtime can be detrimental to operations. Database downtime can result in, for example, customer dissatisfaction and poor retention rates. The disclosed embodiments provide systems and methods for performing real-time database migrations with minimal or no downtime.

此外,所揭露系統和方法可改良採用追趕操作以驗證所有資料已轉移的資料轉移的品質。實時或線上資料庫的轉移可為繁瑣的,因為原始資料庫中的動態交互可在原始資料庫與所轉移資料庫之間產生差異。因為不希望斷開實時資料庫,故可在轉移過程期間修改線上資料庫中的資料。此等並行變化可在原始資料庫與轉移資料庫之間產生不一致。所揭露系統和方法使用多複製源資料庫的方法和應用一或多個追趕和驗證過程來解決此等問題,以確保轉移引起完整資料傳送及/或複寫。In addition, the disclosed systems and methods can improve the quality of data transfers that employ a catch-up operation to verify that all data has been transferred. The transfer of a real-time or online database can be cumbersome because dynamic interactions in the original database can produce differences between the original database and the transferred database. Because it is undesirable to disconnect the real-time database, the data in the online database can be modified during the transfer process. These concurrent changes can produce inconsistencies between the original database and the transferred database. The disclosed systems and methods use a method of multiple replica source databases and apply one or more catch-up and verification processes to solve these problems to ensure that the transfer results in a complete data transfer and/or replication.

所揭露實施例中的一些適用於基於雲端的資料庫。例如,所揭露實施例中的一些適用於基於雲端的關連式資料庫服務。在此等實施例中,所揭露系統和方法可包括資料分配、自動複寫和結構化查詢語言(Structured Query Language,SQL)相容性的功能。Some of the disclosed embodiments are applicable to cloud-based databases. For example, some of the disclosed embodiments are applicable to cloud-based relational database services. In such embodiments, the disclosed systems and methods may include data distribution, automatic replication, and Structured Query Language (SQL) compatibility functions.

所揭露系統和方法亦可經由使用資料庫複製而使轉移期間的停工時間最少化。所揭露實施例中的一些包括通過產生生產或線上資料庫的時間點複本來複製資料庫。在此等實施例中,線上應用程式可在轉移操作期間繼續有規律的操作,從而維持相同資料結構和內容。所揭露系統和方法的此等實施例使得能夠並行複製資料庫以最少化停工時間。例如,資料庫可同時及/或依序經複製,得到複寫源資料庫的經指派資料結構,且執行伺服器操作。因此,所揭露系統和方法的某些實施例實現幾乎無停工時間的資料庫轉移。The disclosed systems and methods may also minimize downtime during a migration by using database replication. Some of the disclosed embodiments include replicating a database by creating a point-in-time copy of a production or online database. In such embodiments, online applications may continue to operate regularly during the migration operation, thereby maintaining the same data structure and content. Such embodiments of the disclosed systems and methods enable databases to be replicated in parallel to minimize downtime. For example, databases may be replicated simultaneously and/or sequentially to obtain assigned data structures that replicate the source database, and to perform server operations. Therefore, certain embodiments of the disclosed systems and methods enable database migration with virtually no downtime.

此外,所揭露系統和方法甚至可允許針對具有高訊務加載及/或大資料集的資料庫的有效轉移。當前線上應用程式頻繁地為資料密集型的且可需要大量資料使用和傳送。此等線上或實時資料庫的轉移引發額外挑戰。例如,由於可導致延遲及/或資料遺漏的複寫操作,經由傳統系統的資料庫轉移可能太長且繁瑣。因此,對於特定資料庫轉移,不可能在不妨礙操作的情況下使用傳統方法。所揭露系統和方法通過提供允許傳送具有高訊務加載及/或大資料集的資料庫同時最少化停工時間且改良資料準確性的方法來解決此等問題。Furthermore, the disclosed systems and methods may even allow for efficient migration of databases with high traffic loads and/or large datasets. Current online applications are frequently data intensive and may require extensive data usage and transfer. Migration of such online or real-time databases presents additional challenges. For example, database migrations via traditional systems may be too long and cumbersome due to replication operations that may result in delays and/or data omissions. Therefore, for certain database migrations, it may not be possible to use traditional methods without hindering operations. The disclosed systems and methods address these issues by providing methods that allow for the transfer of databases with high traffic loads and/or large datasets while minimizing downtime and improving data accuracy.

在一些實施例中,所揭露系統和方法促進採用雙寫入特徵和追趕操作的資料轉移。實時資料庫的傳統轉移可能需要在實時訊務中暫停以防止在轉移週期期間的變化。然而,此等暫停可破壞操作且導致故障系統及/或顧客不滿意。所揭露系統和方法通過採用允許轉移而無需資料庫的暫停的雙寫入特徵和分群系統來解決此等問題。所揭露系統和方法中的一些可組合群集演算法與雙寫入操作以隔離資料變化,其可隨後在所轉移資料庫中複寫而不需要斷開原始資料庫。此外,所揭露系統和方法中的一些可包括測試雙寫入連接和操作以在轉移期間最小化資料不準確性。In some embodiments, the disclosed systems and methods facilitate data migration using dual write features and catch-up operations. Traditional migrations of real-time databases may require pauses in real-time traffic to prevent changes during the migration cycle. However, such pauses can disrupt operations and lead to failed systems and/or customer dissatisfaction. The disclosed systems and methods address these issues by employing dual write features and clustering systems that allow migrations without pausing the database. Some of the disclosed systems and methods may combine clustering algorithms with dual write operations to isolate data changes, which can then be replicated in the migrated database without disconnecting the original database. In addition, some of the disclosed systems and methods may include testing dual write connections and operations to minimize data inaccuracies during the migration.

此外,所揭露系統和方法可促進轉移過程的自動化。所揭露系統和方法的一些實施例可包括協調多個線上工具以執行資料庫轉移的自動化系統。例如,所揭露系統和方法中的一些可使用例如SQL檔案的自動導入自動從資料庫捕獲資料。另外,所揭露系統和方法可配置工具以在轉移過程期間將SQL檔案及/或元資料自動地導入至其他資料庫,而不需要使用者交互。此外,所揭露系統和方法亦可促進自動及/或並行資料驗證。在一些實施例中,所揭露系統和方法可包括背景和資料集群集中的驗證過程的工具以識別不一致。In addition, the disclosed systems and methods may facilitate automation of the migration process. Some embodiments of the disclosed systems and methods may include an automated system that coordinates multiple online tools to perform database migration. For example, some of the disclosed systems and methods may automatically capture data from a database using, for example, automatic import of SQL files. In addition, the disclosed systems and methods may configure tools to automatically import SQL files and/or metadata into other databases during the migration process without user interaction. In addition, the disclosed systems and methods may also facilitate automatic and/or parallel data validation. In some embodiments, the disclosed systems and methods may include tools for validation processes in context and data clustering to identify inconsistencies.

此外,所揭露系統和方法的一些實施例可解決轉移期間不良的資料一致性的問題。特別對於大型動態資料集(類似支援線上應用程式的資料庫的彼等),資料轉移過程可引起資料不一致及/或損壞。所揭露系統和方法中的一些使用用於資料驗證的工具解決此等問題,以及特定範圍中的追趕工具來修正。例如,所揭露實施例中的一些可使用比較資料集以識別不一致及損毀檔案的工具。此等工具可使用工具來檢查資料轉移之後的準確性和不一致。此等方法可包括源資料驗證(Source Data Verification;SDV)或基於散列的驗證的使用,例如使用MD5檔案核對和。在此等實施例中,資料驗證可幫助自動且並行確定在資料從一個源傳送至另一源時資料是否準確地轉譯、完成且支援新系統中的過程。另外,所揭露系統和方法的實施例亦支援採用追趕工具以用於不一致和資料分群機制的並行修正以識別差異區域及防止錯誤資料損失。In addition, some embodiments of the disclosed systems and methods can address the problem of poor data consistency during migration. Particularly for large dynamic data sets (such as databases that support online applications), the data migration process can cause data inconsistencies and/or corruption. Some of the disclosed systems and methods use tools for data verification to address these problems, as well as tracking tools in specific areas to correct. For example, some of the disclosed embodiments may use tools that compare data sets to identify inconsistencies and corrupted files. These tools may use tools to check accuracy and inconsistencies after data migration. These methods may include the use of Source Data Verification (SDV) or hash-based verification, such as using MD5 file checksums. In these embodiments, data validation can help automatically and concurrently determine whether data is accurately translated, complete, and supports processes in new systems as it is transferred from one source to another. Additionally, embodiments of the disclosed systems and methods also support the use of chase tools for concurrent correction of inconsistencies and data clustering mechanisms to identify areas of discrepancy and prevent erroneous data loss.

所揭露系統和方法亦可促進頻繁及高度使用資料庫的轉移,所述資料庫支援線上應用程式。例如,與電子商務相關的線上應用程式常常需要對定價資料庫的頻繁且流暢的存取。此等類型的資料庫處置大的資訊集合,經動態地更新或修改,且對停工時間幾乎沒有容許度或不具有容許度。特別鑒於最近實踐,如動態定價,對資料庫的快速且可靠存取對於企業操作至關重要。此等類型的定價資料庫的轉移因此為複雜且關鍵的。所揭露系統和方法允許資料庫以最少停工時間且採用用於分群、驗證和複製的工具有效轉移,其最小化資料損失及/或減少資料損壞。The disclosed systems and methods may also facilitate the migration of frequent and highly used databases that support online applications. For example, online applications related to e-commerce often require frequent and smooth access to pricing databases. These types of databases handle large sets of information, are dynamically updated or modified, and have little or no tolerance for downtime. Especially in view of recent practices, such as dynamic pricing, fast and reliable access to databases is critical to business operations. The migration of these types of pricing databases is therefore complex and critical. The disclosed systems and methods allow databases to be efficiently migrated with minimal downtime and using tools for clustering, verification, and replication, which minimizes data loss and/or reduces data corruption.

現將參考所揭露實施例,其實例示出於附圖中。Reference will now be made to the disclosed embodiments, examples of which are illustrated in the accompanying drawings.

圖1A繪示示出包括用於實現裝運、運輸以及物流操作的通訊的電腦化系統的系統的例示性實施例的系統100的示意性方塊圖。如圖1A所示,系統100可包括每一種系統,其中每個系統可經由一或多個網路彼此連接。系統亦可經由直接連接(例如,使用電纜)彼此連接。所描述的系統包括:裝運授權技術(Shipment Authority Technology,SAT)系統101、外部前端系統103、內部前端系統105、運輸系統107、移動設備107A、移動設備107B和移動設備107C、賣方門戶109、裝運和訂單跟蹤(Shipment and Order Tracking,SOT)系統111、履行最佳化(Fulfillment Optimization,FO)系統113、履行消息傳遞閘道(Fulfillment Messaging Gateway,FMG)115、供應鏈管理(Supply Chain Management,SCM)系統117、勞動力管理系統119、移動設備119A、移動設備119B和移動設備119C(描繪為在履行中心(Fulfillment Center,FC)200的內部)、第三方履行系統121A、第三方履行系統121B和第三方履行系統121C、履行中心授權系統(Fulfillment Center Authorization System,FC Auth)123 以及勞工管理系統(Labor Management System,LMS)125。FIG1A shows a schematic block diagram of a system 100 of an exemplary embodiment of a system including a computerized system for implementing communications for shipping, transportation, and logistics operations. As shown in FIG1A , the system 100 may include each system, wherein each system may be connected to each other via one or more networks. The systems may also be connected to each other via direct connections (e.g., using cables). The systems described include: Shipment Authority Technology (SAT) system 101, external front-end system 103, internal front-end system 105, transportation system 107, mobile devices 107A, 107B, and 107C, seller portal 109, Shipment and Order Tracking (SOT) system 111, Fulfillment Optimization (FO) system 113, Fulfillment Messaging Gateway (FMG) 115, Supply Chain Management (SCM) system 117, workforce management system 119, mobile devices 119A, 119B, and 119C (depicted as being in a fulfillment center). Center, FC) 200), third-party fulfillment system 121A, third-party fulfillment system 121B and third-party fulfillment system 121C, fulfillment center authorization system (Fulfillment Center Authorization System, FC Auth) 123 and labor management system (Labor Management System, LMS) 125.

在一些實施例中,SAT系統101可實現為監控訂單狀態和遞送狀態的電腦系統。SAT系統101亦可監控資料,包括輸出(例如,在特定時間段內裝運的包裹的數量)和輸入(例如,接收的在裝運中使用的空紙板箱的數量)。SAT系統101亦可充當系統100中的不同設備之間的閘道,使得能夠(例如,使用儲存轉發或其他技術)在設備(例如外部前端系統103和FO系統113)之間進行通訊。In some embodiments, the SAT system 101 can be implemented as a computer system that monitors order status and delivery status. The SAT system 101 can also monitor data, including output (e.g., the number of packages shipped in a specific time period) and input (e.g., the number of empty cardboard boxes received for use in shipments). The SAT system 101 can also act as a gateway between different devices in the system 100, enabling communication between devices (e.g., using store-and-forward or other techniques) (e.g., using store-and-forward or other techniques).

在一些實施例中,外部前端系統103可實現為使外部使用者能夠與系統100中的一或多個系統交互的電腦系統。例如,在系統100使系統的呈現能夠讓使用者為物品下訂單的實施例中,外部前端系統103可實現為接收搜尋請求、呈現物品頁面和請求支付資訊的網頁伺服器。例如,外部前端系統103可實現為運行軟體(例如,Apache HTTP伺服器、微軟網際網路資訊服務(Internet Information Service,IIS)、NGINX等)的電腦或多個電腦。在其他實施例中,外部前端系統103可運行定製的網頁伺服器軟體,所述定製的網頁伺服器軟體設計為:接收和處理來自外部設備(例如,移動設備102A或電腦102B)的請求,基於那些請求從資料庫和其他資料儲存器獲取資訊,以及基於所獲取的資訊對所接收的請求提供回應。In some embodiments, the external front-end system 103 may be implemented as a computer system that enables external users to interact with one or more systems in the system 100. For example, in an embodiment where the system 100 enables the presentation of the system to allow users to place orders for items, the external front-end system 103 may be implemented as a web server that receives search requests, presents item pages, and requests payment information. For example, the external front-end system 103 may be implemented as a computer or multiple computers running software (e.g., Apache HTTP Server, Microsoft Internet Information Service (IIS), NGINX, etc.). In other embodiments, the external front-end system 103 may run customized web server software designed to receive and process requests from external devices (e.g., mobile device 102A or computer 102B), retrieve information from databases and other data stores based on those requests, and provide responses to the received requests based on the retrieved information.

在一些實施例中,外部前端系統103可包括網頁快取系統、資料庫、搜尋系統或支付系統中的一或多個。在一個方面,外部前端系統103可包括此等系統中的一或多者,而在另一方面,外部前端系統103可包括連接至此等系統中的一或多者的介面(例如,伺服器至伺服器、資料庫至資料庫,或其他網路連接)。In some embodiments, the external front-end system 103 may include one or more of a web cache system, a database, a search system, or a payment system. In one aspect, the external front-end system 103 may include one or more of these systems, while in another aspect, the external front-end system 103 may include an interface (e.g., server-to-server, database-to-database, or other network connection) connected to one or more of these systems.

由圖1B、圖1C、圖1D和圖1E示出的一組說明性的步驟將有助於描述外部前端系統103的一些操作。外部前端系統103可接收來自系統100中的系統或設備的資訊以用於呈現和/或顯示。例如,外部前端系統103可主持或提供一或多個網頁,包括:搜尋結果頁面(Search Result Page,SRP)(例如,圖1B)、單個顯示頁面(Single Display Page,SDP)(例如,圖1C)、購物車頁面(例如,圖1D)或訂單頁面(例如,圖1E)。使用者設備(例如,使用移動設備102A或電腦102B)可導航至外部前端系統103,並且通過將資訊輸入搜尋框內來請求搜尋。外部前端系統103可從系統100中的一或多個系統請求資訊。例如,外部前端系統103可從FO系統113請求滿足搜尋請求的資訊。A set of illustrative steps shown by FIG. 1B , FIG. 1C , FIG. 1D , and FIG. 1E will help describe some operations of the external front-end system 103. The external front-end system 103 can receive information from a system or device in the system 100 for presentation and/or display. For example, the external front-end system 103 can host or provide one or more web pages, including: a search result page (Search Result Page, SRP) (e.g., FIG. 1B ), a single display page (Single Display Page, SDP) (e.g., FIG. 1C ), a shopping cart page (e.g., FIG. 1D ) or an order page (e.g., FIG. 1E ). A user device (e.g., using a mobile device 102A or a computer 102B) can navigate to the external front-end system 103 and request a search by entering information into a search box. The external front-end system 103 may request information from one or more systems in the system 100. For example, the external front-end system 103 may request information from the FO system 113 to satisfy a search request.

外部前端系統103可基於資訊準備SRP(例如,圖1B)。SRP可包括滿足搜尋請求的資訊。例如,這可包括滿足搜尋請求的產品的圖片。SRP亦可包括每一產品的各自價格,或者與每一產品的增強的遞送選項有關的資訊、承諾遞送日期(PDD)、重量、尺寸、報價、折扣等。在一些實施例中,SRP亦可包括遞送選項、遞送選項的截止時間及/或請求使用者輸入的超媒體元素。外部前端系統103可(例如,經由網路)將SRP發送至請求使用者設備。The external front-end system 103 may prepare an SRP based on the information (e.g., FIG. 1B ). The SRP may include information that satisfies the search request. For example, this may include pictures of products that satisfy the search request. The SRP may also include the respective prices of each product, or information related to enhanced delivery options for each product, promised delivery date (PDD), weight, size, quote, discount, etc. In some embodiments, the SRP may also include delivery options, deadlines for delivery options, and/or hypermedia elements requesting user input. The external front-end system 103 may send the SRP to the requesting user device (e.g., via a network).

然後,使用者設備可從SRP中選擇產品,例如,通過點擊或敲擊使用者介面,或者使用另一輸入設備,以選擇在SRP上呈現出的產品。使用者設備可對所選擇的產品製定資訊請求,並且將請求發送至外部前端系統103。作為回應,外部前端系統103可請求與所選擇的產品有關的資訊。例如,資訊可包括在各自的SRP上為產品呈現的資訊之外的附加的資訊。這可包括例如保存期限、原產地、重量、尺寸、包裹中的物品的數量、使用說明、黎明或首次遞送的截至時間或關於產品的其他資訊。資訊亦可包括對類似產品的推薦(例如,基於購買所述產品和至少一種其他產品的顧客的大資料和/或機器學習分析)、常見問題的答案、來自顧客的評論、製造商資訊、圖片等。The user device may then select a product from the SRP, e.g., by clicking or tapping on the user interface, or using another input device, to select a product presented on the SRP. The user device may formulate an information request for the selected product and send the request to the external front-end system 103. In response, the external front-end system 103 may request information related to the selected product. For example, the information may include additional information beyond the information presented for the product on the respective SRP. This may include, for example, a shelf life, country of origin, weight, dimensions, number of items in a package, instructions for use, a deadline for first delivery or first delivery, or other information about the product. The information may also include recommendations for similar products (e.g., based on big data and/or machine learning analysis of customers who purchased the product and at least one other product), answers to frequently asked questions, reviews from customers, manufacturer information, pictures, etc.

外部前端系統103可基於接收到的產品資訊、顧客設備的位置以及遞送選項的可用性來準備單一顯示頁(SDP)(例如,圖1C)。SDP亦可包括其他交互元素,例如「立即購買(Buy Now)」按鈕、「添加到購物車(Add to Cart)」按鈕、數量欄位、物品的圖片等。SDP亦可包括提供產品的賣方清單。所述清單可基於每個賣方提供的價格有序排序,使得提供以最低價格出售產品的賣方可被列在頂部。所述清單亦可基於賣方排名來排序,使得排名最高的賣方可被列在頂部。可基於多個因素來製定賣方排名,所述多個因素包括例如賣方滿足承諾的PDD的過去的跟蹤記錄。外部前端系統103可(例如,經由網路)將SDP遞送至請求使用者設備。The external front-end system 103 may prepare a single display page (SDP) (e.g., FIG. 1C ) based on the received product information, the location of the customer's device, and the availability of delivery options. The SDP may also include other interactive elements, such as a "Buy Now" button, an "Add to Cart" button, a quantity field, a picture of the item, etc. The SDP may also include a list of sellers that offer the product. The list may be sorted in order based on the price offered by each seller, so that the seller offering the product at the lowest price may be listed at the top. The list may also be sorted based on the seller ranking, so that the highest ranked seller may be listed at the top. The seller ranking may be formulated based on multiple factors, including, for example, past tracking records of the seller meeting the promised PDD. The external front-end system 103 may deliver the SDP to the requesting user device (eg, via a network).

請求使用者設備可接收列出產品資訊的SDP。在接收SDP之後,使用者設備然後可與SDP交互。例如,請求使用者設備的使用者可點擊SDP上的「放入購物車(Place in Cart)」按鈕或以其他方式與SDP上的「放入購物車(Place in Cart)」按鈕交互。這將產品添加到與使用者關聯的購物車中。替代地或另外,使用者可通過提供遞送指令來與SDP交互。使用者設備可將所述請求發送至外部前端系統103以將產品添加到購物車。The requesting user device may receive an SDP listing product information. After receiving the SDP, the user device may then interact with the SDP. For example, a user of the requesting user device may click or otherwise interact with a "Place in Cart" button on the SDP. This adds the product to a shopping cart associated with the user. Alternatively or in addition, the user may interact with the SDP by providing delivery instructions. The user device may send the request to the external front-end system 103 to add the product to the shopping cart.

外部前端系統103可生成購物車頁面(例如,圖1D)。在一些實施例中,購物車頁面列出使用者已經添加到虛擬「購物車」的產品。使用者設備可通過點擊SRP、SDP或其他頁面上的圖示或以其他方式與SRP、SDP或其他頁面上的圖示交互來請求購物車頁面。在一些實施例中,購物車頁面可列出使用者已經添加到購物車的所有產品,以及關於購物車中的產品的資訊,例如每種產品的數量、每種產品的每件價格、基於關聯的數量的每種產品的價格、關於承諾的遞送日期(PDD)的資訊、遞送方法、裝運成本、用於修改購物車中的產品的使用者介面元素(例如,刪除或修改數量)、訂購其他產品或設置產品的定期遞送的選項、設置利息支付的選項、用於繼續購買的使用者介面元素等。在使用者設備處的使用者可點擊使用者介面元素(例如,讀作「立即購買(Buy Now)」的按鈕)或以其他方式與使用者介面元素交互以發起在購物車中的產品的購買。在這樣做之後,使用者設備可將所述請求發送至外部前端系統103以發起購買。在一些實施例中,購物車頁面可包括文字盒輸入、交互式圖標,或針對每一產品遞送的推薦訊息。The external front-end system 103 may generate a shopping cart page (e.g., FIG. 1D ). In some embodiments, the shopping cart page lists products that the user has added to a virtual “shopping cart.” The user device may request the shopping cart page by clicking on an icon on the SRP, SDP, or other page or otherwise interacting with an icon on the SRP, SDP, or other page. In some embodiments, the shopping cart page may list all products that the user has added to the shopping cart, as well as information about the products in the shopping cart, such as the quantity of each product, the price per unit of each product, the price of each product based on the associated quantity, information about the promised delivery date (PDD), the delivery method, shipping costs, user interface elements for modifying products in the shopping cart (e.g., deleting or modifying the quantity), options for ordering additional products or setting up recurring deliveries of products, options for setting up interest payments, user interface elements for continuing with a purchase, and the like. A user at a user device may click on a user interface element (e.g., a button that reads "Buy Now") or otherwise interact with a user interface element to initiate the purchase of the products in the shopping cart. After doing so, the user device may send the request to the external front-end system 103 to initiate the purchase. In some embodiments, the shopping cart page may include a text box input, an interactive icon, or a recommendation message delivered for each product.

外部前端系統103可回應於接收到發起購買的請求而生成訂單頁面(例如,圖1E)。在一些實施例中,訂單頁面重新列出來自購物車的物品並請求輸入支付和裝運資訊。例如,訂單頁面可包括請求關於購物車中的物品的購買者的資訊(例如,姓名、地址、電子郵寄地址、電話號碼)、關於接收者的資訊(例如,姓名、地址、電話號碼、遞送資訊)、裝運資訊(例如,遞送和/或取貨的速度/方法)、支付資訊(例如,信用卡、銀行轉帳、支票、儲值卡)的部分,以及請求現金收據(例如,用於稅收的目的)的使用者介面元素等。外部前端系統103可將訂單頁面發送至使用者設備。The external front-end system 103 may generate an order page (e.g., FIG. 1E ) in response to receiving a request to initiate a purchase. In some embodiments, the order page re-lists the items from the shopping cart and requests entry of payment and shipping information. For example, the order page may include a portion requesting information about the purchaser of the items in the shopping cart (e.g., name, address, email address, phone number), information about the recipient (e.g., name, address, phone number, delivery information), shipping information (e.g., speed/method of delivery and/or pickup), payment information (e.g., credit card, bank transfer, check, prepaid card), and a user interface element requesting a cash receipt (e.g., for tax purposes), etc. The external front-end system 103 may send the order page to the user device.

使用者設備可在訂單頁面上輸入資訊,並且按一下將資訊發送至外部前端系統103的使用者介面元素或以其他方式與將資訊發送至外部前端系統103的使用者介面元素交互。從那裡,外部前端系統103可將資訊發送至系統100中的不同系統,以啟動具有購物車中的產品的新訂單的創建和處理。在一些實施例中,外部前端系統103亦可進一步配置為使賣方能夠發送和接收與訂單有關的資訊。The user device may enter information on the order page and click or otherwise interact with user interface elements that send information to the external front end system 103. From there, the external front end system 103 may send information to different systems in the system 100 to initiate the creation and processing of a new order with the products in the shopping cart. In some embodiments, the external front end system 103 may also be further configured to enable the seller to send and receive information related to the order.

在一些實施例中,內部前端系統105可實現為使內部使用者(例如,擁有、操作或租賃系統100的組織的雇員)能夠與系統100中的一或多個系統交互的電腦系統。例如,在SAT系統101使系統的呈現能夠讓使用者為物品下訂單的實施例中,內部前端系統105可實現為網頁伺服器,所述網頁伺服器使內部使用者能夠:查看關於訂單的診斷和統計資訊、修改物品資訊或審查與訂單相關的統計資訊。例如,內部前端系統105可實現為運行軟體的電腦或多個電腦(例如,Apache HTTP伺服器、微軟網際網路資訊服務(IIS)、NGINX等)。在其他實施例中,內部前端系統105可運行定製的網頁伺服器軟體,所述定製的網頁伺服器軟體設計為:接收和處理來自系統100中描述的系統或設備(以及未繪示的其他設備)的請求,基於那些請求從資料庫和其他資料儲存器獲取資訊,以及基於所獲取的資訊對所接收的請求提供回應。In some embodiments, the internal front-end system 105 may be implemented as a computer system that enables internal users (e.g., employees of an organization that owns, operates, or leases the system 100) to interact with one or more systems in the system 100. For example, in an embodiment where the SAT system 101 enables the presentation of the system to allow users to place orders for items, the internal front-end system 105 may be implemented as a web server that enables internal users to: view diagnostic and statistical information about orders, modify item information, or review statistics related to orders. For example, the internal front-end system 105 may be implemented as a computer or multiple computers running software (e.g., Apache HTTP Server, Microsoft Internet Information Services (IIS), NGINX, etc.). In other embodiments, the internal front-end system 105 may run customized web server software that is designed to receive and process requests from systems or devices described in system 100 (as well as other devices not shown), obtain information from databases and other data stores based on those requests, and provide responses to the received requests based on the obtained information.

在一些實施例中,內部前端系統105可包括網頁快取系統、資料庫、搜尋系統、支付系統、分析系統、訂單監控系統等中的一或多個。在一個方面,內部前端系統105可包括這些系統中的一或多個,而在另一方面,內部前端系統105可包括連接至這些系統中的一或多個的介面(例如,伺服器到伺服器、資料庫到資料庫或其他網路連接)。In some embodiments, the internal front-end system 105 may include one or more of a web cache system, a database, a search system, a payment system, an analysis system, an order monitoring system, etc. In one aspect, the internal front-end system 105 may include one or more of these systems, while in another aspect, the internal front-end system 105 may include an interface (e.g., server-to-server, database-to-database, or other network connection) connected to one or more of these systems.

在一些實施例中,運輸系統107可實現為能夠在系統100的系統或設備與移動設備107A-107C之間進行通訊的電腦系統。在一些實施例中,運輸系統107可接收來自一或多個移動設備107A-107C(例如,行動電話、智慧手機、PDA等)的資訊。例如,在一些實施例中,移動設備107A-107C可包括由遞送工作者操作的設備。遞送工作者(可以是永久的、臨時的或輪班的雇員)可利用移動設備107A-107C來實現包括由使用者訂購的產品的包裹的遞送。例如,為了遞送包裹,遞送工作者可在移動設備上接收指示將遞送哪個包裹以及在何處遞送它的通知。在到達遞送位置之後,遞送工作者可(例如,在卡車的後部或包裹的紙箱中)定位包裹,使用移動設備掃描或以其他方式捕獲與包裹上的識別字(例如,條碼、影像、文本字串、RFID標籤等)相關聯的資料,以及遞送包裹(例如,通過將包裹留在前門、將包裹交給保安、將包裹遞交給接收者等)。在一些實施例中,遞送工作者使用移動設備可捕獲包裹的照片和/或可獲得簽名。移動設備可將包括關於遞送的資訊(包括例如時間、日期、GPS位置、照片、與遞送工作者相關聯的識別字、與移動設備相關聯的識別字等)的資訊發送至運輸系統107。運輸系統107可將所述資訊儲存在資料庫(未圖示)中,以供系統100中的其他系統存取。在一些實施例中,運輸系統107可使用所述資訊來準備跟蹤資料並將跟蹤資料發送至其他系統,所述跟蹤資料指示特定的包裹的位置。In some embodiments, the transport system 107 may be implemented as a computer system capable of communicating between the systems or devices of the system 100 and the mobile devices 107A-107C. In some embodiments, the transport system 107 may receive information from one or more mobile devices 107A-107C (e.g., mobile phones, smart phones, PDAs, etc.). For example, in some embodiments, the mobile devices 107A-107C may include devices operated by delivery workers. Delivery workers (who may be permanent, temporary, or shift employees) may utilize mobile devices 107A-107C to implement the delivery of packages including products ordered by users. For example, in order to deliver a package, the delivery worker may receive a notification on the mobile device indicating which package will be delivered and where it will be delivered. Upon arriving at the delivery location, the delivery worker may locate the package (e.g., in the back of a truck or in the package's carton), use the mobile device to scan or otherwise capture data associated with an identifier on the package (e.g., a barcode, image, text string, RFID tag, etc.), and deliver the package (e.g., by leaving the package at the front door, handing the package to security, delivering the package to the recipient, etc.). In some embodiments, the delivery worker using the mobile device may capture a photo of the package and/or may obtain a signature. The mobile device may transmit information including information about the delivery (including, for example, time, date, GPS location, photo, identifier associated with the delivery worker, identifier associated with the mobile device, etc.) to the transportation system 107. The transport system 107 may store the information in a database (not shown) for access by other systems in the system 100. In some embodiments, the transport system 107 may use the information to prepare and send tracking data to other systems, the tracking data indicating the location of a particular package.

在一些實施例中,某些使用者可使用一種移動設備(例如,永久工作者可使用具有定製硬體的專用PDA(例如,條碼掃描器、觸控筆和其他設備)),而其他使用者可使用其他種類的移動設備(例如,臨時工作者或輪班工作者可利用現成的行動電話和/或智慧手機)。In some embodiments, certain users may use one type of mobile device (e.g., a permanent worker may use a specialized PDA with customized hardware (e.g., a barcode scanner, stylus, and other devices)) while other users may use other types of mobile devices (e.g., temporary or shift workers may utilize off-the-shelf cell phones and/or smartphones).

在一些實施例中,運輸系統107可將使用者與每個設備相關聯。例如,運輸系統107可儲存使用者(由例如,使用者識別項、雇員識別字或電話號碼表示)與移動設備(由例如,國際移動設備識別碼(International Mobile Equipment Identity,IMEI)、國際移動訂閱識別字(International Mobile Subscription Identifier,IMSI)、電話號碼、通用唯一識別碼(Universal  Unique Identifier,UUID)或全球唯一識別碼(Globally Unique Identifier,GUID)表示)之間的關聯。運輸系統107可將所述關聯與在遞送時接收的資料結合使用以分析儲存在資料庫中的資料,以便確定(除了其他的以外)工作者的位置、工作者的效率或工作者的速度等。In some embodiments, the transportation system 107 may associate a user with each device. For example, the transportation system 107 may store an association between a user (represented by, for example, a user ID, an employee ID, or a phone number) and a mobile device (represented by, for example, an International Mobile Equipment Identity (IMEI), an International Mobile Subscription Identifier (IMSI), a phone number, a Universal Unique Identifier (UUID), or a Globally Unique Identifier (GUID)). The transportation system 107 may use the association in conjunction with data received during delivery to analyze data stored in a database to determine, among other things, the location of a worker, the efficiency of a worker, or the speed of a worker.

在一些實施例中,賣方門戶109可實現為使賣方或其他外部實體能夠與系統100中的一或多個系統以電子方式通訊的電腦系統。例如,賣方可利用電腦系統(未圖示)來上載或提供賣方希望使用賣方門戶109通過系統100銷售的產品的產品資訊、訂單資訊、聯繫資訊等。In some embodiments, the seller portal 109 may be implemented as a computer system that enables a seller or other external entity to electronically communicate with one or more systems in the system 100. For example, a seller may utilize a computer system (not shown) to upload or provide product information, order information, contact information, etc. for products that the seller wishes to sell through the system 100 using the seller portal 109.

在一些實施例中,裝運和訂單跟蹤系統111可實現為接收、儲存和轉發關於包裹的位置的資訊的電腦系統,所述包裹包括由顧客(例如,由使用者使用設備102A-102B)訂購的產品。在一些實施例中,裝運和訂單跟蹤系統111可請求或儲存來自由裝運公司操作的網頁伺服器(未圖示)的資訊,所述裝運公司遞送包括由顧客訂購的產品的包裹。In some embodiments, the shipping and order tracking system 111 may be implemented as a computer system that receives, stores, and forwards information about the location of packages that include products ordered by customers (e.g., by users using devices 102A-102B). In some embodiments, the shipping and order tracking system 111 may request or store information from a web server (not shown) operated by a shipping company that delivers packages that include products ordered by customers.

在一些實施例中,裝運和訂單跟蹤系統111可請求和儲存來自系統100中描述的系統的資訊。例如,裝運和訂單跟蹤系統111可從運輸系統107請求資訊。如上所述,運輸系統107可接收來自與一或多個使用者(例如,遞送工作者)或車輛(例如,遞送卡車)相關聯的一或多個移動設備107A-107C(例如,行動電話、智慧手機,PDA等)的資訊。在一些實施例中,裝運和訂單跟蹤系統111還可從勞動力管理系統(WMS)119請求資訊,以確定在履行中心(例如,履行中心200)裡面的各個產品的位置。裝運和訂單跟蹤系統111可從運輸系統107或WMS 119中的一或多個請求資料,對資料進行處理,並根據請求將資料呈現給設備(例如,使用者設備102A和使用者設備102B)。In some embodiments, the shipping and order tracking system 111 can request and store information from the systems described in the system 100. For example, the shipping and order tracking system 111 can request information from the transportation system 107. As described above, the transportation system 107 can receive information from one or more mobile devices 107A-107C (e.g., cell phones, smartphones, PDAs, etc.) associated with one or more users (e.g., delivery workers) or vehicles (e.g., delivery trucks). In some embodiments, the shipping and order tracking system 111 can also request information from a workforce management system (WMS) 119 to determine the location of various products within a fulfillment center (e.g., fulfillment center 200). The shipping and order tracking system 111 may request data from one or more of the transportation systems 107 or the WMS 119, process the data, and present the data to devices (e.g., user device 102A and user device 102B) based on the request.

在一些實施例中,履行最佳化(FO)系統113可實現為儲存來自其他系統(例如,外部前端系統103和/或裝運和訂單跟蹤系統111)的顧客訂單的資訊的電腦系統。FO系統113還可儲存描述在何處持有或儲存特定物品的資訊。例如,某些物品可僅儲存在一個履行中心中,而某些其他物品可儲存在多個履行中心中。在其他實施例中,某些履行中心可設計為僅儲存特定的一組物品(例如,新鮮農產品或冷凍產品)。FO系統113儲存所述資訊以及相關聯的資訊(例如,數量、尺寸、接收日期、到期日期等)。In some embodiments, the fulfillment optimization (FO) system 113 may be implemented as a computer system that stores information about customer orders from other systems (e.g., the external front-end system 103 and/or the shipping and order tracking system 111). The FO system 113 may also store information describing where specific items are held or stored. For example, certain items may be stored in only one fulfillment center, while certain other items may be stored in multiple fulfillment centers. In other embodiments, certain fulfillment centers may be designed to store only a specific group of items (e.g., fresh produce or frozen produce). The FO system 113 stores this information as well as associated information (e.g., quantity, size, receipt date, expiration date, etc.).

在一些實施例中,履行消息傳遞閘道(FMG)115可實現為電腦系統,所述電腦系統以一種格式或協定接收來自系統100中的一或多個系統(例如,FO系統113)的請求或回應,將所述請求或回應轉換為另一種格式或協定,並且以轉換的格式或協定將所述請求或回應轉發到其他系統(例如WMS 119或第三方履行系統121A、121B或121C),反之亦然。In some embodiments, the fulfillment messaging gateway (FMG) 115 may be implemented as a computer system that receives requests or responses from one or more systems in the system 100 (e.g., the FO system 113) in one format or protocol, converts the requests or responses to another format or protocol, and forwards the requests or responses to other systems (e.g., the WMS 119 or third-party fulfillment systems 121A, 121B, or 121C) in the converted format or protocol, or vice versa.

在一些實施例中,供應鏈管理(SCM)系統117可實現為執行預測功能的電腦系統。例如,SCM系統117可基於例如產品的過去需求、產品的預期需求、全網路的過去需求、全網路的預期需求、儲存在每個履行中心200中的計數產品、每種產品的預期訂單或當前訂單等來預測特定產品的需求水準。回應於所述預測的水準和遍及所有履行中心的每種產品的數量,SCM系統117可生成一或多個採購訂單以購買和進貨足夠的數量以滿足對特定產品的預測的需求。In some embodiments, the supply chain management (SCM) system 117 may be implemented as a computer system that performs forecasting functions. For example, the SCM system 117 may forecast the demand level for a specific product based on, for example, past demand for the product, expected demand for the product, past demand across the entire network, expected demand across the entire network, counted products stored in each fulfillment center 200, expected orders or current orders for each product, etc. In response to the forecasted level and the quantity of each product across all fulfillment centers, the SCM system 117 may generate one or more purchase orders to purchase and restock sufficient quantities to meet the forecasted demand for the specific product.

在一些實施例中,勞動力管理系統(WMS)119可實現為監控工作流程的電腦系統。例如,WMS 119可接收來自各個設備(例如,設備107A-107C或設備119A-119C)的指示離散事件的事件資料。例如,WMS 119可接收指示使用這些設備中的一個設備來掃描包裹的事件資料。如下面關於履行中心200和圖2所討論的,在履行過程期間,可通過在特定階段處的機器(例如,自動或手持條碼掃描器、RFID讀取器、高速相機、設備(例如,平板電腦119A)、移動設備/PDA 119B、電腦119C等)掃描或讀取包裹識別字(例如,條碼或RFID標籤資料)。WMS 119可將指示掃描或讀取包裹識別字的每個事件與包裹識別字、時間、日期、位置、使用者識別項或其他資訊一起儲存在對應的資料庫(未圖示)中,並且可將所述資訊提供給其他系統(例如,裝運和訂單跟蹤系統111)。In some embodiments, a workforce management system (WMS) 119 may be implemented as a computer system that monitors a workflow. For example, the WMS 119 may receive event data indicating discrete events from various devices (e.g., devices 107A-107C or devices 119A-119C). For example, the WMS 119 may receive event data indicating that a package was scanned using one of these devices. As discussed below with respect to the fulfillment center 200 and FIG. 2 , during the fulfillment process, a package identifier (e.g., a barcode or RFID tag data) may be scanned or read by a machine (e.g., an automated or handheld barcode scanner, an RFID reader, a high-speed camera, a device (e.g., a tablet 119A), a mobile device/PDA 119B, a computer 119C, etc.) at a particular stage. The WMS 119 may store each event indicating a scan or read of a package identifier in a corresponding database (not shown) along with the package identifier, time, date, location, user identifier, or other information, and may provide the information to other systems (e.g., the shipping and order tracking system 111).

在一些實施例中,WMS 119可儲存將一或多個設備(例如,設備107A-107C或設備119A-119C)與關聯於系統100的一或多個使用者相關聯的資訊。例如,在一些情況下,由於使用者擁有移動設備(例如,移動設備是智慧手機),使用者(例如,兼職或全職雇員)可與移動設備相關聯。在其他情況下,由於使用者暫時保管移動設備(例如,使用者在一天開始時簽出移動設備,將在當天使用它,並且將在一天結束時歸還它),使用者可與移動設備相關聯。In some embodiments, the WMS 119 may store information associating one or more devices (e.g., devices 107A-107C or devices 119A-119C) with one or more users associated with the system 100. For example, in some cases, a user (e.g., a part-time or full-time employee) may be associated with a mobile device because the user owns the mobile device (e.g., the mobile device is a smartphone). In other cases, a user may be associated with a mobile device because the user temporarily keeps the mobile device (e.g., the user checks out the mobile device at the beginning of the day, will use it during the day, and will return it at the end of the day).

在一些實施例中,WMS 119可維護與系統100相關聯的每個使用者的工作日誌。例如,WMS 119可儲存與每個雇員相關聯的資訊,所述資訊包括任何指定的過程(例如,卸載卡車、從揀選區揀選物品、合流牆(rebin wall)工作、包裝物品)、使用者識別項、位置(例如,履行中心200中的樓層或區)、由雇員通過系統移動的單位格的數量(例如,挑選的物品的數量、包裝的物品的數量)、與設備(例如,設備119A-119C)相關聯的識別字等。在一些實施例中,WMS 119可從守時系統(例如,在設備119A-119C上運作的守時系統)接收簽到和簽出資訊。In some embodiments, WMS 119 may maintain a work log for each user associated with system 100. For example, WMS 119 may store information associated with each employee, including any specified process (e.g., unloading a truck, picking items from a picking area, rebin wall work, packaging items), user identification, location (e.g., floor or zone in fulfillment center 200), number of cells moved through the system by the employee (e.g., number of items picked, number of items packaged), identification associated with equipment (e.g., equipment 119A-119C), etc. In some embodiments, WMS 119 may receive check-in and check-out information from a timekeeping system (e.g., a timekeeping system operating on equipment 119A-119C).

在一些實施例中,第三方履行(3PL)系統121A-121C表示與物流和產品的第三方供應商相關聯的電腦系統。例如,雖然一些產品儲存在履行中心200中(如下面參考圖2所討論的),但是其他產品可在異地儲存、可按需生產或者可能原本無法在履行中心200中儲存。3PL系統121A-121C可配置為從FO系統113接收訂單(例如,通過FMG 115)並且可直接向顧客提供產品和/或服務(例如,遞送或安裝)。在一些實施例中,3PL系統121A-121C中的一或多個可以是系統100的一部分,而在其他實施例中,3PL系統121A-121C中的一或多個可在系統100之外(例如,由第三方供應商擁有或操作)。In some embodiments, third-party fulfillment (3PL) systems 121A-121C represent computer systems associated with third-party suppliers of logistics and products. For example, while some products are stored in fulfillment center 200 (as discussed below with reference to FIG. 2 ), other products may be stored off-site, may be produced on demand, or may not be originally stored in fulfillment center 200. 3PL systems 121A-121C may be configured to receive orders from FO system 113 (e.g., via FMG 115) and may provide products and/or services directly to customers (e.g., delivery or installation). In some embodiments, one or more of the 3PL systems 121A-121C may be part of the system 100, while in other embodiments, one or more of the 3PL systems 121A-121C may be external to the system 100 (e.g., owned or operated by a third-party provider).

在一些實施例中,履行中心授權系統(FC Auth)123可實現為具有各種功能的電腦系統。例如,在一些實施例中,FC Auth 123可充當系統100中的一或多個其他系統的單點登錄(SSO)服務。例如,FC Auth 123可使使用者能夠經由內部前端系統105登錄,確定使用者具有存取在裝運和訂單跟蹤系統111處的資源的類似特權,並且使使用者能夠存取這些特權而無需第二個登錄過程。在其他實施例中,FC Auth 123可使使用者(例如,雇員)能夠將他們自己與特定任務相關聯。例如,一些雇員可能沒有電子設備(例如,設備119A-119C),反倒是可在一天的過程中在履行中心200內從一個任務移動到任務以及從一個區移動到另一個區。FC Auth 123可配置為使這些雇員能夠指示在一天中的不同時間他們正在執行什麼任務以及他們正在什麼區。In some embodiments, fulfillment center authorization system (FC Auth) 123 may be implemented as a computer system having various functions. For example, in some embodiments, FC Auth 123 may act as a single sign-on (SSO) service for one or more other systems in system 100. For example, FC Auth 123 may enable a user to log in via internal front-end system 105, determine that the user has similar privileges to access resources at shipping and order tracking system 111, and enable the user to access these privileges without a second login process. In other embodiments, FC Auth 123 may enable users (e.g., employees) to associate themselves with specific tasks. For example, some employees may not have electronic devices (e.g., devices 119A-119C) but may instead move from task to task and zone to zone over the course of a day within fulfillment center 200. FC Auth 123 may be configured to enable these employees to indicate what task they are performing and what zone they are in at different times of the day.

在一些實施例中,勞工管理系統(LMS)125可實現為儲存雇員(包括全職和兼職雇員)的出勤和加班資訊的電腦系統。例如,LMS 125可接收來自FC Auth 123、WMA 119、設備119A-119C、運輸系統107和/或設備107A-107C的資訊。In some embodiments, the labor management system (LMS) 125 may be implemented as a computer system that stores attendance and overtime information for employees (including full-time and part-time employees). For example, the LMS 125 may receive information from the FC Auth 123, the WMA 119, the devices 119A-119C, the transportation system 107, and/or the devices 107A-107C.

圖1A中描述的特定配置僅僅是實例。例如,雖然圖1A描述連接到FO系統113的FC授權系統123,但是並非所有實施例都需要所述特定配置。實際上,在一些實施例中,系統100中的系統可通過一或多個公共或私人網路彼此連接,所述公共或私人網路包括網際網路、內部網路、WAN(廣域網路)、MAN(都會區網路)、符合IEEE 802.11a/b/g/n標準的無線網路、租用線路等。在一些實施例中,系統100中的一或多個系統可實現為在資料中心、伺服器場等處實現的一或多個虛擬伺服器。The specific configurations described in FIG. 1A are merely examples. For example, although FIG. 1A depicts an FC authorization system 123 connected to an FO system 113, not all embodiments require the specific configuration. In practice, in some embodiments, the systems in system 100 may be connected to each other via one or more public or private networks, including the Internet, an intranet, a WAN (wide area network), a MAN (metropolitan area network), a wireless network compliant with IEEE 802.11a/b/g/n standards, a leased line, etc. In some embodiments, one or more systems in system 100 may be implemented as one or more virtual servers implemented in a data center, a server farm, etc.

圖2描述履行中心200。履行中心200是當物品被訂購時儲存裝運給顧客的物品的物理位置的實例。可將履行中心(FC)200劃分為多個區,其中每個區在圖2中描述。在一些實施例中,這些「區」可被認為是作為接收物品、儲存物品、取回物品和裝運物品的過程的不同階段之間的虛擬劃分。因此,雖然圖2中描述「區」,但是區的其他劃分是可能的,並且在一些實施例中,圖2中的區可被省略、重複和/或修改。FIG. 2 depicts a fulfillment center 200. A fulfillment center 200 is an example of a physical location where items are stored for shipment to customers when they are ordered. A fulfillment center (FC) 200 may be divided into a plurality of zones, each of which is depicted in FIG. 2. In some embodiments, these "zones" may be thought of as virtual divisions between different stages of the process of receiving items, storing items, retrieving items, and shipping items. Thus, while "zones" are depicted in FIG. 2, other divisions of zones are possible, and in some embodiments, the zones in FIG. 2 may be omitted, repeated, and/or modified.

入站區203表示從希望使用系統100(圖1A)銷售產品的賣方接收物品的FC 200的區域。例如,賣方可使用卡車201遞送物品202A和202B。物品202A可表示足夠大以佔據其自己的裝運托盤的單個物品,而物品202B可表示在同一托盤上堆疊在一起以節省空間的一組物品。Inbound area 203 represents an area of FC 200 that receives items from sellers who wish to sell products using system 100 (FIG. 1A). For example, the seller may deliver items 202A and 202B using truck 201. Item 202A may represent a single item that is large enough to occupy its own shipping pallet, while item 202B may represent a group of items that are stacked together on the same pallet to save space.

在一些實施例中,如圖2中所繪示,FC 200的部分中的一或多者可包括定位感測器217。定位感測器217可包括多個感測器,所述多個感測器可用於確定產品在FC內的位置且追蹤所述產品經由FC的移動。在此等實施例中,定位感測器217可配置為追蹤產品在FC中的位置和估計不同部分之間的移動。例如,定位感測器217可配置為捕獲及/或儲存產品的位置和時間的歷史資料,以確定FC 200的不同區之間的移動。其他系統可使用此資訊來確定儲存區與包裝區之間的距離或估計時間。In some embodiments, as shown in FIG. 2 , one or more of the portions of the FC 200 may include a positioning sensor 217. The positioning sensor 217 may include a plurality of sensors that may be used to determine the location of a product within the FC and track the movement of the product through the FC. In such embodiments, the positioning sensor 217 may be configured to track the location of a product in the FC and estimate movement between different portions. For example, the positioning sensor 217 may be configured to capture and/or store historical data of the location and time of a product to determine movement between different areas of the FC 200. Other systems may use this information to determine the distance or estimate time between a storage area and a packaging area.

如圖2中所繪示,定位感測器217可包括包裝區211中的感測器217A、揀選區209中的感測器217B,以及下貨區205中的感測器217C。在一些實施例中,可將更多感測器置放於FC 200的不同區中,其目的為追蹤和捕獲物品FC 200的位置,和改良所估計遞送的準確性或最大化遞送選項的可用性。在一些實施例中,定位感測器217可包括光學感測器,如相機。在其他實施例中,定位感測器217可包括無線感測器,如射頻、藍牙或WiFi感測器。另外或替代地,定位感測器217可包括重量感測器。As shown in FIG. 2 , the positioning sensor 217 may include a sensor 217A in the packaging area 211, a sensor 217B in the picking area 209, and a sensor 217C in the unloading area 205. In some embodiments, more sensors may be placed in different areas of the FC 200 for the purpose of tracking and capturing the location of the item FC 200, and improving the accuracy of the estimated delivery or maximizing the availability of delivery options. In some embodiments, the positioning sensor 217 may include an optical sensor, such as a camera. In other embodiments, the positioning sensor 217 may include a wireless sensor, such as a radio frequency, Bluetooth or WiFi sensor. Additionally or alternatively, the positioning sensor 217 may include a weight sensor.

工作者將在入站區203中接收物品,並且可使用電腦系統(未圖示)可選地檢查物品的損壞和正確性。例如,工作者可使用電腦系統以將物品202A和202B的數量與物品的訂購數量進行比較。如果數量不匹配,則工作者可拒絕物品202A或202B中的一或多個。如果數量匹配,則工作者可(使用例如台車、手推運貨車、堆高機,或手動地)將這些物品移動到緩衝區205。例如,緩衝區205可以是揀選區中當前不需要的物品的臨時儲存區域,因為在揀選區中有足夠高的數量的所述物品以滿足預測的需求。在一些實施例中,堆高機206操作以將物品圍繞緩衝區205和在入站區203和下貨區207之間移動。如果在揀選區中需要物品202A或202B(例如,由於預測的需求),則堆高機可將物品202A或202B移動到下貨區207。The worker will receive the items in the inbound area 203 and can optionally check the items for damage and correctness using a computer system (not shown). For example, the worker can use the computer system to compare the quantity of items 202A and 202B with the ordered quantity of the items. If the quantity does not match, the worker can reject one or more of the items 202A or 202B. If the quantity matches, the worker can move these items to the buffer area 205 (using, for example, a dolly, a hand truck, a forklift, or manually). For example, the buffer area 205 can be a temporary storage area for items that are not currently needed in the picking area because there is a sufficiently high quantity of the items in the picking area to meet the predicted demand. In some embodiments, the forklift 206 operates to move items around the buffer zone 205 and between the inbound zone 203 and the unloading zone 207. If the item 202A or 202B is needed in the picking zone (e.g., due to predicted demand), the forklift can move the item 202A or 202B to the unloading zone 207.

下貨區207可以是在物品被移動到揀選區209之前儲存物品的FC 200的區域。被指定至揀選任務的工作者(「揀選者」)可接近揀選區中的物品202A和202B,使用移動設備(例如,設備119B)掃描揀選區的條碼,以及掃描與物品202A和202B相關聯的條碼。此事件可更新即時位置系統,所述即時位置系統更新資料庫以指明物品已移動至FC中。揀選者可隨後(例如,通過將物品置放於購物車上或搬運物品)將物品帶到揀選區209,且即時位置系統可請求用於新物品的儲存位置。The unloading area 207 may be an area of the FC 200 where items are stored before they are moved to the picking area 209. A worker assigned to the picking task (a "picker") may approach the items 202A and 202B in the picking area, scan the barcode of the picking area using a mobile device (e.g., device 119B), and scan the barcodes associated with the items 202A and 202B. This event may update the real-time location system, which updates the database to indicate that the items have been moved into the FC. The picker may then bring the items to the picking area 209 (e.g., by placing the items on a shopping cart or carrying the items), and the real-time location system may request a storage location for the new items.

揀選區209可以是物品208儲存在儲存單元210上的FC 200的區域。在一些實施例中,儲存單元210可包括物理擱架、書架、盒子、手提袋、冰箱、冷凍櫃、冷藏庫等中的一或多個。在一些實施例中,揀選區209可組織成多層。在一些實施例中,工作者或機器可以多種方式(包括例如堆高機、電梯、傳送帶、推車、手推運貨車、台車、自動機器人或設備,或手動地)將物品移動到揀選區209中。例如,揀選者可將物品202A和202B放置在下貨區207中的手推運貨車或推車上,並且步行將物品202A和202B裝運到揀選區209。The picking area 209 may be an area of the FC 200 where the items 208 are stored on the storage unit 210. In some embodiments, the storage unit 210 may include one or more of physical shelves, shelves, boxes, totes, refrigerators, freezers, cold storage, etc. In some embodiments, the picking area 209 may be organized into multiple levels. In some embodiments, a worker or machine may move items into the picking area 209 in a variety of ways, including, for example, a forklift, an elevator, a conveyor belt, a cart, a hand truck, a dolly, an automatic robot or device, or manually. For example, a picker may place the items 202A and 202B on a hand truck or cart in the unloading area 207 and walk to load the items 202A and 202B to the picking area 209.

揀選者可接收指令以將物品放置(或「堆裝」)在揀選區209中的特定點(例如,儲存單元210上的特定空間)。例如,揀選者可使用移動設備(例如,設備119B)掃描物品202A。設備(例如,使用指示過道、架子和位置的系統)可指示揀選者應該在何處堆裝物品202A。在一些實施例中,可基於嘗試最大化特定遞送選項(例如,黎明遞送)的可用性的預測演算法來確定堆裝物品202A的位置。然後,在將物品202A堆裝在所述位置之前,設備可提示揀選者掃描在所述位置處的條碼。替代地,與影像辨識耦接的無線感測器或相機可儲存時間的位置。在一些實施例中,設備可(例如,經由無線網路)將資料發送至電腦系統(例如,圖1A中的WMS 119),指示使用設備119B的使用者已經將物品202A裝載在所述位置。The picker may receive instructions to place (or "stack") an item at a specific point in the picking area 209 (e.g., a specific space on the storage unit 210). For example, the picker may scan the item 202A using a mobile device (e.g., device 119B). The device (e.g., using a system that indicates aisles, shelves, and locations) may instruct the picker where the item 202A should be stacked. In some embodiments, the location for stacking the item 202A may be determined based on a predictive algorithm that attempts to maximize the availability of a particular delivery option (e.g., dawn delivery). The device may then prompt the picker to scan a barcode at the location before stacking the item 202A at the location. Alternatively, a wireless sensor or camera coupled with image recognition may store the location over time. In some embodiments, the device may send data (e.g., via a wireless network) to a computer system (e.g., WMS 119 in FIG. 1A) indicating that a user using device 119B has loaded item 202A at the location.

一旦使用者下訂單,揀選者就可在設備119B上接收指令以從儲存單元210取回一或多個物品208。在一些實施例中,如結合圖11進一步描述,揀選者可經由置放或儲存導引接收堆裝產品的指令。揀選者可取回物品208,掃描物品208上的條碼,並將物品208放置在傳送機構214上。在一些實施例中,雖然傳送機構214表示為滑動件,但是傳送機構可實現為傳送帶、電梯、推車、堆高機、手推運貨車、台車、推車等中的一或多個。然後,物品208可到達包裝區211。Once the user places an order, the picker can receive instructions on the device 119B to retrieve one or more items 208 from the storage unit 210. In some embodiments, as further described in conjunction with Figure 11, the picker can receive instructions for stacking products via a placement or storage guide. The picker can retrieve the item 208, scan the barcode on the item 208, and place the item 208 on the conveying mechanism 214. In some embodiments, although the conveying mechanism 214 is shown as a slide, the conveying mechanism can be implemented as one or more of a conveyor belt, an elevator, a cart, a forklift, a hand truck, a dolly, a cart, etc. Then, the item 208 can reach the packaging area 211.

包裝區211可以是從揀選區209接收物品並將物品包裝到盒子或袋子中以用於最終裝運給顧客的FC 200的區域。在包裝區211中,被指定至接收物品的工作者(「合流工作者」)將從揀選區209接收物品208以及確定物品208對應的訂單。例如,合流工作者可使用設備(例如,電腦119C)掃描物品208上的條碼。電腦119C可在視覺上指示物品208與哪個訂單相關聯。這可包括例如與訂單對應的牆壁216上的空間或「單位格」。一旦訂單完成(例如,因為單位格包括針對所述訂單的所有物品),合流工作者可向包裝工作者(或「包裝者」)指示訂單已完成。包裝者可從單位格取回物品並將物品放在盒子或袋子中以用於裝運。然後,包裝者可(例如經由堆高機、推車、台車、手推運貨車、傳送帶、手動地或其他方式)將盒子或袋子送到樞紐區213。The packing area 211 may be an area of the FC 200 that receives items from the picking area 209 and packages the items into boxes or bags for final shipment to customers. In the packing area 211, a worker assigned to receive items (a "merge worker") will receive the items 208 from the picking area 209 and determine the order to which the items 208 correspond. For example, the merge worker may use a device (e.g., computer 119C) to scan a barcode on the item 208. The computer 119C may visually indicate which order the item 208 is associated with. This may include, for example, a space or "cell" on the wall 216 that corresponds to the order. Once the order is complete (e.g., because the cell includes all items for the order), the merge worker may indicate to the packing worker (or "packer") that the order is complete. The packer can retrieve the items from the unit and place them in boxes or bags for shipping. The packer can then deliver the boxes or bags to the hub 213 (e.g., via a forklift, cart, trolley, hand truck, conveyor, manually, or other means).

樞紐區213可以是從包裝區211接收所有盒子或袋子(「包裹」)的FC 200的區域。樞紐區213中的工作者和/或機器可取回包裹218以及確定每個包裹打算前往遞送區域的哪個部分,並且將包裹按特定路線發送到適當的營地區215。例如,如果遞送區域具有兩個較小的子區域,則包裹將前往兩個營地區215之一。在一些實施例中,工作者或機器可(例如,使用設備119A-119C之一)掃描包裹以確定包裹的最終目的地。將包裹按特定路線發送到營地區215可包括例如(例如,基於郵遞區號)確定包裹所指定的地理區域的一部分以及確定與所述地理區域的所述部分相關聯的營地區215。Hub 213 may be the area of FC 200 that receives all of the boxes or bags ("parcels") from packaging area 211. Workers and/or machines in hub 213 may retrieve parcels 218 and determine which portion of the delivery area each parcel is intended for, and route the parcels to the appropriate camp area 215. For example, if the delivery area has two smaller sub-areas, the parcels will go to one of the two camp areas 215. In some embodiments, a worker or machine may scan the parcel (e.g., using one of devices 119A-119C) to determine the final destination of the parcel. Routing the parcel to the camp area 215 may include, for example, determining (e.g., based on a zip code) a portion of a geographic area to which the parcel is destined and determining a camp area 215 associated with the portion of the geographic area.

在一些實施例中,營地區215可包括:一或多個建築物、一或多個物理空間或一或多個區域,在這裡從樞紐區213接收包裹以用於將包裹分揀到路線和/或子路線中。在一些實施例中,營地區215與FC 200物理分離,而在其他實施例中,營地區215可形成FC 200的一部分。In some embodiments, the camp area 215 may include: one or more buildings, one or more physical spaces, or one or more areas where packages are received from the hub 213 for sorting the packages into routes and/or sub-routes. In some embodiments, the camp area 215 is physically separated from the FC 200, while in other embodiments, the camp area 215 may form part of the FC 200.

營地區215中的工作者和/或機器可(例如,基於目的地與現有路線和/或子路線的比較、每個路線和/或子路線的工作量的計算、一天中的時間、裝運方法、裝運包裹220的成本、與包裹220中的物品相關聯的PDD、遞送選項等)確定包裹220應該與哪個路線和/或子路線相關聯。在一些實施例中,工作者或機器可(例如,使用設備119A-119C之一)掃描包裹以確定包裹的最終目的地。一旦將包裹220指定給特定路線和/或子路線,工作者和/或機器就可移動將要裝運的包裹220。在例示性圖2中,營地區215包括卡車222、汽車226和遞送工作者224A和224B。在一些實施例中,卡車222可由遞送工作者224A駕駛,其中遞送工作者224A是為FC 200遞送包裹的全職雇員,並且卡車222由擁有、租賃或操作FC 200的相同公司擁有、租賃或操作。在一些實施例中,汽車226可由遞送工作者224B駕駛,其中遞送工作者224B是在根據需要的基礎上(例如,季節性地)遞送的「彈性工作制的」或臨時的工作者。汽車226可由遞送工作者224B擁有、租賃或操作。Workers and/or machines in camp area 215 may determine which route and/or sub-route a package 220 should be associated with (e.g., based on a comparison of the destination to existing routes and/or sub-routes, a calculation of the workload for each route and/or sub-route, the time of day, the shipping method, the cost of shipping package 220, the PDD associated with the items in package 220, delivery options, etc.). In some embodiments, a worker or machine may scan a package (e.g., using one of devices 119A-119C) to determine the final destination of the package. Once a package 220 is assigned to a particular route and/or sub-route, the worker and/or machine may move the package 220 to be shipped. In exemplary FIG. 2 , camp area 215 includes truck 222, car 226, and delivery workers 224A and 224B. In some embodiments, truck 222 may be driven by delivery worker 224A, where delivery worker 224A is a full-time employee who delivers packages for FC 200, and truck 222 is owned, leased, or operated by the same company that owns, leases, or operates FC 200. In some embodiments, car 226 may be driven by delivery worker 224B, where delivery worker 224B is a "flexible" or temporary worker who delivers on an as-needed basis (e.g., seasonally). Car 226 may be owned, leased, or operated by delivery worker 224B.

圖3為符合所揭露實施例的例示性系統300的示意性方塊圖。在系統300中,資料轉移(data migration;DM)系統320可包括伺服器、電腦模組及/或資料處理中心,其配置為管理顧客及產品資料、控制資料庫備份處理程序及/或部署恢復資料。除DM系統320之外系統300可包括線上資源340、用戶端設備350、第三方系統360、FC/倉庫系統310以及資料庫380。在一些實施例中,如圖3中所繪示,系統300的組件可連接至網路370。然而,在其他實施例中,系統300的組件可直接彼此連接而無需網路370。例如,資料庫380可直接耦接至DM系統320。FIG. 3 is a schematic block diagram of an exemplary system 300 consistent with the disclosed embodiments. In the system 300, a data migration (DM) system 320 may include servers, computer modules and/or data processing centers configured to manage customer and product data, control database backup processes and/or deploy recovery data. In addition to the DM system 320, the system 300 may include online resources 340, client devices 350, third-party systems 360, FC/warehouse systems 310, and databases 380. In some embodiments, as shown in FIG. 3, components of the system 300 may be connected to a network 370. However, in other embodiments, components of the system 300 may be directly connected to each other without the network 370. For example, the database 380 may be directly coupled to the DM system 320.

在一些實施例中,DM系統320可連接至系統300的其他元件,以提供資料庫轉移平台。因此,在一些實施例中,DM系統320可具有系統300的存取、儲存及/或策展資訊。例如,在電子商務內容背景中,DM系統320可連接至內部資料庫、外部資料庫、應用程式介面及/或雲端服務以管理和協調轉移過程、執行驗證操作以及佈置(或重組)資料結構。DM系統320可經由外部前端系統103和內部前端系統105兩者與資料庫通訊。DM系統320亦可耦接至賣方門戶109。在某些實施例中,DM系統320可配置為處置資料庫操作和例如複製資料庫且處置與資料庫相關的訊務。在此等實施例中,DM系統320可配置為儲存和部署生成圖1C的SDP所必要的資料。DM系統320亦可協調存取或修改資料的安全性協定和許可。In some embodiments, the DM system 320 may be connected to other elements of the system 300 to provide a database migration platform. Thus, in some embodiments, the DM system 320 may have access, storage, and/or curation information for the system 300. For example, in the context of e-commerce content, the DM system 320 may be connected to internal databases, external databases, application programming interfaces, and/or cloud services to manage and coordinate migration processes, perform validation operations, and deploy (or reorganize) data structures. The DM system 320 may communicate with the database via both the external front-end system 103 and the internal front-end system 105. The DM system 320 may also be coupled to the seller portal 109. In some embodiments, the DM system 320 may be configured to handle database operations and, for example, replicate databases and handle database-related traffic. In such embodiments, DM system 320 may be configured to store and deploy the data necessary to generate the SDP of Figure 1C. DM system 320 may also coordinate security protocols and permissions for accessing or modifying data.

DM系統320可包括控制器323,其可耦接至系統300中的工具和資料庫。控制器323亦可配置為生成資料群集、儲存資料、驗證資料和執行追趕操作。控制器323亦可管理資料庫的雙寫入、複寫及/或複製。例如,如下文結合圖4和圖5進一步論述,控制器323可執行操作以將資料庫方案部署至生產上、觸發應用程式以在新資料庫中寫入資料、寫入至新資料庫同時將源資料庫保持為主要的,且執行雙寫入操作。The DM system 320 may include a controller 323 that may be coupled to tools and databases in the system 300. The controller 323 may also be configured to generate data clusters, store data, verify data, and perform catch-up operations. The controller 323 may also manage dual writes, replication, and/or replication of databases. For example, as further discussed below in conjunction with Figures 4 and 5, the controller 323 may perform operations to deploy a database solution to production, trigger an application to write data in a new database, write to a new database while keeping the source database as primary, and perform dual write operations.

此外,在某些實施例中,控制器323亦可執行資料的加密和解密的功能。例如,控制器323可實施加密和解密引擎,當資料庫複製或快照被轉移時,所述加密和解密引擎可用於資料庫複製或快照的加密和解密。控制器323亦可加密訊務管線以避免在轉移期間受到損壞。在一些實施例中,為改良轉移過程的安全性,控制器323可包括用於128位元、192位元及/或256位元加密的高級加密標準(Advanced Encryption Standard;AES)的引擎或核心。在一些實施例中,控制器323可包括一或多個已知處理設備,例如但不限於來自由英特爾 TM(Intel TM)製造的奔騰 TM(Pentium TM)或至強 TM(Xeon TM)系列、由超微 TM(AMD TM)製造的炫龍 TM(Turion TM)系列的微處理器,或來自其他製造商的各種處理器中的任一者。然而,在其他實施例中,控制器323可為耦接且配置為執行符合本揭露內容的功能的多個設備。在一些實施例中,控制器323可耦接至一或多個資料庫和分群系統,如下文關於圖4進一步論述。 In addition, in some embodiments, the controller 323 may also perform encryption and decryption functions for data. For example, the controller 323 may implement an encryption and decryption engine that can be used to encrypt and decrypt database copies or snapshots when they are transferred. The controller 323 may also encrypt traffic pipes to prevent them from being corrupted during the transfer. In some embodiments, to improve the security of the transfer process, the controller 323 may include an Advanced Encryption Standard (AES) engine or core for 128-bit, 192-bit, and/or 256-bit encryption. In some embodiments, controller 323 may include one or more known processing devices, such as, but not limited to, microprocessors from the Pentium™ or Xeon™ families manufactured by Intel , the Turion family manufactured by AMD™ , or any of a variety of processors from other manufacturers. However, in other embodiments, controller 323 may be multiple devices coupled and configured to perform functions consistent with the present disclosure. In some embodiments, controller 323 may be coupled to one or more databases and grouping systems, as further discussed below with respect to FIG. 4.

另外,DM系統320可包括儲存和管理系統300的某些資訊的區域資料庫325。例如,區域資料庫325可包括例如甲骨文 TM(Oracle TM)資料庫、賽貝斯 TM(Sybase TM)資料庫或其他關連式資料庫或非關連式資料庫,例如海杜普 TM(Hadoop TM)順序檔案、海貝斯 TM(HBase TM)或卡珊德拉 TM(Cassandra TM)。在一些實施例中,區域資料庫325可包括計算組件(例如,資料庫管理系統、資料庫伺服器等),所述計算組件配置成接收和處理對儲存於資料庫的記憶體設備中的資料的請求且提供來自資料庫的資料。在其他實施例中,控制器322可控制區域資料庫325的操作且區域資料庫325可為儲存單元。在一些實施例中,區域資料庫325可包括NoSQL資料庫,例如HBase、MongoDB TM或Cassandra TM。此外,區域資料庫325可包括例如甲骨文、MySQL以及微軟SQL伺服器的關連式資料庫。 In addition, the DM system 320 may include a regional database 325 that stores and manages certain information of the system 300. For example, the regional database 325 may include, for example, an Oracle TM database, a Sybase TM database, or other relational databases or non-relational databases such as Hadoop TM sequential files , HBase TM , or Cassandra TM . In some embodiments, the regional database 325 may include a computing component (e.g., a database management system, a database server, etc.) configured to receive and process requests for data stored in a memory device of the database and provide data from the database. In other embodiments, the controller 322 may control the operation of the regional database 325 and the regional database 325 may be a storage unit. In some embodiments, the regional database 325 may include a NoSQL database such as HBase, MongoDB , or Cassandra . In addition, the regional database 325 may include a relational database such as Oracle, MySQL, and Microsoft SQL Server.

區域資料庫325可儲存可由系統300的其他元件使用的資料。例如,區域資料庫325可儲存可由用戶端設備350或線上資源340請求的資料。儲存於區域資料庫325中的資料可包括與遞送訂單及/或遞送者相關聯的任何合適的資料,所述資料可用於選擇定價演算法和確定及/或調整支付給遞送者。儲存於區域資料庫325中的資料亦可包括關於使用者的財務資訊、使用者憑證及/或使用者偏好。儘管圖3示出在DM系統320內的區域資料庫325,在一些實施例中,區域資料庫325可與DM系統320分開地(虛擬地或實體地)定位。例如,在一些實施例中,區域資料庫325可為可由使用者連接或斷開的外部儲存單元。在一些實施例中,區域資料庫325可在由控制器323執行的轉移過程期間充當複製資料庫。例如,區域資料庫325可配置為在轉移過程期間複製外部資料庫380中的一或多者。此外,區域資料庫325可配置為快取資料庫以例如在資料轉移期間捕獲追趕資料。The regional database 325 may store data that may be used by other components of the system 300. For example, the regional database 325 may store data that may be requested by the client device 350 or the online resource 340. The data stored in the regional database 325 may include any suitable data associated with the delivery order and/or the deliverer, which may be used to select a pricing algorithm and determine and/or adjust payments to the deliverer. The data stored in the regional database 325 may also include financial information about the user, user credentials, and/or user preferences. Although FIG. 3 shows the regional database 325 within the DM system 320, in some embodiments, the regional database 325 may be located separately from the DM system 320 (virtually or physically). For example, in some embodiments, the regional database 325 can be an external storage unit that can be connected or disconnected by a user. In some embodiments, the regional database 325 can act as a replica database during a migration process performed by the controller 323. For example, the regional database 325 can be configured to replicate one or more of the external databases 380 during the migration process. In addition, the regional database 325 can be configured as a cache database to capture chase data, for example, during data migration.

在一些實施例中,DM系統320可用系統100的組件中的一或多者(圖1A)實現。例如,系統320可實現為內部前端系統105、FO系統113、SCM系統117、SAT系統101及/或WMS 119(圖1A)的部分。在其他實施例中,DM系統320可用具有用於資料庫存取的用戶端伺服器模型的資料庫伺服器來實現。在此等實施例中,DM系統320可管理關於經由外部前端系統103(圖1A)收集的訂單資料、點擊資料及/或產品資料的資訊。替代地或另外,DM系統320可實現為特定應用程式內的嵌入式資料庫。例如,DM系統320可作為SCM 117(圖1A)的部分嵌入。在一些實施例中,DM系統320可經由任務的前端/後端指派來控制對區域資料庫325的存取,其中前端在用戶端設備350上運行-其顯示所請求的資料-而後端在伺服器上運行和處置任務,例如資料分析和儲存。In some embodiments, the DM system 320 may be implemented with one or more of the components of the system 100 ( FIG. 1A ). For example, the system 320 may be implemented as part of the internal front-end system 105 , the FO system 113 , the SCM system 117 , the SAT system 101 , and/or the WMS 119 ( FIG. 1A ). In other embodiments, the DM system 320 may be implemented with a database server having a client-server model for database access. In such embodiments, the DM system 320 may manage information about order data, click data, and/or product data collected via the external front-end system 103 ( FIG. 1A ). Alternatively or in addition, the DM system 320 may be implemented as an embedded database within a specific application. For example, the DM system 320 may be embedded as part of the SCM 117 ( FIG. 1A ). In some embodiments, the DM system 320 may control access to the regional database 325 via front-end/back-end assignment of tasks, where the front-end runs on the client device 350 - which displays the requested data - and the back-end runs on the server and handles tasks such as data analysis and storage.

在一些實施例中,DM系統320可經由對查詢語言作出回應的應用程式設計介面(application programing interfaces;API)來請求且提供資源。用於DM系統320的API指定篩選條件和參數。API亦可提供驗證方法和傳遞或共用憑證。經API,DM系統320可允許用戶端設備350(或系統300的其他元件)請求資料轉移。經由API,DM系統320亦可暴露所轉移資料庫及/或來自外部資料庫的請求資訊。此外,經由API,DM系統320可在經由已知憑證進行存取之後讀取資料庫。DM系統320可通過從資料庫中的相關表提取記錄、將其包覆且對其進行標記以及將程式作為返回參數返回檔案或傳送至在參數中傳遞的位址來對API請求作出回應。In some embodiments, the DM system 320 can request and provide resources via an application programming interface (API) that responds to a query language. The API for the DM system 320 specifies filtering conditions and parameters. The API can also provide authentication methods and pass or share credentials. Via the API, the DM system 320 can allow the client device 350 (or other components of the system 300) to request data transfer. Via the API, the DM system 320 can also expose the transferred database and/or request information from the external database. In addition, via the API, the DM system 320 can read the database after accessing it via a known credential. The DM system 320 may respond to the API request by extracting the record from the relevant table in the database, wrapping and tagging it, and returning the file to the program as a return parameter or sending it to the address passed in the parameter.

DM系統320可使用專用資料庫應用程式,如Oracle、DB2、Informix以及微軟SQL伺服器來實現資料管理。替代地或另外,DM系統320可用包括PostgreSQL的自由軟體資料庫應用程式;且根據GNU通用公開許可證來實現。DM system 320 can use dedicated database applications such as Oracle, DB2, Informix, and Microsoft SQL Server to implement data management. Alternatively or in addition, DM system 320 can be implemented using free software database applications including PostgreSQL; and implemented according to the GNU General Public License.

除DM系統320外系統300可包括線上資源340、用戶端設備350、第三方系統360、FC系統310以及資料庫380。在一些實施例中,如圖3中所繪示,系統300的組件可連接至網路370。然而,在其他實施例中,系統300的組件可直接彼此連接而無需網路370。例如,資料庫380可直接耦接至DM系統320。In addition to the DM system 320, the system 300 may include online resources 340, client devices 350, third-party systems 360, FC systems 310, and databases 380. In some embodiments, as shown in FIG3 , the components of the system 300 may be connected to a network 370. However, in other embodiments, the components of the system 300 may be directly connected to each other without the network 370. For example, the database 380 may be directly coupled to the DM system 320.

線上資源340可包括由實體提供的一或多個伺服器或儲存服務,所述實體例如網頁代管、網路連接、雲端或備份服務的提供商。在一些實施例中,線上資源340可與儲存網頁以用於驗證服務、網域名稱系統(Domain Name System;DNS)或登陸頁面的代管服務或伺服器相關聯。在其他實施例中,線上資源340可與雲端計算服務相關聯。在又其他實施例中,線上資源340可與通訊報服務相關聯,例如蘋果推播通知服務(Apple Push Notification Service)、天藍行動服務(Azure Mobile Services)或谷歌雲端通訊報(Google Cloud Messaging)。在此等實施例中,線上資源340可處置與所揭露實施例的功能相關的訊息和通知的遞送。Online resources 340 may include one or more servers or storage services provided by an entity, such as a provider of web hosting, network connectivity, cloud, or backup services. In some embodiments, online resources 340 may be associated with a hosting service or server that stores web pages for authentication services, Domain Name System (DNS), or login pages. In other embodiments, online resources 340 may be associated with cloud computing services. In still other embodiments, online resources 340 may be associated with messaging services, such as Apple Push Notification Service, Azure Mobile Services, or Google Cloud Messaging. In such embodiments, online resources 340 may handle the delivery of messages and notifications related to the functionality of the disclosed embodiments.

此外,線上資源340可包括重導向伺服器,所述伺服器可由DM系統320配置以切換系統300的不同元件之間的線上訊務。此外,線上資源340可包括用於從資料庫擷取資料、複製資料或分群資料庫空間的雲端服務。在一些實施例中,線上資源340可由DM系統320可程式化。例如,線上資源340中的重導向伺服器可由DM系統320程式化以在資料庫轉移之前、期間和之後重導向資料庫查詢。替代地或另外,線上資源340可經配置用於加密、解密及/或驗證處理程序。如結合例如圖11進一步論述,所揭露系統和方法可協調不同操作以用於資料庫轉移和資料驗證。In addition, the online resources 340 may include a redirection server that can be configured by the DM system 320 to switch online traffic between different elements of the system 300. In addition, the online resources 340 may include cloud services for retrieving data from a database, replicating data, or clustering database space. In some embodiments, the online resources 340 may be programmable by the DM system 320. For example, a redirection server in the online resources 340 may be programmed by the DM system 320 to redirect database queries before, during, and after a database migration. Alternatively or in addition, the online resources 340 may be configured for encryption, decryption, and/or authentication processing. As further discussed in conjunction with, for example, FIG. 11, the disclosed systems and methods may coordinate different operations for database migration and data authentication.

用戶端設備350可包括配置為執行符合所揭露實施例的一或多個操作的一或多個計算設備。例如,用戶端設備350可包括桌上型電腦、膝上型電腦、伺服器、移動設備(例如,平板電腦、智慧型手機等)、機上盒、遊戲設備、隨身計算設備或其他類型的計算設備。 在一些實施例中,用戶端設備350可包括使用者設備102A/102B(圖1A)和作為系統100的部分操作。然而,在其他實施例中,用戶端設備350可獨立於系統100。用戶端設備350可包括配置為執行儲存於記憶體(例如,用戶端設備350中的記憶體)中的軟體指令以執行實現下文所描述的功能的操作的一或多個處理器。例如,用戶端設備350可經由DM系統320存取區域資料庫325中的資訊。此外,用戶端設備350可配置為根據由DM系統320傳輸的指令而執行操作。另外,用戶端設備350可配置為觸發形成DM系統320的操作。例如,用戶端設備350可起始資料庫轉移及/或監測轉移狀態。此外,在某些實施例中,用戶端設備350可在資料庫轉移期間或之後接收資料驗證報告及/或請求驗證報告。The client device 350 may include one or more computing devices configured to perform one or more operations consistent with the disclosed embodiments. For example, the client device 350 may include a desktop computer, a laptop computer, a server, a mobile device (e.g., a tablet computer, a smart phone, etc.), a set-top box, a gaming device, a portable computing device, or other types of computing devices. In some embodiments, the client device 350 may include the user device 102A/102B (FIG. 1A) and operate as part of the system 100. However, in other embodiments, the client device 350 may be independent of the system 100. The client device 350 may include one or more processors configured to execute software instructions stored in a memory (e.g., a memory in the client device 350) to perform operations that implement the functions described below. For example, the client device 350 may access information in the regional database 325 via the DM system 320. Furthermore, the client device 350 may be configured to perform operations according to instructions transmitted by the DM system 320. In addition, the client device 350 may be configured to trigger operations of the DM system 320. For example, the client device 350 may initiate a database migration and/or monitor the migration status. Furthermore, in some embodiments, the client device 350 may receive a data validation report and/or request a validation report during or after a database migration.

在一些實施例中,用戶端設備350可配置為用於有線及/或無線通訊,且可包括在由處理器執行時進行網際網路相關通訊(例如,TCP/IP)及內容顯示過程的軟體。例如,用戶端設備350可執行生成和顯示具有產品資訊的介面的瀏覽器軟體。因此,用戶端設備350可執行允許用戶端設備350經由網路370與組件通訊且經由包括於用戶端設備350中的顯示設備在介面中顯示內容的應用程式。In some embodiments, the client device 350 may be configured for wired and/or wireless communications and may include software that, when executed by the processor, performs Internet-related communications (e.g., TCP/IP) and content display processes. For example, the client device 350 may execute browser software that generates and displays an interface with product information. Thus, the client device 350 may execute an application that allows the client device 350 to communicate with components via the network 370 and display content in the interface via a display device included in the client device 350.

所揭露實施例不限於用戶端設備350的任何特定配置。例如,用戶端設備350可為儲存和執行移動應用程式以執行提供由DM系統320及/或線上資源340提供的功能的操作的移動設備。The disclosed embodiments are not limited to any particular configuration of the client device 350. For example, the client device 350 may be a mobile device that stores and executes mobile applications to perform operations that provide the functionality provided by the DM system 320 and/or online resources 340.

資料庫380可包括經配置有適當軟體以儲存、管理、提供以及修改資料的一或多個計算設備。資料庫380可包括實體資料庫。另外,資料庫380可包括基於雲端的資料庫情況。資料庫380可包括例如甲骨文 TM資料庫、賽貝斯 TM資料庫或其他關連式資料庫或非關連式資料庫,例如海杜普 TM順序檔案、海貝斯 TM或卡珊德拉 TM。資料庫380可包括計算組件(例如,資料庫管理系統、資料庫伺服器等),所述計算組件配置成接收和處理對儲存於資料庫的記憶體設備中的資料的請求且提供來自資料庫的資料。另外或替代地,資料庫380可包括經由雲端平台構建和存取的雲端資料庫。在此等實施例中,資料庫380可經由系統300的其他元件管理。例如,資料庫380可由控制器323管理。此外,基於雲端的資料庫380可配置為支援關係資料庫(包括MySQL和PostgreSQL)和NoSQL資料庫(包括MongoDB和Apache CouchDB)且經由由第三方系統360管理的API或經由控制器323存取。 Database 380 may include one or more computing devices configured with appropriate software to store, manage, provide, and modify data. Database 380 may include a physical database. In addition, database 380 may include a cloud-based database scenario. Database 380 may include, for example, an Oracle database, a Sybase database, or other relational databases or non-relational databases, such as Hidup Sequential Files, Hibex , or Cassandra . Database 380 may include computing components (e.g., a database management system, a database server, etc.) configured to receive and process requests for data stored in a memory device of the database and provide data from the database. Additionally or alternatively, database 380 may include a cloud database built and accessed via a cloud platform. In such embodiments, database 380 may be managed by other elements of system 300. For example, database 380 may be managed by controller 323. In addition, cloud-based database 380 may be configured to support relational databases (including MySQL and PostgreSQL) and NoSQL databases (including MongoDB and Apache CouchDB) and accessed via an API managed by third-party system 360 or via controller 323.

儘管單獨繪示資料庫380,但在一些實施例中,資料庫380可包括於DM系統320或線上資源340中,或以其他方式與DM系統320或線上資源340相關。例如,資料庫380在某些實施例中可實現為區域資料庫325。在一些實施例中,資料庫380可儲存與系統300的操作相關的資訊。例如,資料庫380可包括定價資料,連接至線上應用程式(例如,經由線上資源340)。Although database 380 is depicted separately, in some embodiments, database 380 may be included in or otherwise associated with DM system 320 or online resource 340. For example, database 380 may be implemented as a regional database 325 in some embodiments. In some embodiments, database 380 may store information related to the operation of system 300. For example, database 380 may include pricing data and be connected to an online application (e.g., via online resource 340).

第三方系統360可包括系統100的一或多個元件。例如,第三方系統360可包括3PL系統121A-3PL系統121C(圖1)。另外或替代地,第三方系統360可包括由與DM系統320相關的實體提供的一或多個伺服器或儲存服務,所述實體例如服務的提供商或履行中心。第三方系統360亦可經由網路370連接至系統300,但在其他實施例中,第三方系統360可包括與系統300的一些元件的直接連接。例如,為最小化延遲或網路擁擠,第三方系統360可在專用網路中與DM系統320連接。此外,第三方系統360可配置為提供及/或請求來自DM系統320或系統300的其他元件的資訊。在一些實施例中,儘管第三方系統360亦可耦接至網路370,但所述第三方系統360可能不為DM系統320的用戶端。實情為,第三方系統360可包括系統,所述系統包括DM系統320的使用者或用戶端的資訊。例如,第三方系統360可包括遞送承包者的伺服器,其可由系統320在產品遞送涉及第三方承包者時使用。在此等實施例中,DM系統320可配置為生成可從第三方系統360存取的資料的備份。The third-party system 360 may include one or more elements of the system 100. For example, the third-party system 360 may include 3PL systems 121A-3PL systems 121C (Figure 1). Additionally or alternatively, the third-party system 360 may include one or more servers or storage services provided by an entity associated with the DM system 320, such as a provider of services or a fulfillment center. The third-party system 360 may also be connected to the system 300 via the network 370, but in other embodiments, the third-party system 360 may include a direct connection to some elements of the system 300. For example, to minimize latency or network congestion, the third-party system 360 may be connected to the DM system 320 in a dedicated network. In addition, the third-party system 360 may be configured to provide and/or request information from the DM system 320 or other elements of the system 300. In some embodiments, third-party system 360 may not be a client of DM system 320, although it may also be coupled to network 370. Rather, third-party system 360 may include a system that includes information of a user or client of DM system 320. For example, third-party system 360 may include a delivery contractor's server that may be used by system 320 when a product delivery involves a third-party contractor. In such embodiments, DM system 320 may be configured to generate a backup of data accessible from third-party system 360.

FC/倉庫系統310可包括用於確定及/或儲存FC或倉庫內的產品的位置及週期性地更新資料庫(例如,區域資料庫325)的感測器和處理器。例如,FC/倉庫系統310可包括感測器217A-感測器217C(圖2)。替代地或另外,FC/倉庫系統310可包括捕獲擱架的影像且使用影像辨識方法來識別產品和確定產品在FC中的位置的相機。另外,FC/倉庫系統310可耦接至掃描設備且由監視產品的掃描事件來追蹤產品在FC中的定位。此外,FC/倉庫系統310可與DM系統320通訊以提供促進估計可用庫存的資訊。在一些實施例中,FC/倉庫系統310可配置為將可用庫存的週期性更新提供至DM系統320。例如,FC/倉庫系統310可配置為在每天結束時將可用庫存發送至DM系統320。The FC/warehouse system 310 may include sensors and processors for determining and/or storing the location of products within the FC or warehouse and periodically updating a database (e.g., a regional database 325). For example, the FC/warehouse system 310 may include sensors 217A-sensor 217C (Figure 2). Alternatively or in addition, the FC/warehouse system 310 may include a camera that captures images of the shelves and uses image recognition methods to identify products and determine the location of the products in the FC. In addition, the FC/warehouse system 310 may be coupled to a scanning device and track the location of the product in the FC by monitoring scanning events of the product. In addition, the FC/warehouse system 310 may communicate with the DM system 320 to provide information that facilitates estimating available inventory. In some embodiments, the FC/warehouse system 310 may be configured to provide periodic updates of available inventory to the DM system 320. For example, the FC/warehouse system 310 may be configured to send available inventory to the DM system 320 at the end of each day.

網路370可為配置為提供系統300的組件之間的通訊的任何類型的網路。例如,網路370可為提供通訊、交換資訊及/或促進資訊交換的任何類型的網路(包括基礎設施),例如網際網路、區域網路、近場通訊(near field communication;NFC)或使得能夠在系統300的組件之間發送和接收資訊的其他合適的連接。在一些實施例中,網路370可為有線的、無線的或組合。在其他實施例中,系統300的一或多個組件可經由指定通訊鏈路直接通訊。在又其他實施例中,網路370可包括多個網路,從而組織例如一或多個網路。The network 370 can be any type of network configured to provide communication between the components of the system 300. For example, the network 370 can be any type of network (including infrastructure) that provides communication, exchanges information, and/or facilitates information exchange, such as the Internet, a local area network, near field communication (NFC), or other suitable connections that enable information to be sent and received between the components of the system 300. In some embodiments, the network 370 can be wired, wireless, or a combination. In other embodiments, one or more components of the system 300 can communicate directly via a designated communication link. In still other embodiments, the network 370 can include multiple networks, thereby organizing, for example, one or more networks.

應理解,出於描述的便利性,本文中已界定系統300的功能建置區塊的配置和邊界。只要適當地執行指定功能及其關係,便可定義替代邊界。替代方案(包括本文中所描述的替代方案的等效物、擴展、變化、偏差等)將是顯而易見的。此類替代方案在所揭露實施例的範疇內。It should be understood that the configuration and boundaries of the functional building blocks of the system 300 have been defined herein for ease of description. Alternative boundaries may be defined so long as the specified functions and their relationships are properly performed. Alternatives (including equivalents, extensions, variations, deviations, etc. of the alternatives described herein) will be apparent. Such alternatives are within the scope of the disclosed embodiments.

圖4為符合所揭露實施例的例示性資料庫轉移系統400的方塊圖。在一些實施例中,轉移系統400可為系統300的部分。例如,系統400中的控制器323可為與DM系統320(圖3)的部分所論述相同的控制器。然而,在其他實施例中,轉移系統400可獨立於系統300。FIG4 is a block diagram of an exemplary database migration system 400 consistent with disclosed embodiments. In some embodiments, migration system 400 may be part of system 300. For example, controller 323 in system 400 may be the same controller discussed as part of DM system 320 ( FIG3 ). However, in other embodiments, migration system 400 may be independent of system 300.

轉移系統400可包括控制器323。如圖4中所繪示,控制器323可耦接至複製資料庫(複製DB)406和資料庫分群系統(DB分群系統)420。另外,系統400可包括轉移工具402和線上資料庫(線上DB)404。The migration system 400 may include a controller 323. As shown in FIG4, the controller 323 may be coupled to a replica database (replica DB) 406 and a database clustering system (DB clustering system) 420. In addition, the system 400 may include a migration tool 402 and an online database (online DB) 404.

在一些實施例中,控制器323可為DM系統320的部分。然而,在其他實施例中,控制器323可實現為來自DM系統320的獨立元件。控制器323可包括一系列工具以用於資料庫轉移。此等工具可為基於雲端的工具或本端應用程式。工具可包括資料專家工具412、資料加載器工具414、驗證工具416以及追趕工具418。In some embodiments, the controller 323 may be part of the DM system 320. However, in other embodiments, the controller 323 may be implemented as a separate component from the DM system 320. The controller 323 may include a series of tools for database migration. These tools may be cloud-based tools or local applications. The tools may include a data expert tool 412, a data loader tool 414, a validation tool 416, and a tracking tool 418.

資料導出工具412可包括用於從一或多個資料庫導出資料的軟體及/或硬體。例如,資料導出工具412可為可配置的以從線上DB 404及/或複製DB 406導出資料。資料導出工具412可導出儲存於分佈式SQL資料庫平台或CSV資料檔案中的資料且可用於製作邏輯完全備份或導出。資料導出工具412可經由控制器323的介面配置,且可用於將資料庫中的資料導出至SQL檔案、至CSV檔案或其他導出型檔案。The data export tool 412 may include software and/or hardware for exporting data from one or more databases. For example, the data export tool 412 may be configurable to export data from the online DB 404 and/or the replica DB 406. The data export tool 412 may export data stored in a distributed SQL database platform or a CSV data file and may be used to make a logical full backup or export. The data export tool 412 may be configured via an interface of the controller 323 and may be used to export data in a database to a SQL file, to a CSV file, or other export-type file.

在一些實施例中,資料導出工具412亦可配置成用於篩選未被導出的資料。例如,資料導出工具412可通過預設導出整個資料庫的表。經由控制器323的介面,資料導出工具412可為可配置的以排除資料庫中的某些表,例如系統資料庫中的表。另外或替代地,資料導出工具412可基於表或關鍵字、識別符中的元資料或資料自身中的標記而執行篩選操作。例如,資料導出工具412可通過指定表篩選而篩選特定資料庫或表。In some embodiments, the data export tool 412 may also be configured to filter data that is not exported. For example, the data export tool 412 may export the tables of the entire database by default. The data export tool 412 may be configurable via the interface of the controller 323 to exclude certain tables in the database, such as tables in the system database. Additionally or alternatively, the data export tool 412 may perform filtering operations based on metadata in the table or keyword, identifier, or tags in the data itself. For example, the data export tool 412 may filter a particular database or table by specifying a table filter.

在一些實施例中,資料導出工具412可經由並行執行導出操作。例如,資料導出工具412可配置為在將資料傳輸或導出至DB分群系統420時執行並行操作。在此等實施例中,資料導出工具412可配置為指定單一檔案的記錄的最大數量(或資料庫中的列數量)且使得表的並行能夠改良導出較大表的速度。另外或替代地,資料導出工具412可在資料操作期間驗證一致性。例如,資料導出工具412可為可配置的以控制導出資料的方式以用於一致性保證。在此等實施例中,資料導出工具412可通過預設而得到特定時戳的快照(亦即,-一致性快照),且隨後針對一致性使用快照。在此等實施例中,資料導出工具412可使用快照中的某些參數來指定待備份的時戳。In some embodiments, the data export tool 412 can perform export operations via parallel execution. For example, the data export tool 412 can be configured to perform parallel operations when transferring or exporting data to the DB clustering system 420. In these embodiments, the data export tool 412 can be configured to specify the maximum number of records of a single file (or the number of columns in the database) and enable the parallelization of tables to improve the speed of exporting larger tables. In addition or alternatively, the data export tool 412 can verify consistency during data operations. For example, the data export tool 412 can be configurable to control the way in which the data is exported for consistency assurance. In these embodiments, the data export tool 412 can obtain a snapshot of a specific timestamp by default (that is, a -consistency snapshot), and then use the snapshot for consistency. In such embodiments, the data export tool 412 may use certain parameters in the snapshot to specify the timestamp to be backed up.

資料加載器工具414可包括用於將資料導入至一或多個資料庫中的軟體及/或硬體。例如,經由資料加載器工具414,控制器323可將資料加載至DB分群系統420中。資料加載器工具414可配置為用於資料和備份的多執行緒加載的工具。資料加載器工具414可通過連接至主機伺服器或資料庫,識別寫入及/或加載資料所需的特權,且起始資料傳送來操作。例如,資料加載器工具414可打開埠且建立至域插口檔案的連接,以隨後將資料遞送至資料庫中的特定位置且保留某些結構。其他資料加載器工具414可為可配置的以執行一或多個資料校正。例如,資料加載器工具414可不複寫表名稱、解構資料的某些部分及/或覆寫可能已經損壞的資料。另外,在某些實施例中,資料加載器工具414可生成輸出檔案,報告所導出資料、資料結構以及任何修改。另外或替代地,資料加載器工具414可配置以傳送資料庫的表中的元資料資訊和資料加載的元資料,包括例如加載的開始和結束時間以及主二進位日誌位置、分離檔案、表模式以及二進位日誌。The data loader tool 414 may include software and/or hardware for importing data into one or more databases. For example, via the data loader tool 414, the controller 323 may load data into the DB clustering system 420. The data loader tool 414 may be configured as a tool for multi-threaded loading of data and backup. The data loader tool 414 may operate by connecting to a host server or database, identifying the privileges required to write and/or load data, and initiating data transfer. For example, the data loader tool 414 may open a port and establish a connection to a domain socket file to subsequently deliver the data to a specific location in the database and preserve certain structures. Other data loader tools 414 may be configurable to perform one or more data corrections. For example, the data loader tool 414 may not copy table names, deconstruct certain portions of the data, and/or overwrite data that may have been corrupted. Additionally, in some embodiments, the data loader tool 414 may generate an output file reporting the exported data, the data structure, and any modifications. Additionally or alternatively, the data loader tool 414 may be configured to transmit metadata information in the tables of the database and metadata for the data load, including, for example, the start and end times of the load and the location of the main binary log, separate files, table schemas, and binary logs.

驗證工具416可包括用於在資料庫轉移過程之前、期間及/或之後驗證資料的硬體及/或軟體。驗證工具416可經配置用於跨不同環境的資料驗證。在一些實施例中,驗證工具416可包括框架以連接至輔助驗證過程的大量線上資料源。驗證工具416可執行從表層級一直至列層級的多層級資料驗證功能。例如,驗證工具416可為可配置的以執行表層級驗證、執行如表列計數、按列計數分組、行聚集、隨機篩選以及限制的操作。替代地或另外,驗證可為可配置的以執行行、列或SQL層級驗證。例如,驗證工具可執行操作以驗證方案/行資料類型、執行散列比較及/或運行關於不同資料源的自訂查詢。The validation tool 416 may include hardware and/or software for validating data before, during, and/or after the database migration process. The validation tool 416 may be configured for data validation across different environments. In some embodiments, the validation tool 416 may include a framework to connect to a large number of online data sources that assist in the validation process. The validation tool 416 may perform multi-level data validation functions from the table level to the column level. For example, the validation tool 416 may be configurable to perform table-level validation, perform operations such as table column counts, grouping by column counts, row aggregation, random filtering, and restrictions. Alternatively or in addition, validation may be configurable to perform row, column, or SQL level validation. For example, a validation tool may perform operations to validate schema/row data types, perform hash comparisons, and/or run custom queries against different data sources.

在一些實施例中,驗證工具416可經由控制器323的介面配置以執行並行操作。例如,驗證工具416可連接至資料和目標資料庫兩者以運行基於範圍或區塊的驗證。在此初步或並行驗證期間,驗證工具416可基於計數源表中的行數量驗證和驗證其匹配目標表。另外或替代地,驗證工具416可基於標籤或自訂驗證經由特定行執行並行驗證。In some embodiments, the verification tool 416 can be configured via the interface of the controller 323 to perform parallel operations. For example, the verification tool 416 can be connected to both the source and target databases to run range or block based verification. During this preliminary or parallel verification, the verification tool 416 can verify based on counting the number of rows in the source table and verifying that it matches the target table. Additionally or alternatively, the verification tool 416 can perform parallel verification via specific rows based on tags or custom verification.

追趕工具418可包括用於修正目標資料庫與源資料庫之間的資料間隙的軟體及/或硬體。追趕工具418可經由控制器323的介面程式化且執行用於不同資料庫中的雙寫入的操作,產生快取或暫時性資料庫以儲存刷新及/或間隙資料,且執行所需反覆以確認驗證。在一些實施例中,追趕工具418可使用增量複本方法,其中經修改資料利用源資料的多個通道從源至目標環境週期性地拷貝。在此等實施例中,追趕工具418可打開雙寫入以在目標環境中寫入增量資料,產生新資料庫區塊或情況以擷取增量資料,且運行驗證和追趕操作以將增量資料從源傳送至目標環境。在此等實施例中,追趕工具418可將增量變化轉移至由每一後續通道處理的資料。且在某些實施例中,追趕工具可破壞群集中的增量資料以用於較快驗證且將其置放於目標資料庫中。The catch-up tool 418 may include software and/or hardware for correcting data gaps between the target database and the source database. The catch-up tool 418 may be programmed via the interface of the controller 323 and perform operations for dual writes in different databases, create caches or temporary databases to store refresh and/or gap data, and perform required iterations to confirm verification. In some embodiments, the catch-up tool 418 may use an incremental copy method, in which modified data is periodically copied from the source to the target environment using multiple passes of the source data. In such embodiments, the catch-up tool 418 may turn on dual write to write the incremental data in the target environment, create a new database block or instance to capture the incremental data, and run validation and catch-up operations to transfer the incremental data from the source to the target environment. In such embodiments, the catch-up tool 418 may transfer the incremental changes to the data processed by each subsequent channel. And in some embodiments, the catch-up tool may destroy the incremental data in the cluster for faster validation and placement in the target database.

在一些實施例中,追趕工具418可另外或替代地應用雙寫入方法,同時儲存和修改兩個資料庫。在一些實施例中,追趕工具418可在起始雙寫入操作之前執行某些測試。例如,當將資料庫方案應用於DB分群系統420時,控制器323可與追趕工具418嚙合,且隨後使用驗證工具416以確認雙寫入操作同時應用同一資料結構和寫入資料。In some embodiments, the catch-up tool 418 may additionally or alternatively apply a dual write method to store and modify two databases simultaneously. In some embodiments, the catch-up tool 418 may perform certain tests before initiating the dual write operation. For example, when applying the database solution to the DB clustering system 420, the controller 323 may be integrated with the catch-up tool 418 and then use the verification tool 416 to confirm that the dual write operation applies the same data structure and writes data simultaneously.

此外,在某些實施例中,追趕工具418可執行對源資料庫或原資料庫中的修改或輸入項的並行監控,因此其無需週期性地比較資料,但在其寫入於源資料庫中時識別間隙資料。在此等實施例中,追趕工具418可耦接至來自源資料的事件資訊串流,其允許工具監測所儲存資訊中的活動和掃描變化。在此等實施例中,追趕工具418不僅識別變化間隙資料,而且置放具有經歷改變的經掃描資料的改變通知的連續串流以隨後進行確定是否已經由雙寫入操作捕獲。在此等實施例中,追趕工具418可使得能夠執行資料轉移,甚至在資料集經歷作用中改變時亦如此。Additionally, in some embodiments, the catch-up tool 418 may perform concurrent monitoring of modifications or entries in a source or original database so that it does not need to periodically compare data, but identifies gap data as it is written in the source database. In such embodiments, the catch-up tool 418 may be coupled to a stream of event information from the source data, which allows the tool to monitor activity and scan for changes in the stored information. In such embodiments, the catch-up tool 418 not only identifies change gap data, but also places a continuous stream of change notifications with scanned data that has undergone changes to subsequently determine whether it has been captured by a double write operation. In such embodiments, the chase tool 418 may enable data migration to be performed even as the data set undergoes in-flight changes.

如圖4中所繪示,在某些實施例中,控制器323(和控制器323中的工具)可連接至DB分群系統420。DB分群系統420可包括經由通用分片而儲存和組織資料的資料庫分群系統。在一些實施例中,DB分群系統420可密封分片路由邏輯。在此等實施例中,DB分群系統420可允許應用程式碼和資料在多個分片上的分佈的資料庫查詢。例如,DB分群系統420可在資料輸入至資料庫中時分裂和合併分片。在此等實施例中,DB分群系統420可選擇預定義分群大小,且基於資料大小將資料佈置於不同分片中。此外,在一些實施例中,DB分群系統420可包括經暴露或可暴露以查詢經由應用程式設計介面(API)調用路由的資料庫分群系統。以此方式,DB分群系統420可為在轉移之後處置線上查詢的轉移資料庫。此外,DB分群系統420可連接至線上資源。例如,DB分群系統420可連接至線上資源340。As shown in FIG. 4 , in some embodiments, the controller 323 (and the tools in the controller 323 ) may be connected to a DB clustering system 420 . The DB clustering system 420 may include a database clustering system that stores and organizes data via common shards. In some embodiments, the DB clustering system 420 may seal the shard routing logic. In such embodiments, the DB clustering system 420 may allow database queries that distribute application code and data across multiple shards. For example, the DB clustering system 420 may split and merge shards as data is entered into the database. In such embodiments, the DB clustering system 420 may select a predefined cluster size and place the data in different shards based on the data size. In addition, in some embodiments, DB clustering system 420 may include a database clustering system that is exposed or can be exposed to query routing via an application programming interface (API). In this way, DB clustering system 420 can be a migration database that handles online queries after migration. In addition, DB clustering system 420 can be connected to online resources. For example, DB clustering system 420 can be connected to online resources 340.

在一些實施例中,DB分群系統420可提供用於具有高訊務和大資料集的實時資料基礎的資料的快速傳送的解決方案。例如,DB分群系統420可部署、按大小設定,且管理資料庫情況的大群集。DB分群系統420可管理包括MySQL、Percona以及MariaDB資料庫的多種類型的資料庫。其他DB分群系統420可經架構以有效地對如指定硬體上的公開或私人雲端架構起作用。在一些實施例中,DB分群系統420可配置為共用其資訊,同時將應用程式改變保持至最小。例如,當在DB分群系統420中加載資訊時,可設置一或多個群集以與外部源或內部源共用。DB分群系統420亦可與基於雲端的資料庫通訊且部署可用獨立結構檔案管理的個別資料庫情況。In some embodiments, DB clustering system 420 can provide a solution for the rapid transmission of data based on real-time data with high traffic and large data sets. For example, DB clustering system 420 can deploy, size, and manage large clusters of database situations. DB clustering system 420 can manage various types of databases including MySQL, Percona, and MariaDB databases. Other DB clustering systems 420 can be architected to effectively work on public or private cloud architectures such as on designated hardware. In some embodiments, DB clustering system 420 can be configured to share its information while keeping application changes to a minimum. For example, when loading information in DB clustering system 420, one or more clusters can be set to share with external sources or internal sources. The DB clustering system 420 can also communicate with cloud-based databases and deploy individual database instances that can be managed with independently structured files.

在某些實施例中,DB分群系統420可包括由一致元資料儲存器支援的若干伺服器處理程序、命令線公用程式以及基於網頁的公用程式。例如,在轉移過程期間,控制器323可將DB分群系統420設定為將用於支援線上操作的目標資料庫。在此等實施例中,DB分群系統420可使用資料庫應用程式設定資料庫伺服器,所述資料庫應用程式將資料庫服務提供至其他電腦程式或提供至電腦,如由用戶端-伺服器模型定義。此外,在一些實施例中,DB分群系統420可在轉移過程期間充當目標資料庫或轉移資料庫。In some embodiments, DB clustering system 420 may include several server processing programs, command line utilities, and web-based utilities supported by a consistent metadata store. For example, during the migration process, controller 323 may set DB clustering system 420 as a target database to be used to support online operations. In these embodiments, DB clustering system 420 may use a database application to set a database server, and the database application provides database services to other computer programs or to a computer, as defined by a client-server model. In addition, in some embodiments, DB clustering system 420 may serve as a target database or a migration database during the migration process.

如圖4中所繪示,除耦接至DB分群系統420外,控制器323亦可連接至複製DB 406。複製DB 406可包括產生具有與原始資料庫相同的體積和相同的資料的新群集的硬體及/或軟體。複製DB 406可為基於雲端的資料庫情況,其中其相關聯資料體積與原始資料庫相關聯。在一些實施例中,複製DB 406可為來自資料庫群集的供應複製。替代地或另外,複製DB 406可為無伺服器的且以與原始資料庫相同的規則供應。As shown in FIG. 4 , in addition to being coupled to the DB clustering system 420, the controller 323 may also be connected to a replica DB 406. The replica DB 406 may include hardware and/or software that generates a new cluster having the same volume and the same data as the original database. The replica DB 406 may be a cloud-based database instance, where its associated data volume is associated with the original database. In some embodiments, the replica DB 406 may be a provisioned copy from a database cluster. Alternatively or in addition, the replica DB 406 may be serverless and provisioned with the same rules as the original database.

複製DB 406可具有與原始資料庫相同的行為。例如,複製DB 406可具有相同資料結構、資料庫方案以及資料佈置。此外,複製DB 406可儲存相同元資料和驗證資料。The replica DB 406 may have the same behavior as the original database. For example, the replica DB 406 may have the same data structure, database schema, and data layout. In addition, the replica DB 406 may store the same metadata and authentication data.

在具有大資料集的實施例中,複製DB 406可使用複本和寫入協定以將資料有效複寫在複製DB 406中。在此等實施例中,複製DB 406可將資料儲存在頁面中,儲存在複製DB 406的儲存體積中和下方。其他複製DB 406可使用與源部分相同的在實體儲存媒體上的部分複製資料。複製DB 406亦可調整運作中所需儲存。例如,在複製複製DB 406期間,資料庫可確定儲存體等於源資料庫的儲存體。如果需要額外空間,則當在新資料庫中複製資料時,複製DB 406可產生新頁面。此外,複製DB 406可參考資料路由和API回應的原始頁面。In embodiments with large data sets, the replica DB 406 may use a copy and write protocol to efficiently copy the data in the replica DB 406. In such embodiments, the replica DB 406 may store the data in pages, in and below the storage volume of the replica DB 406. Other replica DBs 406 may use portions of the same physical storage media as the source portions to copy the data. The replica DB 406 may also adjust the storage required in operation. For example, during the copy of the replica DB 406, the database may determine that the storage volume is equal to the storage volume of the source database. If additional space is needed, the replica DB 406 may generate new pages when copying the data in the new database. In addition, the replica DB 406 may reference the original page for data routing and API responses.

在一些實施例中,且如下文結合圖5進一步論述,控制器323可使用區域資料庫325中的一或多者產生複製DB 406。控制器323可產生在新位置複寫原始或源資料庫的複製DB 406。另外或替代地,控制器323可從供應先前供應的資料庫情況產生供應複製DB 406。此外,可產生複製DB 406作為經加密資料庫以改良安全性。此外,儘管複製DB 406在圖4中繪示為單一資料庫,但在一些實施例中,複製DB 406可包括可經由一或多個管理伺服器相關聯的多個資料庫。In some embodiments, and as further discussed below in conjunction with FIG. 5 , the controller 323 may generate a replica DB 406 using one or more of the regional databases 325. The controller 323 may generate a replica DB 406 that replicates the original or source database at a new location. Additionally or alternatively, the controller 323 may generate a provisioned replica DB 406 from a provisioned previously provisioned database instance. Furthermore, the replica DB 406 may be generated as an encrypted database to improve security. Furthermore, although the replica DB 406 is illustrated in FIG. 4 as a single database, in some embodiments, the replica DB 406 may include multiple databases that may be associated via one or more management servers.

線上DB 404可類似於複製DB 406。然而,線上DB 404可連接至線上訊務。在某些實施例中,線上DB 404可為無伺服器需求的資料庫系統。在此等實施例中,線上DB 404可配置為接收且處理API調用,從而請求來自線上DB 404的資料。Online DB 404 can be similar to replica DB 406. However, online DB 404 can be connected to online services. In some embodiments, online DB 404 can be a database system without server requirements. In these embodiments, online DB 404 can be configured to receive and process API calls to request data from online DB 404.

在一些實施例中,線上DB 404可為基於雲端的資料庫情況。然而,在其他實施例中,線上DB 404可為連接至線上訊務的資料庫。例如,線上DB 404可為連接至網路370的區域資料庫325中的一或多者。此外,線上DB 404可實現為特定目的資料庫,具有特定容量範圍且支援目標應用程式。In some embodiments, the online DB 404 may be a cloud-based database. However, in other embodiments, the online DB 404 may be a database connected to an online service. For example, the online DB 404 may be one or more of the regional databases 325 connected to the network 370. In addition, the online DB 404 may be implemented as a special purpose database with a specific capacity range and supporting target applications.

在一些實施例中,線上DB 404和複製DB 406可為資料庫380中的一或多者。在其他實施例中,線上DB 404和複製DB 406可為區域資料庫325。在又其他實施例中,線上DB 404和複製DB 406可為資料庫380和區域資料庫325的組合。例如,儘管線上DB 404可設定為資料庫380中的一者,但在DM系統320外部且連接至網路370以支援線上操作,複製DB 406可設定為區域資料庫325中的一者。In some embodiments, the online DB 404 and the replica DB 406 may be one or more of the databases 380. In other embodiments, the online DB 404 and the replica DB 406 may be the regional database 325. In still other embodiments, the online DB 404 and the replica DB 406 may be a combination of the database 380 and the regional database 325. For example, while the online DB 404 may be set as one of the databases 380, it is outside the DM system 320 and connected to the network 370 to support online operations, and the replica DB 406 may be set as one of the regional databases 325.

如圖4中所繪示,線上DB 404和DB分群系統420可連接至轉移工具402。轉移工具402可包括連接至轉移系統400中的元件以與用戶端設備介接和協調資料庫轉移過程的硬體及/或軟體。例如,轉移工具402可與用戶端設備350(圖3)介接且接收及/或處理資料庫轉移的指令。繼而,轉移工具402可配置控制器323或控制器323內的工具以在線上DB 404上操作,產生複製DB 406,且將資料轉移至DB分群系統420。例如,轉移工具402可接收指令以將資料從一種類型資料庫傳送至另一種類型的資料庫,或從資料庫傳送至另一種類型的資料儲存庫(例如,資料倉庫或資料湖)。在此等情境下,轉移工具402將配置控制器323、DB分群系統420以導出、加載且隨後追趕間隙資料,使得線上DB 404中的資料轉移至DB分群系統420。轉移工具402亦可協調資料庫複寫指令以促進資料轉移,且如上文所解釋經由並行驗證最少化停工時間且改良資料準確性。如在圖5至圖11中進一步論述,經由轉移工具402轉移系統400可促進資料庫的轉移。As shown in FIG. 4 , the online DB 404 and the DB clustering system 420 may be connected to a migration tool 402. The migration tool 402 may include hardware and/or software that is connected to the elements in the migration system 400 to interface with the client device and coordinate the database migration process. For example, the migration tool 402 may interface with the client device 350 ( FIG. 3 ) and receive and/or process instructions for database migration. Subsequently, the migration tool 402 may configure the controller 323 or a tool within the controller 323 to operate on the online DB 404, generate a replica DB 406, and migrate the data to the DB clustering system 420. For example, the migration tool 402 may receive instructions to transfer data from one type of database to another type of database, or from a database to another type of data storage (e.g., a data warehouse or a data lake). In such scenarios, the migration tool 402 will configure the controller 323, the DB clustering system 420 to export, load, and then catch up with the gap data so that the data in the online DB 404 is transferred to the DB clustering system 420. The migration tool 402 may also coordinate database replication instructions to facilitate data migration, and as explained above, minimize downtime and improve data accuracy through parallel verification. As further discussed in Figures 5 to 11, the migration system 400 can facilitate the migration of databases via the migration tool 402.

轉移工具402可配置為轉移應用程式,可由用戶端或管理員存取以自動化轉移過程且配置和執行轉移。在一些實施例中,轉移工具402可提供圖形設計者或映射工具。另外,轉移工具402可配備有基於日誌的報告和調整轉移目標、篩選以及資料結構修改的工具。The migration tool 402 may be configured as a migration application that can be accessed by a client or administrator to automate the migration process and configure and execute the migration. In some embodiments, the migration tool 402 may provide a graphical designer or mapping tool. In addition, the migration tool 402 may be equipped with log-based reporting and tools for adjusting migration targets, filtering, and data structure modification.

應理解,出於描述的便利性,本文中已界定系統400的功能建置區塊的配置和邊界。只要適當地執行指定功能及其關係,便可定義替代邊界。替代方案(包括本文中所描述的替代方案的等效物、擴展、變化、偏差等)將是顯而易見的。此類替代方案在所揭露實施例的範疇內。It should be understood that the configuration and boundaries of the functional building blocks of the system 400 have been defined herein for ease of description. Alternative boundaries may be defined so long as the specified functions and their relationships are properly performed. Alternatives (including equivalents, extensions, variations, deviations, etc. of the alternatives described herein) will be apparent. Such alternatives are within the scope of the disclosed embodiments.

圖5為符合所揭露實施例的用於資料庫轉移的例示性過程500的流程圖。在一些實施例中,系統300的元件可執行過程500。例如,如以下步驟描述中所揭露,DM系統320可執行過程500。在一些實施例中,控制器323可配置為在過程500中執行操作。替代地或另外,線上資源340及/或第三方系統360可執行過程500或過程500的部分。此外,在其他實施例中,系統100或系統100的部分可執行過程500。例如,內部前端系統105、SCM系統117及/或SAT 101可執行過程500。此外,在其他實施例中,系統400可實施過程500。例如,轉移工具402、控制器323及/或DB分群系統420可在過程500中執行操作。FIG. 5 is a flow chart of an exemplary process 500 for database migration consistent with disclosed embodiments. In some embodiments, elements of system 300 may perform process 500. For example, as disclosed in the following step description, DM system 320 may perform process 500. In some embodiments, controller 323 may be configured to perform operations in process 500. Alternatively or additionally, online resources 340 and/or third-party systems 360 may perform process 500 or portions of process 500. Furthermore, in other embodiments, system 100 or portions of system 100 may perform process 500. For example, internal front-end system 105, SCM system 117, and/or SAT 101 may perform process 500. Furthermore, in other embodiments, system 400 may perform process 500. For example, the migration tool 402 , the controller 323 , and/or the DB clustering system 420 may perform operations in the process 500 .

以下過程500的描述示出DM系統320中的實施例執行過程500的步驟。然而,如先前所論述,系統300的其他元件亦可為可配置的以執行過程500中的步驟中的一或多者。例如,線上資源340可執行過程500的一或多個步驟。The following description of process 500 illustrates an embodiment of DM system 320 performing the steps of process 500. However, as previously discussed, other elements of system 300 may also be configurable to perform one or more of the steps in process 500. For example, online resource 340 may perform one or more steps of process 500.

在步驟502中,DM系統320可將資料庫方案應用於目標資料庫,所述目標資料庫可設定為資料庫分群系統。例如,DM系統320可將資料庫方案應用於區域資料庫325中的一者。在一些實施例中,系統DM系統320可經由控制器323將資料庫方案應用於DB分群系統420。在一些實施例中,如結合圖9進一步論述,步驟504中的導出資料可包括生成複製資料庫。為最小化停工時間且避免操作中斷,DM系統320可用允許DM系統320執行資料導出和驗證而不干擾線上資料庫(如線上DB 404)的複製操作來起始過程500。In step 502, the DM system 320 may apply the database schema to a target database, which may be set as a database clustering system. For example, the DM system 320 may apply the database schema to one of the regional databases 325. In some embodiments, the system DM system 320 may apply the database schema to the DB clustering system 420 via the controller 323. In some embodiments, as further discussed in conjunction with FIG. 9, exporting data in step 504 may include generating a replica database. To minimize downtime and avoid operational interruptions, the DM system 320 may initiate process 500 with a replication operation that allows the DM system 320 to perform data export and verification without interfering with an online database (such as online DB 404).

在步驟504中,DM系統320可從資料庫導出資料。例如,DM系統320可將一或多個資料庫380中的資料導出至SQL檔案及/或CSV檔案。在一些實施例中,DM系統320可經由控制器323導出線上DB 404的資料。例如,如結合圖4所論述,控制器323可包括導出工具412。在此等實施例中,DM系統320可配置和執行用於使用導出工具412的配置及/或功能來導出來自線上DB 404的資料的操作。In step 504, the DM system 320 may export data from the database. For example, the DM system 320 may export data in one or more databases 380 to SQL files and/or CSV files. In some embodiments, the DM system 320 may export data of the online DB 404 via the controller 323. For example, as discussed in conjunction with FIG. 4, the controller 323 may include an export tool 412. In such embodiments, the DM system 320 may configure and execute operations for exporting data from the online DB 404 using the configuration and/or functions of the export tool 412.

在步驟506中,DM系統320可將檔案導入至目標庫,其可設定為資料庫分群系統。例如,DM系統320可將檔案導入至區域資料庫325中的一者。在一些實施例中,DM系統可經由控制器323將在步驟504中導出的資料導入至DB分群系統420。例如,如結合圖4所論述,控制器323可包括資料加載器工具414。在此等實施例中,DM系統320可配置和執行用於使用資料加載器工具414的配置及/或功能將資料加載至DB分群系統420的操作。In step 506, the DM system 320 may import the file into a target repository, which may be configured as a database clustering system. For example, the DM system 320 may import the file into one of the regional databases 325. In some embodiments, the DM system may import the data exported in step 504 into the DB clustering system 420 via the controller 323. For example, as discussed in conjunction with FIG. 4, the controller 323 may include a data loader tool 414. In such embodiments, the DM system 320 may configure and execute operations for loading data into the DB clustering system 420 using the configuration and/or functionality of the data loader tool 414.

在步驟508中,DM系統320可驗證導入的資料一致性。例如,DM系統320可驗證在步驟506中導入至目標資料庫中的資料的一致性及/或準確性。在一些實施例中,DM系統320可經由控制器323驗證在步驟506中導入至DB分群系統420的資料。例如,如結合圖4所論述,控制器323可包括驗證工具416。在此等實施例中,DM系統320可配置和執行用於驗證導入至DB分群系統420中的操作的操作。In step 508, the DM system 320 may verify the consistency of the imported data. For example, the DM system 320 may verify the consistency and/or accuracy of the data imported into the target database in step 506. In some embodiments, the DM system 320 may verify the data imported into the DB clustering system 420 in step 506 via the controller 323. For example, as discussed in conjunction with FIG. 4, the controller 323 may include a verification tool 416. In such embodiments, the DM system 320 may configure and execute operations for verifying the operations imported into the DB clustering system 420.

儘管圖5繪示步驟508接著步驟506,一些實施例可執行資料一致性的並行驗證。如結合圖4所論述,驗證工具416可在導入期間通過例如在完成其他群集時在DB分群系統420的特定群集上操作而操作。並行驗證可包括較高層級驗證,如上文所論述。然而,在其他實施例中,步驟510可包括並行和依序驗證兩者。Although FIG. 5 illustrates step 508 following step 506, some embodiments may perform parallel verification of data consistency. As discussed in conjunction with FIG. 4 , verification tool 416 may operate during import by, for example, operating on a particular cluster of DB clustering system 420 while completing other clusters. Parallel verification may include higher-level verification, as discussed above. However, in other embodiments, step 510 may include both parallel and sequential verification.

在步驟510中,DM系統320可打開雙寫入操作。例如,如上文結合圖4所論述,控制器323可包括用於雙寫入的工具,其在兩個資料庫空間中捕獲增量資料。增量資料可從線上資源340及/或用戶端設備350接收。例如,使用者經由用戶端設備350可發出資料庫查詢以更新產品或多個產品的定價資料。在此等實施例中,可在線上DB 404和DB分群系統420兩者中複寫由使用者請求的改變。替代地或另外,可從線上資源340及/或轉移工具402接收更新線上DB 404的指令,因為使用者在DM系統320執行轉移時進行改變。在步驟510中,DM系統320可起始雙寫入操作以將線上資料庫中的資料修改複寫至目標資料庫中。In step 510, the DM system 320 may turn on dual write operations. For example, as discussed above in conjunction with Figure 4, the controller 323 may include a tool for dual write that captures incremental data in two database spaces. The incremental data may be received from the online resource 340 and/or the client device 350. For example, a user may issue a database query via the client device 350 to update pricing data for a product or multiple products. In such embodiments, changes requested by the user may be replicated in both the online DB 404 and the DB clustering system 420. Alternatively or in addition, instructions to update the online DB 404 may be received from the online resource 340 and/or the migration tool 402 because the user makes changes when the DM system 320 performs the migration. In step 510, the DM system 320 may initiate a dual write operation to replicate the data modifications in the online database to the target database.

在步驟512,DM系統320可從線上資料庫產生新的資料庫複製。例如,DM系統320可產生新的複製資料庫以捕獲線上資料庫中的最新資料和資料修改。在此等實施例中,新資料庫可擷取更多的刷新資料。在一些實施例中,DM系統320可使用控制器323在新雲端情況下產生新複製。在一些實施例中,可經由第一複製將線上資料庫的新或第二複製重寫至第二複製資料庫。例如,步驟512可包括經由先前複製資料庫重寫。然而,在其他實施例中,複製資料庫可為獨立的。In step 512, the DM system 320 may generate a new database replica from the online database. For example, the DM system 320 may generate a new replica database to capture the latest data and data modifications in the online database. In such embodiments, the new database may capture more refreshed data. In some embodiments, the DM system 320 may use the controller 323 to generate a new replica in a new cloud situation. In some embodiments, a new or second replica of the online database may be overwritten to the second replica database via the first replica. For example, step 512 may include overwriting via a previously replicated database. However, in other embodiments, the replica database may be independent.

在步驟514中,DM系統320可從步驟510中開始的雙寫入操作的點識別和加載步驟512中生成的複製之間的資料集或修改的差量。例如,DM系統320可識別從雙寫入開始以來已改變的資料以捕獲增量資料。在一些實施例中,DM系統320可經由資料驗證識別資料。且DM系統320可經由來自新複製資料庫的表的同步將差量或追趕資料加載至DB分群系統420。In step 514, the DM system 320 may identify and load the delta of the data set or modifications between the replicas generated in step 512 from the point of the dual write operation started in step 510. For example, the DM system 320 may identify the data that has changed since the dual write started to capture the incremental data. In some embodiments, the DM system 320 may identify the data via data validation. And the DM system 320 may load the delta or catch-up data to the DB clustering system 420 via synchronization of the tables from the new replica database.

在步驟516中,DM系統320可運行新的一致性驗證。例如,在步驟514中將資料差量加載至DB分群系統420之後,DM系統320可運行類似於在步驟508中執行的驗證過程的新驗證過程,但此次使用用於驗證的實時資料庫(例如,線上DB 404)資料集。例如,經由步驟516,DM系統420驗證在步驟514中加載的追趕資料致使線上DB 404中與在目標DB分群系統420中的資料相同。此步驟允許DM系統320驗證資料轉移已完成和兩個資料庫具有相同內容和結構。In step 516, the DM system 320 may run a new consistency verification. For example, after loading the data delta into the DB clustering system 420 in step 514, the DM system 320 may run a new verification process similar to the verification process performed in step 508, but this time using the real-time database (e.g., online DB 404) data set for verification. For example, via step 516, the DM system 420 verifies that the catch-up data loaded in step 514 results in the same data in the online DB 404 as in the target DB clustering system 420. This step allows the DM system 320 to verify that the data transfer has been completed and that the two databases have the same content and structure.

在步驟520中,DM系統320可確定轉移中是否存在任何不一致。基於來自步驟516的驗證的結果,DM系統320可確定源資料庫與目標資料庫之間是否存在不一致。如果在步驟520中,DM系統320確定存在資料不一致(步驟520:是),則DM系統320可返回至步驟512,產生新DB複製以隨後識別、加載追趕資料(步驟516),且隨後執行新驗證(520)。在一些實施例中,可多次複寫此反覆過程直至驗證過程成功。如果DM系統320確定不存在資料不一致(步驟520:否),則DM系統320可繼續進行至步驟522。In step 520, the DM system 320 may determine whether there are any inconsistencies in the migration. Based on the results of the validation from step 516, the DM system 320 may determine whether there are inconsistencies between the source database and the target database. If in step 520, the DM system 320 determines that there are data inconsistencies (step 520: yes), the DM system 320 may return to step 512, generate a new DB copy to subsequently identify, load the catch-up data (step 516), and then perform a new validation (520). In some embodiments, this iterative process may be replicated multiple times until the validation process is successful. If the DM system 320 determines that there are no data inconsistencies (step 520: no), the DM system 320 may proceed to step 522.

在步驟522中,DM系統320可確定轉移過程已完成資料追趕,及/或轉移已引起資料庫的完全複寫。在一些實施例中,如結合圖9進一步論述,加載資料差量的追趕操作的頂點可隨後繼續將線上訊務從原始資料庫替換至轉移或目標資料庫。例如,在一些實施例中,最初路由至線上DB 404的訊務可傳送至DB分群系統420。此外,DM系統320可執行額外操作,如對用戶端設備350生成通知及/或基於資料轉移更新API處理。In step 522, the DM system 320 may determine that the migration process has completed data catch-up and/or that the migration has resulted in a complete copy of the database. In some embodiments, as further discussed in conjunction with FIG. 9, the apex of the catch-up operation that loads the data delta may then proceed to replace online traffic from the original database to the migration or target database. For example, in some embodiments, traffic that was originally routed to the online DB 404 may be sent to the DB clustering system 420. In addition, the DM system 320 may perform additional operations, such as generating notifications to the client device 350 and/or updating API processing based on the data migration.

圖6為符合所揭露實施例的用於轉移的資料一致性驗證的例示性過程600的流程圖。在一些實施例中,系統300的元件可執行過程600。例如,如以下步驟描述中所揭露,DM系統320可執行過程600。在此等實施例中,控制器323,且更具體而言驗證工具416可配置為在過程600中執行操作。替代地或另外,線上資源340及/或第三方系統360可執行過程600或過程600的部分。此外,在其他實施例中,系統100或系統100的部分可執行過程600。例如,內部前端系統105、SCM系統117及/或SAT 101可執行過程600。此外,在其他實施例中,系統400可實施過程600。例如,轉移工具402、控制器323及/或DB分群系統420可在過程600中執行操作。在一些實施例中,過程600可為過程500的部分。例如,過程600可作為過程500(圖5)中的步驟516的部分而執行。在其他實施例中,過程600可獨立於過程500。FIG. 6 is a flow chart of an exemplary process 600 for data consistency verification for migration consistent with the disclosed embodiments. In some embodiments, elements of the system 300 may perform the process 600. For example, as disclosed in the following step description, the DM system 320 may perform the process 600. In such embodiments, the controller 323, and more specifically the verification tool 416 may be configured to perform operations in the process 600. Alternatively or in addition, the online resources 340 and/or the third party system 360 may perform the process 600 or a portion of the process 600. Furthermore, in other embodiments, the system 100 or a portion of the system 100 may perform the process 600. For example, the internal front-end system 105, the SCM system 117 and/or the SAT 101 may perform the process 600. Additionally, in other embodiments, system 400 may implement process 600. For example, transfer tool 402, controller 323, and/or DB clustering system 420 may perform operations in process 600. In some embodiments, process 600 may be part of process 500. For example, process 600 may be performed as part of step 516 in process 500 ( FIG. 5 ). In other embodiments, process 600 may be independent of process 500.

以下過程600的描述示出DM系統320中的實施例執行過程600的步驟。然而,如先前所論述,系統300的其他元件亦可為可配置的以執行過程600中的步驟中的一或多者。例如,線上資源340可執行過程600的一或多個步驟。在此等實施例中,線上資源340可傳達和執行如由控制器323規定的操作。The following description of process 600 shows an embodiment in DM system 320 performing the steps of process 600. However, as previously discussed, other elements of system 300 may also be configurable to perform one or more of the steps in process 600. For example, online resource 340 may perform one or more steps of process 600. In such embodiments, online resource 340 may communicate and perform operations as specified by controller 323.

在步驟602中,DM系統320可起始驗證過程。例如,作為過程500的部分,DM系統320可在資料的導入、複製及/或資料驗證期間起始資料驗證。在一些實施例中,如圖6中所繪示,驗證可基於列比較驗證。然而,在其他實施例中,驗證可基於表層級及/或列驗證。在此等實施例中,DM系統320可執行類似於表列計數;列計數群組;行聚集;隨機篩選;以及篩選限制的操作。此外,在步驟602中,DM系統可為可配置的以執行行或SQL層級驗證。例如,驗證工具可執行驗證方案/行資料類型、執行散列比較及/或運行關於不同資料源的自訂查詢的操作。此外,在某些實施例中-且為了改良在轉移期間的資源分配-DM系統320可對線上資料庫中的選定數目個列執行列驗證。可基於由使用者識別的資料範圍(例如,經由轉移工具402)選擇此等列。在此類實施例中,DM系統320可通過比較第一複製資料庫及轉移資料庫的每一列中的行值的散列來執行複製資料庫與轉移資料庫的列比較。In step 602, the DM system 320 may initiate a validation process. For example, as part of process 500, the DM system 320 may initiate data validation during import, copy, and/or data validation of data. In some embodiments, as illustrated in FIG. 6, validation may be based on column comparison validation. However, in other embodiments, validation may be based on table level and/or column validation. In such embodiments, the DM system 320 may perform operations similar to table column counts; column count grouping; row aggregation; random filtering; and filter restrictions. Additionally, in step 602, the DM system may be configurable to perform row or SQL level validation. For example, the validation tool may perform operations such as validation schemes/row data types, perform hash comparisons, and/or run custom queries on different data sources. In addition, in some embodiments - and to improve resource allocation during migration - the DM system 320 may perform row column validation on a selected number of columns in the online database. Such columns may be selected based on data ranges identified by a user (e.g., via the migration tool 402). In such embodiments, the DM system 320 may perform a column comparison of the replica database and the migration database by comparing the hash of the row value in each column of the first replica database and the migration database.

在步驟610中,DM系統320可確定是否發現資料中的任何不一致。例如,DM系統320可確定兩個資料庫之間的所有列是否通過驗證測試(例如,使用散列函數)。如果DM系統320確定由於驗證的結果而存在不一致(步驟610:是),則DM系統320可繼續進行至步驟612。In step 610, DM system 320 may determine whether any inconsistencies in the data are found. For example, DM system 320 may determine whether all columns between the two databases pass a validation test (e.g., using a hash function). If DM system 320 determines that an inconsistency exists as a result of the validation (step 610: yes), DM system 320 may proceed to step 612.

在步驟612中,DM系統320可識別不一致的範圍。例如,DM系統320可識別具有不一致資料集的列範圍。在步驟614中,DM系統320可嘗試通過針對特定資料範圍運行追趕加載而解決不一致。例如,如結合圖5所論述,DM系統320可產生隨後用於加載差量資料的複製資料庫。在步驟614中,DM系統可運行此等過程(例如,步驟512和步驟514),但限於在步驟612中識別的特定範圍以解決不一致。如圖6中所繪示,在針對具有不一致資料的範圍重新運行追趕加載之後,DM系統320可返回至步驟602且重新運行驗證。In step 612, the DM system 320 may identify a range of inconsistencies. For example, the DM system 320 may identify a range of columns that have inconsistent sets of data. In step 614, the DM system 320 may attempt to resolve the inconsistency by running a catch-up load for the specific range of data. For example, as discussed in conjunction with FIG. 5, the DM system 320 may generate a replica database that is subsequently used to load the delta data. In step 614, the DM system may run these processes (e.g., steps 512 and 514), but limited to the specific range identified in step 612 to resolve the inconsistency. As shown in FIG. 6, after re-running the catch-up load for the range with inconsistent data, the DM system 320 may return to step 602 and re-run the validation.

然而,如果在步驟610中,DM系統320確定不存在不一致(步驟610:否),則DM系統320可繼續進行至步驟622且關閉雙寫入操作。如所論述,結合圖5,DM系統320可使用雙寫入操作以例如將增量資料寫入目標資料庫中,例如DB分群系統420。當驗證完成且未發現不一致時,DM系統320可停止雙寫入操作。However, if in step 610, the DM system 320 determines that there is no inconsistency (step 610: No), the DM system 320 may proceed to step 622 and close the dual write operation. As discussed, in conjunction with FIG. 5, the DM system 320 may use the dual write operation to, for example, write incremental data to a target database, such as the DB clustering system 420. When the verification is complete and no inconsistency is found, the DM system 320 may stop the dual write operation.

在步驟624中,DM系統320可針對預定時間窗重新運行追趕驗證以驗證在雙寫入截止之後在線上資料庫中未修改額外資料。因為線上資料庫可能已發生變化,即使在較小時間窗期間,故DM系統320亦可在時間窗期間重新運行追趕驗證以識別可能已來自最後成功驗證且可能尚未經由雙寫入操作捕獲的任何資料改變。如果識別出任何遺漏資料,則DM系統320可加載追趕資料。In step 624, the DM system 320 may rerun the catch-up verification for a predetermined time window to verify that no additional data has been modified in the online database after the double write cutoff. Because the online database may have changed, even during a smaller time window, the DM system 320 may rerun the catch-up verification during the time window to identify any data changes that may have occurred since the last successful verification and may not have been captured by the double write operation. If any missing data is identified, the DM system 320 may load the catch-up data.

在步驟626中,DM系統320可將訊務切換至目標資料庫。例如,DM系統320可將訊務從線上DB 404切換至DB分群系統420。例如,DM系統320可調整資料庫位址、伺服器及/或API處理器,以將資料請求從/至原始資料庫路由至轉移資料庫。In step 626, the DM system 320 may switch the traffic to the target database. For example, the DM system 320 may switch the traffic from the online DB 404 to the DB clustering system 420. For example, the DM system 320 may adjust the database address, server, and/or API handler to route the data request from/to the original database to the migration database.

在步驟628中,DM系統320可釋放複製資料庫的空間。例如,如結合圖5所論述,DM系統320可在區域資料庫325中產生複製資料庫,例如複製DB 406,所述資料庫用於在轉移過程期間驗證、導出和操縱資料。DM系統320亦可將區域資料庫325用於複製追趕操作,其使目標資料庫與刷新資料同步。在步驟628中,DM系統320可通過例如釋放區域資料庫325中的空間而釋放此等複製資料庫中的空間。In step 628, DM system 320 may free up space in the replica database. For example, as discussed in conjunction with FIG. 5, DM system 320 may create a replica database, such as replica DB 406, in a regional database 325 that is used to verify, export, and manipulate data during the migration process. DM system 320 may also use regional database 325 for a replication catch-up operation, which synchronizes a target database with refresh data. In step 628, DM system 320 may free up space in such replica databases by, for example, freeing up space in regional database 325.

圖7為符合所揭露實施例的用於實時資料庫的轉移的例示性過程的流程圖。在一些實施例中,系統300的元件可執行過程700。例如,如以下步驟描述中所揭露,DM系統320可執行過程700。在此等實施例中,控制器323可配置為在過程700中執行操作。替代地或另外,線上資源340及/或資料庫380可執行過程700或過程700的部分。此外,在其他實施例中,系統100或系統100的部分可執行過程700。例如,內部前端系統105、SCM系統117及/或SAT 101可執行過程700。此外,在其他實施例中,系統400可實施過程700。例如,轉移工具402、控制器323及/或DB分群系統420可在過程700中執行操作。FIG. 7 is a flow chart of an exemplary process for migration of a real-time database consistent with the disclosed embodiments. In some embodiments, components of system 300 may perform process 700. For example, as disclosed in the following step description, DM system 320 may perform process 700. In such embodiments, controller 323 may be configured to perform operations in process 700. Alternatively or additionally, online resources 340 and/or database 380 may perform process 700 or portions of process 700. Furthermore, in other embodiments, system 100 or portions of system 100 may perform process 700. For example, internal front-end system 105, SCM system 117, and/or SAT 101 may perform process 700. Furthermore, in other embodiments, system 400 may perform process 700. For example, the migration tool 402 , the controller 323 , and/or the DB clustering system 420 may perform operations in the process 700 .

以下過程700的描述示出DM系統320中的實施例執行過程700的步驟。然而,如先前所論述,系統300的其他元件亦可為可配置的以執行過程700中的步驟中的一或多者。例如,線上資源340可執行過程700的一或多個步驟。在此等實施例中,線上資源340可傳達和執行如由控制器323規定的操作。The following description of process 700 shows an embodiment in DM system 320 performing the steps of process 700. However, as previously discussed, other elements of system 300 may also be configurable to perform one or more of the steps in process 700. For example, online resource 340 may perform one or more steps of process 700. In such embodiments, online resource 340 may communicate and perform operations as specified by controller 323.

在步驟702中,DM系統320可應用資料庫方案且打開雙寫入以將傳入的資料修改複寫至DB分群系統。例如,DM系統320可將來自線上DB 404的資料庫方案應用於DB分群系統420。進一步在步驟704中,DM系統320可打開雙寫入以經由雙寫入操作測試資料的複寫。在一些實施例中,如圖7中所繪示,步驟702和步驟704可在生成導出檔案之前執行。在此等實施例中,DM系統320可將資料庫方案應用於轉移資料庫;執行雙寫入操作的測試;以及在生成導出檔案及/或複製實時資料庫之前暫停雙寫入操作。In step 702, the DM system 320 may apply a database schema and turn on dual write to replicate incoming data modifications to the DB clustering system. For example, the DM system 320 may apply a database schema from the online DB 404 to the DB clustering system 420. Further in step 704, the DM system 320 may turn on dual write to test replication of data via dual write operations. In some embodiments, as shown in FIG. 7, steps 702 and 704 may be performed before generating an export file. In such embodiments, the DM system 320 may apply a database schema to migrate a database; perform a test of a dual write operation; and suspend a dual write operation before generating an export file and/or replicating a live database.

在步驟706中,DM系統320可從線上資料庫產生第一複製資料庫。例如,經由控制器323 DM系統320可向複製DB 406產生線上DB 404的複製,如圖4中所論述。In step 706, DM system 320 may generate a first replica database from the online database. For example, DM system 320 may generate a replica of online DB 404 to replica DB 406 via controller 323, as discussed in FIG. 4 .

在步驟708中,DM系統320可將來自複製DB 406的資料導出至傳送檔案。例如,經由控制器323及/或資料導出工具412,DM系統320可將來自複製DB 406的資料導出至傳送檔案中。傳送檔案可包括SQL檔案。然而,在其他實施例中,傳送檔案可包括CSV檔案或其他類型的格式。In step 708, the DM system 320 may export the data from the replica DB 406 to a transfer file. For example, via the controller 323 and/or the data export tool 412, the DM system 320 may export the data from the replica DB 406 to a transfer file. The transfer file may include an SQL file. However, in other embodiments, the transfer file may include a CSV file or other types of formats.

在步驟710中,DM系統320可將傳送檔案導入至具有分群系統的目標資料庫。例如,經由控制器323及/或資料加載器工具414,DM系統320可將傳送檔案導入至DB分群系統420。In step 710, the DM system 320 may import the transfer file into a target database having a clustering system. For example, the DM system 320 may import the transfer file into the DB clustering system 420 via the controller 323 and/or the data loader tool 414.

在步驟712中,DM系統320可產生新複製,所述新複製在開始將檔案導入至目標資料庫中之後在較晚點複寫原始資料庫。例如,DM系統320可在具有刷新資料的區域資料庫325中的一者中產生新的資料庫複製。如結合圖5進一步論述,DM系統320可執行追趕操作以識別且隨後加載在初始複製期間未捕獲的資料。經由線上資料庫的依序複製和並行或反覆驗證,DM系統320可在無資料損失且無停工時間的情況下完成轉移。In step 712, the DM system 320 may create a new replica that replicates the original database at a later time after beginning to import files into the target database. For example, the DM system 320 may create a new database replica in one of the regional databases 325 with refreshed data. As further discussed in conjunction with FIG. 5, the DM system 320 may perform a catch-up operation to identify and subsequently load data that was not captured during the initial replication. Through sequential replication and concurrent or iterative verification of online databases, the DM system 320 may complete the migration with no data loss and no downtime.

在步驟714中,DM系統320可運行追趕程式以完成新資料的傳送。例如,DM系統320可執行用於識別從最後傳送以來未捕獲的資訊的差量且將其加載於目標資料庫中的操作。追趕程式亦可包括由追趕工具418(圖4)執行的操作。此外,追趕程式亦可包括資料的並行及/或依序驗證,如步驟514-步驟520(圖5)中所論述。In step 714, DM system 320 may run a catch-up routine to complete the transfer of new data. For example, DM system 320 may perform operations for identifying deltas of information that have not been captured since the last transfer and loading them into the target database. The catch-up routine may also include operations performed by catch-up tool 418 (FIG. 4). In addition, the catch-up routine may also include concurrent and/or sequential validation of data, as discussed in steps 514-520 (FIG. 5).

在步驟716中,DM系統320可執行源資料庫與目標資料庫之間的最終同步。例如,DM系統320可選擇時間窗以執行訊務分析和資料庫之間的範圍驗證,且將任何不一致資料從源資料庫導至目標資料庫。In step 716, the DM system 320 may perform a final synchronization between the source database and the target database. For example, the DM system 320 may select a time window to perform traffic analysis and range verification between the databases, and export any inconsistent data from the source database to the target database.

在步驟718中,DM系統可將訊務從源實時資料庫傳送至轉移或目標資料庫。例如,DM系統320可將訊務從線上DB 404切換至DB分群系統420。在一些實施例中,DM系統320可調整資料庫位址、伺服器及/或API處理器以將資料請求從/至原始資料庫路由至轉移資料庫,或指示其他設備同樣操作。In step 718, the DM system may transfer traffic from the source real-time database to the migration or target database. For example, the DM system 320 may switch traffic from the online DB 404 to the DB clustering system 420. In some embodiments, the DM system 320 may adjust database addresses, servers, and/or API handlers to route data requests from/to the original database to the migration database, or instruct other devices to do the same.

圖8為符合所揭露實施例的用於資料庫轉移驗證的例示性過程的流程圖。在一些實施例中,系統300的元件可執行過程800。例如,如以下步驟描述中所揭露,DM系統320可執行過程800。在此等實施例中,控制器323可配置為在過程800中執行操作。替代地或另外,線上資源340、用戶端設備350及/或資料庫380可執行過程800或過程800的部分。此外,在其他實施例中,系統100或系統100的部分可執行過程800。例如,內部前端系統105、SCM系統117及/或SAT 101可執行過程800。此外,在其他實施例中,系統400可實施過程800。例如,轉移工具402、控制器323及/或DB分群系統420可在過程800中執行操作。FIG. 8 is a flow chart of an exemplary process for database migration verification consistent with the disclosed embodiments. In some embodiments, elements of system 300 may perform process 800. For example, as disclosed in the following step description, DM system 320 may perform process 800. In such embodiments, controller 323 may be configured to perform operations in process 800. Alternatively or in addition, online resources 340, client devices 350 and/or database 380 may perform process 800 or portions of process 800. Furthermore, in other embodiments, system 100 or portions of system 100 may perform process 800. For example, internal front-end system 105, SCM system 117 and/or SAT 101 may perform process 800. Furthermore, in other embodiments, system 400 may perform process 800. For example, the transfer tool 402 , the controller 323 , and/or the DB clustering system 420 may perform operations in the process 800 .

以下過程800的描述示出DM系統320中的實施例執行過程800的步驟。然而,如先前所論述,系統300的其他元件亦可為可配置的以執行過程800中的步驟中的一或多者。例如,線上資源340可執行過程800的一或多個步驟。在此等實施例中,線上資源340可傳達和執行如由控制器323規定的操作。The following description of process 800 shows an embodiment in DM system 320 performing the steps of process 800. However, as previously discussed, other elements of system 300 may also be configurable to perform one or more of the steps in process 800. For example, online resource 340 may perform one or more steps of process 800. In such embodiments, online resource 340 may communicate and perform operations as specified by controller 323.

在一些實施例中,為執行過程800,DM系統320可執行一系列操作以首先使用查詢、分片確定以及列比較的依序操作來執行查詢。例如,DM系統320可使用例如以下指令執行查詢: SELECT PK, SHARD_KEYS, crc32(CONCAT_WS(<ALL_COLUMNS>)) as crc FROM <TABLE> WHERE (`PK` >= 1 AND `PK` < 1001) ORDER BY `PK` In some embodiments, to execute process 800, DM system 320 may perform a series of operations to first execute the query using sequential operations of query, shard determination, and column comparison. For example, DM system 320 may execute the query using, for example, the following instructions: SELECT PK, SHARD_KEYS, crc32(CONCAT_WS(<ALL_COLUMNS>)) as crc FROM <TABLE> WHERE (`PK` >= 1 AND `PK` < 1001) ORDER BY `PK`

在步驟802中,DM系統320可起始驗證操作。例如,作為程序700的部分,DM系統320可在導出/導入操作(例如,在步驟710中)之後(或期間)驗證資料及/或識別用於追趕操作(例如,在步驟714中)的遺漏資料。在此等情境下,DM系統320可通過例如由驗證工具416進行的嚙合或觸發操作來起始資料驗證。In step 802, the DM system 320 may initiate a validation operation. For example, as part of process 700, the DM system 320 may validate data after (or during) an export/import operation (e.g., in step 710) and/or identify missing data for a catch-up operation (e.g., in step 714). In such scenarios, the DM system 320 may initiate data validation through, for example, a merge or trigger operation performed by the validation tool 416.

如圖8中所繪示,可在源資料庫和目標資料庫中用並行操作執行驗證過程。例如,驗證工具416可配置為在資料轉移之後在源資料庫和目標資料庫兩者中操作且執行並行操作以確定資料不一致。在此等實施例中,可對源資料庫中的資料執行步驟804-步驟808。例如,控制器323可對線上DB 404執行步驟804-步驟806。相比之下,可對轉移或目標資料庫中的資料執行步驟810-步驟812。例如,控制器323可對DB分群系統420執行步驟810-步驟814。As shown in FIG8 , the verification process may be performed in parallel operations in the source database and the target database. For example, the verification tool 416 may be configured to operate in both the source database and the target database after the data is transferred and perform parallel operations to determine data inconsistencies. In such embodiments, steps 804-808 may be performed on the data in the source database. For example, the controller 323 may perform steps 804-806 on the online DB 404. In contrast, steps 810-812 may be performed on the data in the transfer or target database. For example, the controller 323 may perform steps 810-814 on the DB clustering system 420.

在步驟804中,DM系統320可讀取資料庫中的表。在一些實施例中,如上文所論述,為最小化停工時間,DM系統320可對複製資料庫執行驗證操作。以此方式,DM系統320可避免妨礙操作,特別是針對支援線上應用程式的資料庫。因此,在步驟804中,DM系統320可讀取複製資料庫中的表。例如,DM系統320可配置控制器323以讀取複製DB 406中的表。In step 804, the DM system 320 may read the table in the database. In some embodiments, as discussed above, to minimize downtime, the DM system 320 may perform a validation operation on the replica database. In this way, the DM system 320 may avoid hampering operations, particularly for databases supporting online applications. Therefore, in step 804, the DM system 320 may read the table in the replica database. For example, the DM system 320 may configure the controller 323 to read the table in the replica DB 406.

在步驟806中,DM系統320可計算資料庫中的每一列的分片鍵以確定分片。分片鍵可包括由複合索引覆蓋的單一索引欄位及/或多個欄位,所述複合索引確定集合文件在群集分片當中的分佈。DM系統320可經由具有值來計算分片鍵且將此作為分區。在計算分片鍵時,DM系統320可計算每一列的源配置的散列值及/或預配置標籤。在一些實施例中,計算的分片鍵可為應用程式和度量名稱,其界定待用於彼應用程式的分片的群組。另外或替代地,DM系統320可從資料庫物件中的每一列計算散列,且將其與表示分片的分片識別符進行比較。在此等實施例中,DM系統320可產生分片上的索引資料的日誌。DM系統320可將不同方法用於計算分片鍵,包括但不限於DJB2(32位元)、SDBM(32位元)、LoseLose(32位元)、FNV-1/FNV-1a(32位元)、CRC16(16位元)及/或Murmur2/Murmur3(32位元)。In step 806, the DM system 320 may calculate a shard key for each column in the database to determine the shards. The shard key may include a single index field and/or multiple fields covered by a composite index that determines the distribution of the collection files among the cluster shards. The DM system 320 may calculate the shard key by having a value and using this as a partition. When calculating the shard key, the DM system 320 may calculate a hash value and/or pre-configured label of the source configuration for each column. In some embodiments, the calculated shard key may be an application and metric name that defines a group of shards to be used for that application. Additionally or alternatively, the DM system 320 may calculate a hash from each column in the database object and compare it to a shard identifier representing the shard. In such embodiments, the DM system 320 may generate a log of index data on the shards. The DM system 320 may use different methods to calculate the shard keys, including but not limited to DJB2 (32 bits), SDBM (32 bits), LoseLose (32 bits), FNV-1/FNV-1a (32 bits), CRC16 (16 bits), and/or Murmur2/Murmur3 (32 bits).

與步驟804-步驟806並行,DM系統320可對目標資料庫執行步驟810-步驟812。在一些實施例中,步驟810-步驟812可對應於步驟804-步驟806,但將步驟應用於目標資料庫上。例如,在DM系統320可對複製DB 406執行步驟804-步驟806的驗證時,DM系統320可對DB分群系統420執行步驟810-步驟812的驗證。類似於步驟804,在步驟810中,DM系統320可讀取DB分群系統420中的表。且,如在步驟806中,DM系統320可計算每一列的分片鍵以確定DB分群系統420中的分片。此外,DM系統320可通過使用SHA1演算法來確定分片鍵,從而產生散列值及/或分片鍵。例如,DM系統320可使用聯合編碼類別來將字串轉換成通過使用SHA256類別散列的位元組陣列。In parallel with steps 804-806, DM system 320 may perform steps 810-812 on the target database. In some embodiments, steps 810-812 may correspond to steps 804-806, but the steps are applied to the target database. For example, while DM system 320 may perform the verification of steps 804-806 on replica DB 406, DM system 320 may perform the verification of steps 810-812 on DB clustering system 420. Similar to step 804, in step 810, DM system 320 may read a table in DB clustering system 420. And, as in step 806, the DM system 320 may calculate a shard key for each row to determine the shard in the DB clustering system 420. In addition, the DM system 320 may determine the shard key by using a SHA1 algorithm to generate a hash value and/or shard key. For example, the DM system 320 may use a union encoding class to convert a string into a byte array that is hashed using a SHA256 class.

在步驟814中,DM系統320可比較在步驟804-步驟812中計算的行值及/或分片。例如,DM系統320可使用反覆操作經由值的每一位元組比較分片鍵、分片以及散列值以進行比較。In step 814, the DM system 320 may compare the row values and/or shards calculated in steps 804-812. For example, the DM system 320 may compare the shard key, shard, and hash value using an iterative operation for each bit tuple of the value.

在步驟816中,DM系統320可確定記錄是否相等。例如,在步驟816中,DM系統320可基於分片、分片鍵及/或散列值的比較而確定目標資料庫與源資料庫是否具有相同內容及資料結構。如果DM系統確定記錄不相等(步驟816:否),則DM系統320可繼續進行至步驟818。In step 816, the DM system 320 may determine whether the records are equal. For example, in step 816, the DM system 320 may determine whether the target database has the same content and data structure as the source database based on a comparison of shards, shard keys, and/or hash values. If the DM system determines that the records are not equal (step 816: No), the DM system 320 may proceed to step 818.

在步驟818中,DM系統320可確定在雙寫入操作之後不同記錄(例如,不同列)天氣具有較新修改。因為在執行雙寫入之後不同記錄可能已經修改,故不同記錄可無需校正,因為其將反映最近的改變。因此,在雙寫入操作之後(例如,在執行步驟510之後)具有較新修改的記錄可為最新的,且無需解決或校正差異。因此,如果在步驟818中,DM系統320確定不同記錄具有較新修改時間,則DM系統320可繼續進行至步驟822且忽略具有不同散列的列或記錄或具有不同分片的表。在忽略具有較新修改的記錄之後,DM系統320可繼續進行至步驟816且再次確定所比較記錄是否相等。然而,如果在步驟818中,DM系統320確定不同記錄不具有較新修改時間,則DM系統320可繼續進行至步驟820且指示驗證不成功。如果不同記錄並不具有較新修改,則其意謂雙寫入過程尚未捕獲差異且存在關於資料導出或導入的問題。在此等情境下,驗證工具416可觸發指示不當驗證的信號,且例如指示由DM系統320定址的不一致,如結合圖5所論述(參見例如,步驟520)。In step 818, the DM system 320 may determine that a different record (e.g., a different column) weather has a newer modification after the double write operation. Because the different record may have been modified after the double write was performed, the different record may not need to be corrected because it will reflect the most recent changes. Therefore, the record with the newer modification after the double write operation (e.g., after performing step 510) may be the most recent and no differences need to be resolved or corrected. Therefore, if in step 818, the DM system 320 determines that a different record has a newer modification time, the DM system 320 may continue to step 822 and ignore the column or record with a different hash or the table with a different shard. After ignoring the record with the newer modification, the DM system 320 may proceed to step 816 and again determine whether the compared records are equal. However, if in step 818, the DM system 320 determines that the different record does not have a newer modification time, the DM system 320 may proceed to step 820 and indicate that the verification was unsuccessful. If the different record does not have a newer modification, it means that the double write process has not captured the difference and there is a problem with the data export or import. In such a scenario, the verification tool 416 may trigger a signal indicating an improper verification, and, for example, indicates an inconsistency addressed by the DM system 320, as discussed in conjunction with FIG. 5 (see, for example, step 520).

然而,如果在步驟816中,DM系統320確定記錄相等(步驟816:是),則DM系統320可繼續進行至步驟824。在步驟824中,DM系統824可確定資料傳送成功。在此等實施例中,驗證工具416可觸發指示恰當驗證的信號,且例如指示未發現轉移中的不一致且繼續轉移過程,如圖5中所描述。However, if in step 816, the DM system 320 determines that the records are equal (step 816: yes), the DM system 320 may proceed to step 824. In step 824, the DM system 824 may determine that the data transfer was successful. In these embodiments, the verification tool 416 may trigger a signal indicating proper verification, and for example, indicate that no inconsistencies in the transfer were found and the transfer process continues, as described in FIG. 5.

在一些實施例中,DM系統320可經由首先確定第一複製資料庫中的列是否具有與轉移資料庫中的對應列相同的分片鍵的序列而執行過程800。回應於確定第一複製資料庫中的一或多個列具有與轉移資料庫中的對應列不同的分片鍵,DM系統320可確定轉移資料庫中的列是否具有較晚修改時間。隨後,DM系統320可忽略來自轉移資料庫中的對應列的具有不同分片鍵的第一複製資料庫中的列。且DM系統320可在未忽略列的分片鍵相同時確定資料一致性。經由此序列,DM系統320可執行資料驗證過程。In some embodiments, the DM system 320 may perform the process 800 via a sequence of first determining whether a column in the first replica database has the same shard key as a corresponding column in the transfer database. In response to determining that one or more columns in the first replica database have a different shard key than a corresponding column in the transfer database, the DM system 320 may determine whether the column in the transfer database has a later modification time. Subsequently, the DM system 320 may ignore the columns in the first replica database that have a different shard key from the corresponding column in the transfer database. And the DM system 320 may determine data consistency when the shard keys of the non-ignored columns are the same. Via this sequence, the DM system 320 may perform a data validation process.

圖9為符合所揭露實施例的用於線上資料庫轉移的例示性過程的流程圖。在一些實施例中,系統300的元件可執行過程900。例如,如以下步驟描述中所揭露,DM系統320可執行過程900。在此等實施例中,控制器323可配置為在過程900執行操作。替代地或另外,線上資源340及/或資料庫380可執行過程900或過程900的部分。此外,在其他實施例中,系統100或系統100的部分可執行過程900。例如,內部前端系統105、SCM系統117及/或SAT 101可執行過程900。此外,在其他實施例中,系統400可實施過程900。例如,轉移工具402、控制器323及/或DB分群系統420可在過程900中執行操作。FIG. 9 is a flow chart of an exemplary process for online database migration consistent with the disclosed embodiments. In some embodiments, components of system 300 may perform process 900. For example, as disclosed in the following step description, DM system 320 may perform process 900. In such embodiments, controller 323 may be configured to perform operations in process 900. Alternatively or in addition, online resources 340 and/or database 380 may perform process 900 or portions of process 900. Furthermore, in other embodiments, system 100 or portions of system 100 may perform process 900. For example, internal front-end system 105, SCM system 117, and/or SAT 101 may perform process 900. Furthermore, in other embodiments, system 400 may perform process 900. For example, the transfer tool 402, the controller 323 and/or the DB clustering system 420 may perform operations in the process 900.

以下過程900的描述示出DM系統320中的實施例執行過程900的步驟。然而,如先前所論述,系統300的其他元件亦可為可配置的以執行過程900中的步驟中的一或多者。例如,線上資源340可執行過程900的一或多個步驟。在此等實施例中,線上資源340可傳達和執行如由控制器323規定的操作。The following description of process 900 shows an embodiment in DM system 320 performing the steps of process 900. However, as previously discussed, other elements of system 300 may also be configurable to perform one or more of the steps in process 900. For example, online resource 340 may perform one or more steps of process 900. In such embodiments, online resource 340 may communicate and perform operations as specified by controller 323.

在步驟902中,DM系統320可複製實時資料庫。例如,經由控制器323,DM系統320可從線上DB 404導出檔案以產生複製DB 406。在一些實施例中,線上DB 404(其為複製的)可處置線上訊務。在某些實施例中,步驟904的複製可促進資料轉移且幾乎沒有停工時間。In step 902, DM system 320 may replicate the real-time database. For example, via controller 323, DM system 320 may export files from online DB 404 to generate replicated DB 406. In some embodiments, online DB 404 (which is replicated) may handle online traffic. In some embodiments, the replication of step 904 may facilitate data migration with little downtime.

在步驟904中,DM系統320可從一或多個複製資料庫生成導出檔案且將其導入至轉移資料庫。例如,經由控制器323,DM系統320可從複製DB 406生成導出檔案且隨後將其加載至DB分群系統420中。在一些實施例中,DM系統320可使用資料導出工具412從複製DB 406生成導出檔案。DM系統320亦可採用資料加載器工具414以用於將導出檔案導入或加載至DB分群系統420。如結合圖4至圖5進一步所解釋,導出檔案可包括SQL檔案、CSV檔案及/或不同類型的導出檔案。此外,如結合圖4所論述,資料加載器工具414可並行地執行加載操作,同時生成多個群集。In step 904, the DM system 320 may generate an export file from one or more replica databases and import it into the migration database. For example, via the controller 323, the DM system 320 may generate an export file from the replica DB 406 and then load it into the DB clustering system 420. In some embodiments, the DM system 320 may use a data export tool 412 to generate an export file from the replica DB 406. The DM system 320 may also use a data loader tool 414 to import or load the export file into the DB clustering system 420. As further explained in conjunction with Figures 4 to 5, the export file may include an SQL file, a CSV file, and/or different types of export files. In addition, as discussed in conjunction with Figure 4, the data loader tool 414 may perform loading operations in parallel to generate multiple clusters at the same time.

在步驟906中,DM系統320可執行第一複製資料庫與轉移資料庫的列比較。如圖9中所繪示,步驟906可在步驟904之後執行。亦即,可在將導出檔案導入至目標資料庫中之後執行步驟906。然而,在其他實施例中,步驟906及步驟904可並行執行。例如,如結合圖4所論述,資料驗證過程可在資料被加載至DB分群系統420中時發生。In step 906, the DM system 320 may perform a column comparison of the first copy database and the migration database. As shown in FIG. 9, step 906 may be performed after step 904. That is, step 906 may be performed after the export file is imported into the target database. However, in other embodiments, step 906 and step 904 may be performed in parallel. For example, as discussed in conjunction with FIG. 4, the data validation process may occur when the data is loaded into the DB clustering system 420.

在步驟906中,DM系統320可通過計算複製資料庫和轉移資料庫中的選定數目個列的分片鍵來執行資料驗證。例如,如結合圖8進一步論述,DM系統320可通過讀取複製DB 406和DB分群系統420兩者中的表,計算分片鍵、散列值及/或確定分片而執行資料驗證,以隨後比較記錄且做出其是否相等的確定。In step 906, the DM system 320 may perform data validation by calculating shard keys for a selected number of columns in the replica database and the transfer database. For example, as further discussed in conjunction with FIG. 8 , the DM system 320 may perform data validation by reading tables in both the replica DB 406 and the DB clustering system 420, calculating shard keys, hash values, and/or determining shards to subsequently compare records and make a determination of whether they are equal.

在步驟908中,DM系統320可起始雙寫入操作,將線上資料庫的寫入複寫在轉移資料庫上以捕獲增量資料。如結合圖5所論述,雙寫入操作可允許捕獲增量資料。在一些實施例中,可在初始化期間之前已使用步驟908的雙寫入操作。例如,如針對過程700(圖7)所論述,DM系統320可在過程開始時應用資料庫方案,且隨後將資料庫方案關閉。初始雙寫入操作可用於測試和品質控制。例如,DM系統320可執行雙寫入操作,且隨後執行資料驗證以確認雙操作正工作且複寫線上DB 404和DB分群系統420中的增量資料。如結合圖5和圖11所論述,雙寫入操作可將實時資料庫(如線上DB 404)中的資料修改複寫至目標資料庫或轉移資料庫(如DB分群系統420)。In step 908, the DM system 320 may initiate a dual write operation to replicate the writes to the online database on the transfer database to capture incremental data. As discussed in conjunction with FIG. 5, the dual write operation may allow incremental data to be captured. In some embodiments, the dual write operation of step 908 may have been used prior to the initialization period. For example, as discussed with respect to process 700 (FIG. 7), the DM system 320 may apply a database scheme at the beginning of the process and then shut down the database scheme. The initial dual write operation may be used for testing and quality control. For example, the DM system 320 may perform a dual write operation and then perform data verification to confirm that the dual operation is working and replicating incremental data in the online DB 404 and the DB clustering system 420. As discussed in conjunction with FIG. 5 and FIG. 11 , the dual write operation can replicate data modifications in a real-time database (eg, online DB 404 ) to a target database or a migration database (eg, DB clustering system 420 ).

在步驟910中,DM系統320可將線上資料庫複製至第二複製資料庫。例如,如結合圖5所論述, DM系統320可生成具有刷新資料的新複製,所述刷新資料可使得能夠識別追趕或差量資料。在一些實施例中,DM系統320可使用與步驟902中生成第一複製相同的用於在步驟910中生成第二複製的工具和程序。In step 910, DM system 320 may replicate the online database to a second replica database. For example, as discussed in conjunction with FIG. 5, DM system 320 may create a new replica with refreshed data that may enable identification of catch-up or delta data. In some embodiments, DM system 320 may use the same tools and procedures for creating the second replica in step 910 as for creating the first replica in step 902.

在步驟912中,DM系統320可通過比較步驟910的複製資料庫與在起始雙寫入操作之後寫入的增量資料來識別追趕資料。如結合圖5所論述,DM系統320可執行用於識別尚未加載在轉移或目標資料庫中的差量資料集的操作。例如,DM系統320可識別追趕資料(其為一些實施例可基於從雙寫入時間起的修改時間而識別)。In step 912, the DM system 320 may identify the catch-up data by comparing the replica database of step 910 with the incremental data written after the initial double write operation. As discussed in conjunction with FIG5, the DM system 320 may perform operations for identifying sets of delta data that have not yet been loaded into the migration or target database. For example, the DM system 320 may identify the catch-up data (which some embodiments may identify based on modification time since the double write time).

在步驟914中,DM系統320可更新轉移資料庫以包括追趕資料。例如,經由控制器323,DM系統可將在步驟912中識別的資料加載至DB分群系統420中。此外,如結合圖5所論述,DM系統320可執行反覆資料驗證直至在複製資料庫與目標或轉移資料庫之間未發現不一致為止。在一些實施例中,步驟914中的更新追趕操作可通過以下操作來執行:選擇包括追趕資料的至少一部分的新複製資料庫中的列群組;生成包括列群組的暫時檔案;以及通過在符合第二複製資料庫中的列群組的位置中插入暫時檔案而使轉移資料庫與第二複製資料庫同步。以此方式,DM系統320可將線上資料庫(如線上DB 404)中識別的差量或追趕資料有效地複寫至目標資料庫中。In step 914, the DM system 320 may update the migration database to include the catch-up data. For example, via the controller 323, the DM system may load the data identified in step 912 into the DB clustering system 420. In addition, as discussed in conjunction with FIG. 5, the DM system 320 may perform iterative data validation until no inconsistencies are found between the replica database and the target or migration database. In some embodiments, the update catch-up operation in step 914 may be performed by: selecting a row group in the new replica database that includes at least a portion of the catch-up data; generating a temporary file that includes the row group; and synchronizing the migration database with the second replica database by inserting the temporary file in a location that corresponds to the row group in the second replica database. In this manner, DM system 320 can effectively copy delta or catch-up data identified in an online database (such as online DB 404) to a target database.

在步驟916中,DM系統320可確定轉移資料在整個資料庫中是否一致。例如,DM系統320可採用結合圖8所論述的驗證相同的操作以確定線上DB 404和DB分群系統420中的資料是否一致。如果DM系統320確定轉移資料不一致(步驟916:否),則DM系統320可返回至步驟910且將實時資料庫複製至新複製資料庫。例如,在一些實施例中,在更新轉移資料庫以包括追趕資料之後,DM系統320可執行第二複製資料庫與轉移資料庫之間的第二列比較以確定資料是否一致。且回應於確定資料不一致,DM系統可識別不一致列,生成包括不一致列的暫時檔案,且通過在對應於不一致列的位置中插入暫時檔案來更新轉移資料庫。然而,如果DM系統320確定轉移資料一致(步驟916:是),則DM系統320可繼續進行至步驟918。In step 916, the DM system 320 may determine whether the migrated data is consistent across the database. For example, the DM system 320 may employ the verify identical operation discussed in conjunction with FIG. 8 to determine whether the data in the online DB 404 and the DB clustering system 420 is consistent. If the DM system 320 determines that the migrated data is inconsistent (step 916: No), the DM system 320 may return to step 910 and copy the live database to the new replica database. For example, in some embodiments, after updating the migrated database to include the catch-up data, the DM system 320 may perform a second column comparison between the second replica database and the migrated database to determine whether the data is consistent. In response to determining that the data is inconsistent, the DM system may identify the inconsistent rows, generate a temporary file including the inconsistent rows, and update the migration database by inserting the temporary file in a position corresponding to the inconsistent row. However, if the DM system 320 determines that the migration data is consistent (step 916: yes), the DM system 320 may proceed to step 918.

在步驟918中,DM系統320可停止或暫停雙寫入操作。且在步驟920中,DM系統320可切換線上訊務。例如,DM系統320可協調位址、伺服器表及/或API處理器以將資料請求從/至線上DB 404路由至DB分群系統420。因此,在某些實施例中,回應於確定資料為一致的,DM系統320可暫停雙寫入操作且將線上訊務從線上資料庫切換至轉移資料庫。此外,在某些實施例中,在暫停雙寫入操作之後,DM系統320可執行第二複製資料庫與轉移資料庫之間的最終同步。In step 918, the DM system 320 may stop or pause the dual write operation. And in step 920, the DM system 320 may switch the online traffic. For example, the DM system 320 may coordinate addresses, server tables, and/or API handlers to route data requests from/to the online DB 404 to the DB clustering system 420. Therefore, in some embodiments, in response to determining that the data is consistent, the DM system 320 may pause the dual write operation and switch the online traffic from the online database to the migration database. In addition, in some embodiments, after pausing the dual write operation, the DM system 320 may perform a final synchronization between the second replica database and the migration database.

圖10為符合所揭露實施例的使用複製資料庫的資料庫轉移過程的示意性表示1000。示意性表示1000提供資料庫轉移的實例,其繪示轉移過程中的資料庫中的一些將如何反映過程的不同階段處的某些資訊。10 is a schematic representation 1000 of a database migration process using a replicated database consistent with disclosed embodiments. Schematic representation 1000 provides an example of a database migration, illustrating how some of the databases in the migration process will reflect certain information at different stages of the process.

在第一時間1010中,線上DB 404可具有記錄1012。已將此等記錄複寫至DB分群系統420中,DB分群系統420具有記錄1014。時間1010可為在DM系統320已從線上DB 404導出檔案且將檔案導入至DB分群系統420之後的狀態。At a first time 1010, the online DB 404 may have a record 1012. These records have been copied to the DB clustering system 420, which has a record 1014. The time 1010 may be a state after the DM system 320 has exported the file from the online DB 404 and imported the file into the DB clustering system 420.

在第二時間1020中,線上DB 404中的記錄已改變,存在更多,且線上DB 404現在具有記錄1022。DB分群系統中的記錄1024尚未改變。時間1020可為DM系統產生第一複製(參見例如圖9,步驟902)的時間。因此,複製DB 406可具有與線上DB 404在時間1020中相同的記錄。At a second time 1020, the record in the online DB 404 has changed, there are more, and the online DB 404 now has record 1022. The record 1024 in the DB clustering system has not changed. Time 1020 may be the time when the DM system generates the first replication (see, e.g., FIG. 9 , step 902). Therefore, the replication DB 406 may have the same record as the online DB 404 at time 1020.

在第三時間1030中,線上DB 404中的記錄已再次改變,存在額外記錄,且線上DB 404現在儲存記錄1032。對於時間1030,可能已開始雙寫入操作。例如,如結合圖5、圖7以及圖9所論述,可能已起始用以複寫增量資料的雙寫入操作。因此,新記錄亦存在於DB分群系統的記錄1034中。然而,新記錄不可用於複製DB 406的記錄1036中,因為新記錄為複製之後和雙寫入操作之前的修改。At a third time 1030, the record in the online DB 404 has changed again, there is an additional record, and the online DB 404 now stores record 1032. For time 1030, a double write operation may have been started. For example, as discussed in conjunction with FIG. 5, FIG. 7, and FIG. 9, a double write operation may have been initiated to copy the incremental data. Therefore, the new record also exists in the record 1034 of the DB clustering system. However, the new record cannot be used in the record 1036 of the replication DB 406 because the new record is a modification after the replication and before the double write operation.

在第四時間1040中,線上DB 404中的記錄1042不存在改變。然而,DB分群系統420中的記錄1044已經更新以包括在複製操作中捕獲但尚未在起始時捕獲的遺漏記錄。如圖10中所繪示,資料中的一些從起始缺失,但可經由複製DB 406獲得。在時間1040中,如結合圖5、圖7以及圖9進一步論述,可將來自複製DB 406的資料導出至導入DB分群系統中的資料檔案。因此,記錄1044從記錄1046捕獲遺漏資料。At a fourth time 1040, there are no changes to the record 1042 in the online DB 404. However, the record 1044 in the DB clustering system 420 has been updated to include the missing records captured in the replication operation but not captured at the start. As shown in FIG. 10, some of the data is missing from the start, but can be obtained via the replication DB 406. At time 1040, as further discussed in conjunction with FIG. 5, FIG. 7, and FIG. 9, data from the replication DB 406 can be exported to the data file imported into the DB clustering system. Therefore, the record 1044 captures the missing data from the record 1046.

在第五時間1050中,DB分群系統420的1054中的記錄不存在變化,且複製DB 406的記錄1056不存在變化。然而,存在在線上DB 404的記錄1052中變化的變化。此等變化未複寫至DB分群系統420中。此可在已關閉雙寫入操作時(例如,在運行成功驗證之後)發生,但將新資料修改應用於線上DB 404。如結合圖6至圖7所論述,DM系統320可在完成導入和驗證資料傳送之後停止雙寫入操作。然而,在線上DB 404為可具有多個記錄變化(甚至在小時間框內)的實時資料庫時,記錄可能已改變(甚至在小時間段期間)。In the fifth time 1050, there are no changes to the records in 1054 of the DB clustering system 420, and there are no changes to the records 1056 of the replica DB 406. However, there are changes that are changed in the records 1052 of the online DB 404. These changes are not copied to the DB clustering system 420. This can occur when the double write operation has been turned off (for example, after a successful verification of the run), but the new data modifications are applied to the online DB 404. As discussed in conjunction with Figures 6 to 7, the DM system 320 can stop the double write operation after completing the import and verification data transfer. However, when the online DB 404 is a real-time database that can have multiple record changes (even within an hourly time frame), the record may have changed (even during an hourly time period).

在第六時間1060中,線上DB 404中的記錄1062和DB分群系統420中的記錄1064保持相同。然而,複製DB 406中的記錄1066已更新且複寫記錄1062。如結合圖6所論述,DM系統320可在預定時間窗內執行重新運行追趕。因此,在時間1060中,複製DB 406可包括來自線上DB 404的刷新資料。儘管圖10繪示在複製DB 406中的同一記憶體空間中的經更新記錄,在一些實施例中,空間可不同。例如,複製DB 406可指多個資料庫,如區域資料庫325或資料庫380且每一複製可寫於不同空間中。At the sixth time 1060, the record 1062 in the online DB 404 and the record 1064 in the DB clustering system 420 remain the same. However, the record 1066 in the replica DB 406 has been updated and overwrites the record 1062. As discussed in conjunction with FIG. 6, the DM system 320 may perform a rerun catch-up within a predetermined time window. Therefore, at time 1060, the replica DB 406 may include refreshed data from the online DB 404. Although FIG. 10 illustrates updated records in the same memory space in the replica DB 406, in some embodiments, the space may be different. For example, the replica DB 406 may refer to multiple databases, such as the regional database 325 or the database 380 and each replica may be written in a different space.

在第七時間1070中,線上DB 404中的記錄1072和複製DB 406中的記錄1076保持相同。然而,DB分群系統420中的記錄1074已經更新以包括在雙寫入關閉之後的遺漏記錄。類似於時間1050中所使用的過程,複製DB 406中的資料可複寫至DB分群系統420中。In the seventh time 1070, the record 1072 in the online DB 404 and the record 1076 in the replica DB 406 remain the same. However, the record 1074 in the DB clustering system 420 has been updated to include the missing record after the double write is turned off. Similar to the process used in time 1050, the data in the replica DB 406 can be copied to the DB clustering system 420.

圖11為符合所揭露實施例的用於資料庫轉移的例示性序列1100的時序圖。如圖11中所繪示,序列1100可涉及系統400的多個元件,包括線上DB 404、DB分群系統420以及複製DB 406。然而,可在序列1100中涉及系統400的其他元件。例如,雖然未繪示,但控制器323可執行序列1100中的一或多個操作。另外,所揭露系統和元件中的其他者可執行序列1100。例如,在一些實施例中,系統300可執行序列1100。在此類實施例中,DM系統320、資料庫380及/或線上資源340可執行序列1100的一或多個操作。FIG. 11 is a timing diagram of an exemplary sequence 1100 for database migration consistent with the disclosed embodiments. As shown in FIG. 11 , the sequence 1100 may involve multiple elements of the system 400, including the online DB 404, the DB grouping system 420, and the replica DB 406. However, other elements of the system 400 may be involved in the sequence 1100. For example, although not shown, the controller 323 may perform one or more operations in the sequence 1100. In addition, others in the disclosed systems and elements may perform the sequence 1100. For example, in some embodiments, the system 300 may perform the sequence 1100. In such embodiments, the DM system 320, the database 380, and/or the online resource 340 may perform one or more operations of the sequence 1100.

在步驟1102中,線上DB 404可與DB分群系統420通訊以應用方案及/或測試雙寫入操作。在一些實施例中,線上DB 404與DB分群系統420之間的通訊可經由DM系統320中的控制器323發生。例如,如結合圖7所論述,DM系統320可執行用於從線上DB 404取得資料庫方案、應用方案及打開對DB分群系統420的雙寫入的操作。In step 1102, the online DB 404 may communicate with the DB clustering system 420 to apply the solution and/or test the dual write operation. In some embodiments, the communication between the online DB 404 and the DB clustering system 420 may occur via the controller 323 in the DM system 320. For example, as discussed in conjunction with FIG. 7, the DM system 320 may perform operations for obtaining a database solution from the online DB 404, applying the solution, and turning on dual write to the DB clustering system 420.

在步驟1104中,線上DB 404可與複製DB 406通訊以生成複製。在一些實施例中,步驟1104可僅在步驟1102中的雙寫入操作測試成功時執行。此外,在一些實施例中,如結合圖5和圖7所揭露的彼等,DM系統320可協調複製資料庫的生成。In step 1104, online DB 404 may communicate with replica DB 406 to generate a replica. In some embodiments, step 1104 may be performed only when the dual write operation test in step 1102 succeeds. In addition, in some embodiments, as disclosed in conjunction with FIG. 5 and FIG. 7 , DM system 320 may coordinate the generation of a replica database.

在步驟1106中,可導出複製DB 406中的檔案。例如,如結合圖4至圖5所描述,控制器323中的導出工具412可生成導出檔案,其可包括SQL、CSV或其他類型的檔案。在步驟1108中,複製DB 406可與DB分群系統420通訊以加載導出的資料檔案。例如,如結合圖4至圖5所論述,資料加載器工具414可將在步驟1106中導出的資料加載至DB分群系統420。In step 1106, the files in the replica DB 406 may be exported. For example, as described in conjunction with FIGS. 4-5, the export tool 412 in the controller 323 may generate an export file, which may include an SQL, CSV, or other type of file. In step 1108, the replica DB 406 may communicate with the DB clustering system 420 to load the exported data file. For example, as discussed in conjunction with FIGS. 4-5, the data loader tool 414 may load the data exported in step 1106 to the DB clustering system 420.

在步驟1110中,複製DB 406和DB分群系統420可通訊以執行一致性的新驗證,類似於步驟1110和步驟1118的驗證。In step 1110 , the replica DB 406 and the DB clustering system 420 may communicate to perform a new verification of consistency, similar to the verification in steps 1110 and 1118 .

在步驟1112中,線上DB 404和DB分群系統420可通訊以具有雙寫入操作。如結合圖5和圖7所論述,DM系統320可起始從線上DB 404至DB分群系統420的雙寫入操作且捕獲增量資料。In step 1112, the online DB 404 and the DB clustering system 420 may communicate to have a dual write operation. As discussed in conjunction with FIG5 and FIG7, the DM system 320 may initiate a dual write operation from the online DB 404 to the DB clustering system 420 and capture incremental data.

在步驟1114中,線上DB 404和複製DB 406可通訊以生成新複製。在一些實施例中,第二複製DB可與來自步驟1104的第一複製資料庫相同。然而,在其他實施例中,第二複製DB可僅為複製DB 406架構的部分。例如,複製DB 406可利用區域資料庫325實施。在此類實施例中,第二複製資料庫可為區域資料庫325中的不同實例。In step 1114, online DB 404 and replica DB 406 may communicate to create a new replica. In some embodiments, the second replica DB may be the same as the first replica DB from step 1104. However, in other embodiments, the second replica DB may be only part of the architecture of replica DB 406. For example, replica DB 406 may be implemented using regional database 325. In such embodiments, the second replica DB may be a different instance of regional database 325.

在步驟1116中,複製DB 406和DB分群420可通訊以識別和加載追趕資料。例如,如結合圖5和圖9所論述,複製DB 406和DB分群系統420可從最後雙寫入時間識別DB分群系統420的差量資料。可將此資料差量或追趕資料加載至DB分群系統420。In step 1116, the replica DB 406 and the DB clustering system 420 may communicate to identify and load catch-up data. For example, as discussed in conjunction with FIG. 5 and FIG. 9, the replica DB 406 and the DB clustering system 420 may identify the delta data of the DB clustering system 420 from the last double write time. This data delta or catch-up data may be loaded into the DB clustering system 420.

在步驟1118中,複製DB 406和DB分群系統420可通訊以驗證資料一致性。例如,類似於步驟1110,且如結合圖8進一步論述,複製DB 406和DB分群系統420可通訊以確定資料在不同資料庫之間是否一致。In step 1118, the replica DB 406 and the DB clustering system 420 may communicate to verify data consistency. For example, similar to step 1110, and as further discussed in conjunction with FIG. 8, the replica DB 406 and the DB clustering system 420 may communicate to determine whether the data is consistent between the different databases.

在步驟1120中,複製DB 406和DB分群系統420可通訊以插入DB分群系統420中的某些記錄以完成追趕。例如,如結合圖5和圖7進一步論述,DB分群系統420可與通過將尚未導至DB分群系統420的選定記錄插入至表(例如,其中表指示空值)使用的第二複製DB 406中的最近記錄同步。In step 1120, the replica DB 406 and the DB clustering system 420 may communicate to insert certain records in the DB clustering system 420 to complete the catch-up. For example, as further discussed in conjunction with FIG5 and FIG7, the DB clustering system 420 may synchronize with the most recent records in the second replica DB 406 used by inserting selected records that have not yet been directed to the DB clustering system 420 into a table (e.g., where the table indicates a null value).

在步驟1122中,線上DB 404可再次與複製DB 406通訊以提供有限窗複寫。例如,如結合圖6進一步論述,在一些實施例中,在驗證過程和雙寫入操作的截止之後,新的定時驗證可用預定時間窗執行。時間窗可例如基於特定分鐘數。在步驟1124中,複製DB 406和DB分群系統420可通訊以執行一致性的新驗證,類似於步驟1110和步驟1118的驗證。In step 1122, online DB 404 may again communicate with replica DB 406 to provide limited window replication. For example, as further discussed in conjunction with FIG. 6, in some embodiments, after the end of the verification process and the double write operation, a new timed verification may be performed with a predetermined time window. The time window may be based on a specific number of minutes, for example. In step 1124, replica DB 406 and DB clustering system 420 may communicate to perform a new verification of consistency, similar to the verification of steps 1110 and 1118.

在步驟1126中,線上DB 404和DB分群系統420可通訊以切換訊務。如結合圖6和圖7所論述,DM系統320可協調位址、伺服器表及/或API處理器以將資料請求從/至線上DB 404路由至DB分群系統420。在此等實施例中,線上DB 404和DB分群系統420可交換用於訊務交遞的位址及/或其他資訊。In step 1126, the online DB 404 and the DB clustering system 420 may communicate to switch traffic. As discussed in conjunction with FIG. 6 and FIG. 7 , the DM system 320 may coordinate addresses, server tables, and/or API handlers to route data requests from/to the online DB 404 to the DB clustering system 420. In such embodiments, the online DB 404 and the DB clustering system 420 may exchange addresses and/or other information for traffic handoff.

本揭露的另一方面是針對一種儲存指令的非暫時性電腦可讀媒體,所述指令在執行時使得一或多個處理器執行方法,如上文所論述。電腦可讀媒體可包括揮發性或非揮發性、磁性、半導體、磁帶、光學、可移除、非可移除或其他類型的電腦可讀媒體或電腦可讀儲存設備。例如,電腦可讀媒體可為在其上具有儲存的電腦指令的儲存單元或記憶體模組,如所揭露。在一些實施例中,電腦可讀媒體可為在其上具有儲存的電腦指令的磁碟或快閃隨身碟。Another aspect of the disclosure is directed to a non-transitory computer-readable medium storing instructions that, when executed, cause one or more processors to perform a method, as discussed above. The computer-readable medium may include volatile or non-volatile, magnetic, semiconductor, tape, optical, removable, non-removable, or other types of computer-readable media or computer-readable storage devices. For example, the computer-readable medium may be a storage unit or memory module having stored thereon computer instructions, as disclosed. In some embodiments, the computer-readable medium may be a disk or flash drive having stored thereon computer instructions.

對所屬領域中具有通常知識者將顯而易見的是,可對所揭露系統和相關方法作出各種修改和變化。其他實施例對所屬領域中具有通常知識者將從本說明書的考量及所揭露系統和相關方法的實踐顯而易見。意欲僅將本說明書和實例視為例示性的,其中真實範圍由以下申請專利範圍及其等效物指示。It will be apparent to those having ordinary knowledge in the art that various modifications and variations may be made to the disclosed systems and related methods. Other embodiments will be apparent to those having ordinary knowledge in the art from consideration of the specification and practice of the disclosed systems and related methods. It is intended that the specification and examples be considered merely as exemplary, with a true scope being indicated by the following claims and their equivalents.

雖然已經參考本揭露的特定實施例繪示並描述本揭露,但是應該理解,本揭露可在其他環境中實施而無需修改。前面的描述是為了說明的目的而呈現。這不是詳盡的,並不限於所揭露的精確形式或實施例。通過考慮所揭露的實施例的說明書和實踐,修改和調整對於所述領域具有通常知識者將是顯而易見的。另外,儘管所揭露的實施例的方面被描述為儲存在記憶體中,但是所述領域具有通常知識者將理解,這些方面亦可儲存在其他類型的電腦可讀媒體中,例如輔助存放設備(例如,硬碟或CD ROM)、或其它形式的RAM或ROM、USB媒體、DVD、藍光光碟或其它光碟機媒體。Although the disclosure has been illustrated and described with reference to specific embodiments of the disclosure, it should be understood that the disclosure may be implemented in other environments without modification. The foregoing description is presented for the purpose of illustration. This is not exhaustive and is not limited to the precise form or embodiment disclosed. By considering the specification and practice of the disclosed embodiments, modifications and adjustments will be apparent to those with ordinary knowledge in the art. In addition, although aspects of the disclosed embodiments are described as being stored in memory, those with ordinary knowledge in the art will understand that these aspects may also be stored in other types of computer-readable media, such as auxiliary storage devices (e.g., hard disks or CD ROMs), or other forms of RAM or ROM, USB media, DVDs, Blu-ray discs, or other optical disc media.

基於書面描述和揭露方法的電腦程式在經驗豐富的開發者的技能範圍之內。可使用所述領域具有通常知識者已知的任何技術來創建各種程式或程式模組,或者可結合現有軟體設計各種程式或程式模組。例如,程式部分或程式模組可在如下方法中設計或通過如下方法設計:.Net Framework、.Net Compact Framework(以及相關語言,例如Visual Basic,C等)、Java、C++、Objective-C、HTML、HTML/AJAX組合、XML、或者包括Java applet的HTML。Computer programs based on the written description and disclosed methods are within the skill of experienced developers. Various programs or program modules may be created using any technology known to those of ordinary skill in the art, or may be designed in conjunction with existing software. For example, program parts or program modules may be designed in or by the following methods: .Net Framework, .Net Compact Framework (and related languages, such as Visual Basic, C, etc.), Java, C++, Objective-C, HTML, HTML/AJAX combination, XML, or HTML including Java applets.

此外,雖然本文已經描述說明性的實施例,但是具有等同元件、修改、省略、組合(例如,跨越多個實施例的方面)、適配和/或改變的任何和所有實施例的範圍,將由所述領域具有通常知識者基於本發明的技術所理解。申請專利範圍中的限制將基於申請專利範圍中使用的語言而廣泛地解釋,並且不限於本說明書中或在本申請的審查期間描述的實例。這些實例應被解釋為非排他性的。此外,所揭露的方法的步驟可以任何方式進行修改,包括通過重新排序步驟和/或插入或刪除步驟。因此,說明書和實例僅視為說明性的,其真實範圍和精神由所附申請專利範圍及其等同物的全部範圍所指示。Furthermore, although illustrative embodiments have been described herein, the scope of any and all embodiments with equivalent elements, modifications, omissions, combinations (e.g., across aspects of multiple embodiments), adaptations, and/or changes will be understood by one of ordinary skill in the art based on the skill of the present invention. The limitations in the claims are to be interpreted broadly based on the language used in the claims, and are not limited to the examples described in this specification or during the prosecution of this application. These examples should be interpreted as non-exclusive. Furthermore, the steps of the disclosed methods may be modified in any manner, including by reordering steps and/or inserting or deleting steps. Therefore, the description and examples are to be regarded as illustrative only, with the true scope and spirit being indicated by the appended claims and the full scope of their equivalents.

因此,已僅出於示出的目的而呈現前述描述。前述描述並非排他性的,且對所揭露的精確形式或實施例不具限制性。修改和調適對所屬領域中具有通常知識者將從本說明書的考量及所揭露實施例的實踐顯而易見。Therefore, the foregoing description has been presented for illustrative purposes only. The foregoing description is not exclusive and is not limiting to the precise forms or embodiments disclosed. Modifications and adaptations will be apparent to those having ordinary skill in the art from consideration of this specification and practice of the disclosed embodiments.

申請專利範圍應基於申請專利範圍中所採用的語言來廣泛地解釋,且不限於本說明書中所描述的實例,所述實例應視為非排他性的。此外,所揭露方法的步驟可以任何方式(包括通過對步驟重新排序及/或插入或刪除步驟)修改。The scope of the claims should be interpreted broadly based on the language used in the claims and not limited to the examples described in this specification, which should be considered non-exclusive. In addition, the steps of the disclosed methods may be modified in any manner, including by reordering the steps and/or inserting or deleting steps.

100:方塊圖/系統 101:裝運授權技術(SAT)系統 102A:移動設備/使用設備 102B:電腦/使用設備 103:外部前端系統 105:內部前端系統 107:運輸系統 107A、107B、107C:移動設備/設備 109:賣方門戶 111:裝運和訂單追蹤(SOT)系統 113:履行最佳化(FO)系統 115:履行消息傳遞閘道(FMG) 117:供應鏈管理(SCM)系統 119:倉庫管理系統(WMS) 119A:移動設備/設備/平板電腦/電腦 119B:移動設備/設備/PDA/電腦 119C:移動設備/設備/電腦 121A、121B、121C:第三方履行(3PL)系統 123:履行中心授權系統(FC Auth) 125:勞動管理系統(LMS) 200:履行中心(FC) 201、222:卡車 202A、202B、208:物品 203:入站區 205:緩衝區 206:堆高機 207:下貨區 209:揀選區 210:儲存單元 211:包裝區 213:樞紐區 214:傳送機構 215:營地區 216:牆壁/分揀裝置 218、220:包裹 224A、224B:遞送工作者 226:汽車 300:系統 310:FC/倉庫系統 320:資料轉移系統 323:控制器 325:區域資料庫 340:線上資源 350:用戶端設備 360:第三方系統 370:網路 380:資料庫 400:轉移系統 402:轉移工具 404:線上資料庫 406:複製資料庫 412:資料導出工具 414:資料加載器工具 416:驗證工具 418:追趕工具 420:資料庫分群系統 500、600、700、800、900:過程 502、504、506、508、510、512、514、516、520、522、602、610、612、614、622、624、626、628、702、704、706、708、710、712、714、716、718、802、804、806、810、812、814、816、818、820、822、824、902、904、906、908、910、912、914、916、918、920、1102、1104、1106、1108、1110、1112、1114、1116、1118、1120、1122、1124、1126:步驟 1000:示意性表示 1010、1020、1030、1040、1050、1060、1070:時間 1012、1014、1022、1024、1032、1034、1036、1042、1044、1046、1052、1054、1056、1062、1064、1066、1072、1074、1076:記錄 1100:序列 100: Block Diagram/System 101: Shipping Authorization Technology (SAT) System 102A: Mobile Device/Device 102B: Computer/Device 103: External Front-End System 105: Internal Front-End System 107: Transportation System 107A, 107B, 107C: Mobile Device/Device 109: Seller Portal 111: Shipping and Order Tracking (SOT) System 113: Fulfillment Optimization (FO) System 115: Fulfillment Messaging Gateway (FMG) 117: Supply Chain Management (SCM) System 119: Warehouse Management System (WMS) 119A: Mobile Device/Device/Tablet/Computer 119B: Mobile device/equipment/PDA/computer 119C: Mobile device/equipment/computer 121A, 121B, 121C: Third-party fulfillment (3PL) system 123: Fulfillment Center Authorization System (FC Auth) 125: Labor Management System (LMS) 200: Fulfillment Center (FC) 201, 222: Truck 202A, 202B, 208: Item 203: Inbound area 205: Buffer area 206: Forklift 207: Unloading area 209: Picking area 210: Storage unit 211: Packaging area 213: Hub area 214: Conveyor mechanism 215: Camp area 216: Wall/sorting device 218, 220: Package 224A, 224B: Delivery worker 226: Car 300: System 310: FC/warehouse system 320: Data transfer system 323: Controller 325: Regional database 340: Online resources 350: Client device 360: Third-party system 370: Network 380: Database 400: Transfer system 402: Transfer tool 404: Online database 406: Copy database 412: Data export tool 414: Data loader tool 416: Verification tool 418: Tracking tool 420: Database clustering system 500, 600, 700, 800, 900: process 502, 504, 506, 508, 510, 512, 514, 516, 520, 522, 602, 610, 612, 614, 622, 624, 626, 628, 702, 704, 706, 708, 710, 712, 714, 716, 718, 802, 804, 806, 810, 812, 81 4. 816, 818, 820, 822, 824, 902, 904, 906, 908, 910, 912, 914, 916, 918, 920, 1102, 1104, 1106, 1108, 1110, 1112, 1114, 1116, 1118, 1120, 1122, 1124, 1126: Steps 1000: schematic representation 1010, 1020, 1030, 1040, 1050, 1060, 1070: time 1012, 1014, 1022, 1024, 1032, 1034, 1036, 1042, 1044, 1046, 1052, 1054, 1056, 1062, 1064, 1066, 1072, 1074, 1076: record 1100: sequence

圖1A為符合所揭露實施例的示出包括用於實現裝運、運輸以及物流操作的通訊的電腦化系統的網路的例示性實施例的示意性方塊圖。 圖1B描述符合所揭露實施例的包括滿足搜尋請求的一或多個搜尋結果以及互動式使用者介面元素的樣本搜尋結果頁面(Search Result Page;SRP)。 圖1C描述符合所揭露實施例的包括產品和關於所述產品的資訊以及互動式使用者介面元素的樣本單一顯示頁面(Single Display Page;SDP)。 圖1D描述符合所揭露的實施例的包括虛擬購物車中的物品以及互動式使用者介面元素的樣本購物車頁面。 圖1E描述符合所揭露實施例的包括來自虛擬購物車的物品以及關於購買和裝運的資訊以及互動式使用者介面元素的樣本訂單頁面。 圖2為符合所揭露的實施例的配置為利用所揭露的電腦化系統的例示性履行中心的圖解說明。 圖3為符合所揭露實施例的例示性系統的示意性方塊圖。 圖4為符合所揭露實施例的例示性資料庫轉移系統的方塊圖。 圖5為符合所揭露實施例的用於資料庫轉移的例示性過程的流程圖。 圖6為符合所揭露實施例的用於轉移的資料一致性驗證的例示性過程的流程圖。 圖7為符合所揭露實施例的用於實時資料庫的轉移的例示性過程的流程圖。 圖8為符合所揭露實施例的用於資料庫轉移驗證的例示性過程的流程圖。 圖9為符合所揭露實施例的用於線上資料庫轉移的例示性過程的流程圖。 圖10為符合所揭露實施例的使用複製資料庫的資料庫轉移過程的示意性表示。 圖11為符合所揭露實施例的用於資料庫轉移的例示性序列的時序圖。 FIG. 1A is a schematic block diagram of an exemplary embodiment of a network including a computerized system for communication for implementing shipping, transportation, and logistics operations consistent with disclosed embodiments. FIG. 1B depicts a sample Search Result Page (SRP) including one or more search results satisfying a search request and interactive user interface elements consistent with disclosed embodiments. FIG. 1C depicts a sample Single Display Page (SDP) including products and information about the products and interactive user interface elements consistent with disclosed embodiments. FIG. 1D depicts a sample shopping cart page including items in a virtual shopping cart and interactive user interface elements consistent with disclosed embodiments. FIG. 1E depicts a sample order page including items from a virtual shopping cart and information about purchase and shipping and interactive user interface elements consistent with disclosed embodiments. FIG. 2 is a diagrammatic illustration of an exemplary fulfillment center configured to utilize the disclosed computerized system consistent with disclosed embodiments. FIG. 3 is a schematic block diagram of an exemplary system consistent with disclosed embodiments. FIG. 4 is a block diagram of an exemplary database migration system consistent with disclosed embodiments. FIG. 5 is a flow chart of an exemplary process for database migration consistent with disclosed embodiments. FIG. 6 is a flow chart of an exemplary process for data consistency verification for migration consistent with disclosed embodiments. FIG. 7 is a flow chart of an exemplary process for migration of a real-time database consistent with disclosed embodiments. FIG. 8 is a flow chart of an exemplary process for database migration verification consistent with the disclosed embodiment. FIG. 9 is a flow chart of an exemplary process for online database migration consistent with the disclosed embodiment. FIG. 10 is a schematic representation of a database migration process using a replicated database consistent with the disclosed embodiment. FIG. 11 is a timing diagram of an exemplary sequence for database migration consistent with the disclosed embodiment.

323:控制器 323: Controller

400:轉移系統 400: Migrate system

402:轉移工具 402: Transfer tool

404:線上資料庫 404: Online database

406:複製資料庫 406: Duplicate database

412:資料導出工具 412:Data export tool

414:資料加載器工具 414:Data loader tool

416:驗證工具 416: Verification tool

418:追趕工具 418: Tracking tool

420:資料庫分群系統 420: Database clustering system

Claims (20)

一種用於資料庫轉移的系統,包括: 一或多個處理器;以及 一或多個記憶體設備,儲存指令,所述指令在由所述一或多個處理器執行時配置所述一或多個處理器以執行包括以下的操作: 將具有線上訊務的線上資料庫複製至第一複製資料庫; 從所述第一複製資料庫生成導出檔案且將其導入至轉移資料庫; 在導入所述導出檔案之後執行所述第一複製資料庫與所述轉移資料庫的列比較,所述列比較通過計算所述線上資料庫和所述轉移資料庫中的選定數目個列的分片鍵來執行; 起始雙寫入操作,將所述線上資料庫的寫入複寫至所述轉移資料庫上以捕獲增量資料; 在執行所述列比較之後將所述線上資料庫複製至第二複製資料庫; 通過比較所述第二複製資料庫與所述增量資料識別追趕資料;以及 更新所述轉移資料庫以包括所述追趕資料。 A system for database migration, comprising: one or more processors; and one or more memory devices storing instructions, which when executed by the one or more processors configure the one or more processors to perform operations including: copying an online database with online services to a first replica database; generating an export file from the first replica database and importing it into a migration database; performing a column comparison between the first replica database and the migration database after importing the export file, the column comparison being performed by calculating the sharding keys of a selected number of columns in the online database and the migration database; initiating a dual write operation to copy the write of the online database to the migration database to capture incremental data; After performing the column comparison, the online database is replicated to a second replica database; Identifying catch-up data by comparing the second replica database with the incremental data; and Updating the migration database to include the catch-up data. 如請求項1所述的系統,其中更新所述轉移資料庫包括: 選擇包括所述追趕資料的至少一部分的所述第二複製資料庫中的列群組; 生成包括所述列群組的暫時檔案;以及 通過將所述暫時檔案插入與所述第二複製資料庫中的所述列群組一致的位置中來使所述轉移資料庫與所述第二複製資料庫同步。 A system as described in claim 1, wherein updating the migration database includes: selecting a column group in the second replica database that includes at least a portion of the catch-up data; generating a temporary file including the column group; and synchronizing the migration database with the second replica database by inserting the temporary file into a location consistent with the column group in the second replica database. 如請求項1所述的系統,其中: 所述列比較為第一列比較;以及 所述操作更包括: 在更新所述轉移資料庫以包括所述追趕資料之後,執行所述第二複製資料庫與所述轉移資料庫之間的第二列比較以確定資料是否一致; 回應於確定所述資料不一致: 識別不一致的列; 生成包括所述不一致的列的暫時檔案;以及 通過將所述暫時檔案插入在對應於所述不一致的列的位置中來更新所述轉移資料庫。 A system as described in claim 1, wherein: the row comparison is a first row comparison; and the operation further comprises: after updating the migration database to include the catch-up data, performing a second row comparison between the second replica database and the migration database to determine whether the data is consistent; in response to determining that the data is inconsistent: identifying inconsistent rows; generating a temporary file including the inconsistent rows; and updating the migration database by inserting the temporary file in a position corresponding to the inconsistent row. 如請求項3所述的系統,其中所述操作更包括: 回應於確定所述資料一致: 暫停所述雙寫入操作;以及 將線上訊務從所述線上資料庫切換至所述轉移資料庫。 The system as described in claim 3, wherein the operation further comprises: In response to determining that the data is consistent: Suspending the dual write operation; and Switching online traffic from the online database to the migration database. 如請求項4所述的系統,其中所述操作更包括: 在暫停所述雙寫入操作之後,執行所述第二複製資料庫與所述轉移資料庫之間的最終同步。 The system as described in claim 4, wherein the operation further comprises: After pausing the dual write operation, performing a final synchronization between the second replica database and the transfer database. 如請求項1所述的系統,其中執行所述列比較包括: 確定所述第一複製資料庫中的列是否具有與所述轉移資料庫中的對應列相同的分片鍵; 回應於確定所述第一複製資料庫中的一或多個列具有與所述轉移資料庫中的對應列不同的分片鍵,確定所述對應列所述轉移資料庫是否具有較晚修改時間; 忽略所述第一複製資料庫中的具有與所述轉移資料庫中的對應列不同的分片鍵的列;以及 當未忽略列的分片鍵相同時確定資料一致性。 The system of claim 1, wherein performing the column comparison comprises: determining whether a column in the first replica database has the same shard key as a corresponding column in the transfer database; in response to determining that one or more columns in the first replica database have a different shard key than a corresponding column in the transfer database, determining whether the corresponding column in the transfer database has a later modification time; ignoring columns in the first replica database that have a different shard key than the corresponding column in the transfer database; and determining data consistency when the shard keys of non-ignored columns are the same. 如請求項1所述的系統,其中所述轉移資料庫包括暴露於經由應用程式設計介面(API)調用路由的查詢的資料庫分群系統。The system of claim 1, wherein the migration database comprises a database clustering system exposed to queries routed via an application programming interface (API) call. 如請求項1所述的系統,所述操作更包括: 在生成所述導出檔案之前: 將資料庫綱目應用於所述轉移資料庫; 執行所述雙寫入操作的測試;以及 暫停所述雙寫入操作。 The system of claim 1, wherein the operation further comprises: Before generating the export file: Applying the database outline to the migration database; Performing a test of the dual write operation; and Pausing the dual write operation. 如請求項1所述的系統,其中: 所述導出檔案包括SQL檔案;以及 將所述線上資料庫複製至所述第二複製資料庫包括經由所述第一複製資料庫重寫。 A system as claimed in claim 1, wherein: the export file includes an SQL file; and copying the online database to the second replica database includes rewriting via the first replica database. 如請求項1所述的系統,其中: 基於由使用者識別的資料範圍選擇所述線上資料庫中的所述選定數目個列;以及 執行所述第一複製資料庫與所述轉移資料庫的所述列比較包括比較所述第一複製資料庫和所述轉移資料庫的每一中的行值的散列。 The system of claim 1, wherein: the selected number of columns in the online database is selected based on a data range identified by a user; and performing the column comparison of the first replica database and the transfer database includes comparing hashes of row values in each of the first replica database and the transfer database. 一種用於資料庫轉移的方法,包括: 將具有線上訊務的線上資料庫複製至第一複製資料庫; 從所述第一複製資料庫生成導出檔案且將其導入至轉移資料庫; 在導入所述導出檔案之後執行所述第一複製資料庫與所述轉移資料庫的列比較,所述列比較通過計算所述線上資料庫和所述轉移資料庫中的選定數目個列的分片鍵來執行; 起始雙寫入操作,將所述線上資料庫的寫入複寫至所述轉移資料庫上以捕獲增量資料; 在執行所述列比較之後將所述線上資料庫複製至第二複製資料庫; 通過比較所述第二複製資料庫與所述增量資料識別追趕資料;以及 更新所述轉移資料庫以包括所述追趕資料。 A method for database migration, comprising: Copying an online database with online services to a first replica database; Generating an export file from the first replica database and importing it into a transfer database; Performing a column comparison between the first replica database and the transfer database after importing the export file, the column comparison being performed by calculating the sharding keys of a selected number of columns in the online database and the transfer database; Initiating a dual write operation to copy the writes of the online database to the transfer database to capture incremental data; Copying the online database to a second replica database after performing the column comparison; Identifying catch-up data by comparing the second replica database with the incremental data; and Update the migration database to include the tracking data. 如請求項11所述的方法,其中更新所述轉移資料庫包括: 選擇包括所述追趕資料的至少一部分的所述第二複製資料庫中的列群組; 生成包括所述列群組的暫時檔案;以及 通過將所述暫時檔案插入與所述第二複製資料庫中的所述列群組一致的位置中來使所述轉移資料庫與所述第二複製資料庫同步。 A method as claimed in claim 11, wherein updating the migration database comprises: selecting a column group in the second replica database that includes at least a portion of the catch-up data; generating a temporary file including the column group; and synchronizing the migration database with the second replica database by inserting the temporary file into a location consistent with the column group in the second replica database. 如請求項11所述的方法,其中: 所述列比較為第一列比較;以及 所述方法更包括: 在更新所述轉移資料庫以包括所述追趕資料之後,執行所述第二複製資料庫與所述轉移資料庫之間的第二列比較以確定資料是否一致; 回應於確定所述資料不一致: 識別不一致的列; 生成包括所述不一致的列的暫時檔案;以及 通過將所述暫時檔案插入在對應於所述不一致的列的位置中來更新所述轉移資料庫。 A method as claimed in claim 11, wherein: the row comparison is a first row comparison; and the method further comprises: after updating the migration database to include the catch-up data, performing a second row comparison between the second replica database and the migration database to determine whether the data is consistent; in response to determining that the data is inconsistent: identifying inconsistent rows; generating a temporary file including the inconsistent rows; and updating the migration database by inserting the temporary file in a position corresponding to the inconsistent rows. 如請求項13所述的方法,更包括: 回應於確定所述資料一致: 暫停所述雙寫入操作;以及 將線上訊務從所述線上資料庫切換至所述轉移資料庫。 The method of claim 13 further includes: In response to determining that the data is consistent: Suspending the dual write operation; and Switching online traffic from the online database to the migration database. 如請求項14所述的方法,更包括: 在暫停所述雙寫入操作之後,執行所述第二複製資料庫與所述轉移資料庫之間的最終同步。 The method as described in claim 14 further includes: After pausing the dual write operation, performing a final synchronization between the second replica database and the transfer database. 如請求項11所述的方法,其中執行所述列比較包括: 確定所述第一複製資料庫中的列是否具有與所述轉移資料庫中的對應列相同的分片鍵; 回應於確定所述第一複製資料庫中的一或多個列具有與所述轉移資料庫中的對應列不同的分片鍵,確定所述轉移資料庫中的所述對應列是否具有較晚修改時間; 忽略所述第一複製資料庫中的具有與所述轉移資料庫中的對應列不同的分片鍵的列;以及 當未忽略列的分片鍵相同時確定資料一致性。 The method of claim 11, wherein performing the column comparison comprises: Determining whether a column in the first replica database has the same shard key as a corresponding column in the transfer database; In response to determining that one or more columns in the first replica database have a different shard key than a corresponding column in the transfer database, determining whether the corresponding column in the transfer database has a later modification time; Ignoring columns in the first replica database that have a different shard key than the corresponding column in the transfer database; and Determining data consistency when the shard keys of non-ignored columns are the same. 如請求項11所述的方法,其中所述轉移資料庫包括暴露於經由應用程式設計介面(API)調用路由的查詢的資料庫分群系統。A method as described in claim 11, wherein the migration database includes a database clustering system exposed to queries routed via an application programming interface (API) call. 如請求項11所述的方法,更包括: 在生成所述導出檔案之前: 將資料庫綱目應用於所述轉移資料庫; 執行所述雙寫入操作的測試;以及 暫停所述雙寫入操作。 The method of claim 11 further comprises: Before generating the export file: Applying the database outline to the migration database; Performing a test of the dual write operation; and Pausing the dual write operation. 如請求項11所述的方法,其中: 所述導出檔案包括SQL檔案; 將所述線上資料庫複製至所述第二複製資料庫包括經由所述第一複製資料庫重寫; 基於由使用者識別的資料範圍選擇所述線上資料庫中的所述選定數目個列;以及 執行所述第一複製資料庫與所述轉移資料庫的所述列比較包括比較所述第一複製資料庫和所述轉移資料庫的每一中的行值的散列。 The method of claim 11, wherein: the export file comprises an SQL file; copying the online database to the second replica database comprises rewriting via the first replica database; selecting the selected number of columns in the online database based on a data range identified by a user; and performing a column comparison of the first replica database with the transfer database comprises comparing hashes of row values in each of the first replica database and the transfer database. 一種用於線上資料庫的轉移的系統,所述系統包括: 第一資料庫,耦接至網路; 第二資料庫; 至少一個處理器,耦接至所述第一資料庫和所述第二資料庫;以及 至少一個記憶體設備,儲存指令,所述指令在由所述至少一個處理器執行時配置所述至少一個處理器以進行以下操作: 將所述第一資料庫複製至第一複製資料庫; 從所述第一複製資料庫生成導出檔案且將其導入至所述第二資料庫; 在導入所述導出檔案之後執行所述第一複製資料庫與所述第二資料庫的列比較,所述列比較通過計算所述第一資料庫和所述第二資料庫中的選定數目個列的分片鍵來執行; 起始雙寫入操作,將所述第一資料庫的寫入複寫至所述第二資料庫上以捕獲增量資料; 在執行所述列比較之後將所述第一資料庫複製至第二複製資料庫; 通過比較所述第二複製資料庫與所述增量資料識別追趕資料; 更新所述第二資料庫以包括所述追趕資料; 在更新所述第二資料庫以包括所述追趕資料之後,執行所述第二複製資料庫與所述第二資料庫之間的第二列比較以確定資料是否一致;以及 在確定所述資料一致後: 暫停所述雙寫入操作;以及 將線上訊務從所述第一資料庫切換至所述第二資料庫。 A system for migration of an online database, the system comprising: A first database coupled to a network; A second database; At least one processor coupled to the first database and the second database; and At least one memory device storing instructions, the instructions configuring the at least one processor to perform the following operations when executed by the at least one processor: Copying the first database to a first replica database; Generating an export file from the first replica database and importing it into the second database; Performing a column comparison between the first replica database and the second database after importing the export file, the column comparison being performed by calculating shard keys of a selected number of columns in the first database and the second database; Initiate a dual write operation to replicate the write of the first database to the second database to capture incremental data; After performing the column comparison, replicate the first database to the second replica database; Identify catch-up data by comparing the second replica database with the incremental data; Update the second database to include the catch-up data; After updating the second database to include the catch-up data, perform a second column comparison between the second replica database and the second database to determine whether the data is consistent; and After determining that the data is consistent: Suspend the dual write operation; and Switch online traffic from the first database to the second database.
TW112116496A 2022-05-23 2023-05-03 Systems and methods for database migration, and systems for migration of an online database TW202411858A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
WOPCT/IB2022/054819 2022-05-23

Publications (1)

Publication Number Publication Date
TW202411858A true TW202411858A (en) 2024-03-16

Family

ID=

Similar Documents

Publication Publication Date Title
US10956244B1 (en) Systems and methods for automated application programming interface evaluation and migration
US11232083B2 (en) Facilitating dynamically unified system of record in an on-demand services environment
US8555018B1 (en) Techniques for storing data
US20190057101A1 (en) Efficient deletion of archive records after expiration of a tenant-defined retention period
US20180095790A1 (en) Scheduling jobs for processing log files using a database system
US20220188194A1 (en) Cloud-based database backup and recovery
US8996588B2 (en) Mechanism for facilitating dynamic management of assets in an on-demand services environment
US20130290406A1 (en) Mechanism for providing a cloud platform for facilitating and supporting user-controlled development and management of user products
KR102422709B1 (en) Systems and methods of balancing network load for ultra high server availability
US20200068018A1 (en) Techniques and Architectures for Managing Disparate Heterogeneous Cloud-Based Resources
TWI794709B (en) Computer -implemented system and method for low-latency aggregated-data provision
US20200311637A1 (en) Monitoring and verification system for end-to-end distribution of messages
US11630744B2 (en) Methods and systems relating to network based storage retention
US20180217830A1 (en) Additive packaging through smart wrapping of packages and customizations in an on-demand environment
US20200026431A1 (en) System and method for synchronization of data containers
KR20210024946A (en) Systems and methods for dynamic aggregation of data and minimization of data loss
US10838911B1 (en) Optimization of data request processing for data storage systems
TWI762140B (en) Computerized system, computer-implemented method and system for transmitting website data to client devices
TW202411858A (en) Systems and methods for database migration, and systems for migration of an online database
WO2023227921A1 (en) Systems and methods for database migration
Vergadia Visualizing Google Cloud: 101 Illustrated References for Cloud Engineers and Architects
TW202222055A (en) Systems and methods for managing a highly available and scalable distributed database in a cloud computing environment
US11086764B2 (en) Identification of code ownership through test coverage in database systems