Machine Learning Predictions for Database Migrations
By using a trained model generated by a machine learning prediction system, the problem of low efficiency in database migration was solved, and the appropriate migration technology was automatically selected according to the migration environment, thereby improving the efficiency and accuracy of database migration.
Patent Information
- Application Number
- CN202080003756.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-01-31
- Filing Date
- 2020-05-11
- Publication Date
- 2025-01-07
- Estimated Expiration
- 2040-05-11
AI Technical Summary
Existing technologies struggle to efficiently manage data during database migration, especially when migrating from on-premises to cloud-based implementations. They fail to meet database availability requirements and rely on expert experience, leading to inefficient migration.
A machine learning prediction system is used to generate a trained machine learning model from training data. Based on migration information and migration methods, it predicts effective database migration techniques, including database replication, cloning, and pluggable database implementations. The machine learning model learns trends in the migration environment to optimize the migration process.
It improves the efficiency and accuracy of database migration, reduces reliance on expert experience, and can automatically select appropriate migration technologies based on the specific environment, meeting various constraints during the migration process.
Smart Images

Figure CN113632074B_ABST
Abstract
Description
Technical Field
[0001] Embodiments of the present disclosure generally relate to machine learning prediction for database migration. Background Art
[0002] The proliferation of computing and connected devices has generated a large amount of data that needs to be managed. As the size of the data has grown, the technical challenges associated with managing the data efficiently have become more complex. For example, data migration from one implementation to the next (such as from a local implementation to a cloud-based implementation) often relies on expert knowledge. In addition, given the organizational dependencies of data services, requirements for database availability during migration may be difficult to meet. Therefore, efficient database migration techniques can improve data management systems. Summary of the invention
[0003] Embodiments of the present disclosure are generally directed to systems and methods for generating machine learning predictions for database migration. A trained machine learning model that has been trained using training data may be stored, wherein the training data includes migration information for a database migration and a migration method for the database migration, and the training data migration information includes a source database type and a target database infrastructure. Migration information for a candidate database migration including a source database type and a target database infrastructure may be received. Using the trained machine learning model, a migration method may be predicted based on the migration information for the candidate database migration.
[0004] Features and advantages of the embodiments are set forth in the description which follows, or may be obvious from the description, or may be learned through practice of the disclosure. BRIEF DESCRIPTION OF THE DRAWINGS
[0005] Further embodiments, details, advantages and modifications will become apparent from the following detailed description of preferred embodiments taken in conjunction with the accompanying drawings.
[0006] Figure 1 A system for generating machine learning predictions for database migration is shown according to an example embodiment.
[0007] Figure 2 A block diagram is shown of a computing device operably coupled to a prediction system according to an example embodiment.
[0008] Figure 3 A prediction system according to an example embodiment is shown.
[0009] Figure 4 A system for receiving feedback to improve a machine learning model is shown according to an example embodiment.
[0010] Figure 5A flow diagram for generating machine learning predictions for database migration is shown according to an example embodiment.
[0011] Figure 6 A flow chart for receiving feedback to improve a machine learning model is shown according to an example embodiment. DETAILED DESCRIPTION
[0012] Embodiments use trained machine learning models to predict migration techniques for database migration. For example, a database migration, such as migration from a local computing device to a cloud computing system, can be implemented using a plurality of different techniques and combinations of techniques, such as database replication, cloning, pluggable database implementations, and other techniques. Some of these database migration techniques may be more effective than others based on the environment used for the migration, such as the source database implementation / type, the target database infrastructure, downtime criteria, bandwidth criteria, and other circumstances. For example, an expert can typically select a migration technique based on experience.
[0013] Embodiments use a trained machine learning model to predict database migration techniques based on the environment of a given migration. For example, training data may include information for a database migration and techniques for implementing the migration (e.g., techniques that are considered successful given the environment of the migration). The training data may be used to train a machine learning model, where the training may configure the model to learn trends in the data. In this way, the trained model may effectively predict migration techniques that will be effective given the set of environments for the database migration. In other words, candidate database migrations may be fed into a trained machine learning model, and predictions of migration techniques may be generated based on learned trends within the training data.
[0014] Reference will now be made in detail to embodiments of the present disclosure, examples of which are shown in the accompanying drawings. In the detailed description below, numerous specific details are set forth in order to provide a thorough understanding of the present disclosure. However, it will be clear to one of ordinary skill in the art that the present disclosure may be practiced without these specific details. In other cases, well-known methods, processes, components and circuits are not described in detail to avoid unnecessarily making aspects of the embodiments unclear. Wherever possible, the same reference numerals will be used for the same elements.
[0015] Figure 1A system for machine learning prediction of database migration according to an example embodiment is shown. System 100 includes a user device 102, a submission 104 of migration information, a repository 106, a script execution and submission 108, a cloud system 110, a server 112, a machine learning model 114, and a data set 116. For example, system 100 can be used to predict a migration technique for migrating a source database to a target database. Migration information for migrating a source database to a target database can be submitted by a user (represented by submission 104 of migration information) and / or can be automatically retrieved and submitted by a script (represented by script execution and submission 108). In some embodiments, user device 102 can be any suitable computing device that implements a source database for migration or any suitable computing device that is part of a system that implements a source database for migration.
[0016] In some embodiments, submission 104 of migration information may include a user manually entering the migration information (e.g., entering a spreadsheet, web form, progressive web application, etc.). The submission may be transmitted to the cloud system 110. In some embodiments, script execution and submission 108 may include the execution of a script (or any other form of code, such as executable code) configured to retrieve migration information from a source system / source database. For example, a script may be retrieved from a repository 106 (e.g., Github or any other repository) and executed on the source system / source database. The script may retrieve migration information about a source database and a source system that implements the source database. Script execution and submission 108 may include generating a payload or document with the migration information and transmitting it to the cloud system 110.
[0017] In some embodiments, submission 104 of migration information may be implemented in conjunction with script execution and submission 108. For example, execution of the script may generate migration information about the source database and source system, however other migration information (e.g., target database infrastructure, bandwidth criteria, downtime criteria, etc.) may be manually entered, or the migration information generated by the script may be overwritten by manual entry. In some embodiments, the script may be configured to prompt the user for additional migration information. For example, script execution and submission 108 may include user prompts and manual entry of certain pieces of migration information (e.g., target database infrastructure, bandwidth criteria, downtime criteria, etc.). In this embodiment, the payload or document generated by the script and transmitted to the cloud system 110 includes the retrieved information about the source system / database and the manually entered additional migration information.
[0018] In some embodiments, the cloud system 110 can submit a request to the server 112. For example, the request can be for a migration technology recommended or predicted based on the included migration information (received at the cloud system 110). Specifically, the migration information describes the environment of the migration, and the request can be for a migration technology prediction generated based on historical migration information (e.g., data set 116). In some embodiments, the migration information is converted to a machine-readable format (e.g., by client code, client script, script executed to generate the migration information, etc.) at the cloud system 110, server 112, machine learning model 114, or any other point in the process. For example, the conversion can be machine-readable data that represents the migration information as binary (e.g., 0 and 1) or other suitable machine-readable code (such as hexadecimal). The conversion can be performed using a predetermined conversion technique that converts the migration information into corresponding machine-readable data.
[0019] In some embodiments, the migration information (e.g., in a machine-readable format, such as binary) is transmitted to the machine learning model 114. For example, using the data set 116 (e.g., training data), the machine learning model 114 can be trained to predict database migration techniques based on the migration information set (taking into account the input of the migration information set) that represents the environment of the candidate database migration (e.g., the features used for prediction). The machine learning model 114 can then predict migration techniques for the candidate database migration represented by the migration information. These predicted techniques can be transmitted to the server 112 and the cloud system 110, which can display the results and / or implement one or more of the one or more predicted migration techniques. In some embodiments, the predicted techniques can be transmitted to the user device 102, which can similarly display or implement one or more of the one or more predicted techniques.
[0020] Figure 2 2 is a block diagram of a computer server / system 210 according to an embodiment. Figure 2 As shown, the system 210 may include a bus 212 and / or other communication mechanisms configured to transmit information between various components of the system 210, such as the processor 222 and the memory 214. In addition, the communication device 220 may implement a connection between the processor 222 and other devices by encoding data to be sent from the processor 222 to another device over a network (not shown) and decoding data received from another system over the network for the processor 222.
[0021] For example, the communication device 220 may include a network interface card configured to provide wireless network communications. Various wireless communication technologies may be used, including infrared, radio, Wi-Fi and / or cellular communications. Alternatively, the communication device 220 may be configured to provide a wired network connection(s), such as an Ethernet connection.
[0022] The processor 222 may include one or more general or special purpose processors to perform computational and control functions of the system 210. The processor 222 may include a single integrated circuit (such as a microprocessing device), or may include multiple integrated circuit devices and / or circuit boards working in coordination to implement the functions of the processor 222. In addition, the processor 222 may execute computer programs stored in the memory 214, such as the operating system 215, the migration prediction component 216, and other application modules 218.
[0023] The system 210 may include a memory 214 for storing information and instructions executed by the processor 222. The memory 214 may include various components for retrieving, presenting, modifying, and storing data. For example, the memory 214 may store software modules that provide functions when executed by the processor 222. The modules may include an operating system 215 that provides operating system functions for the system 210. The modules may include an operating system 215, a migration prediction component 216, and other application modules 218. The operating system 215 provides operating system functions for the system 210. The migration prediction component 216 may provide system functions for predicting database migration technology, or may further provide any other functions of the present disclosure. In some cases, the migration prediction component 216 may be implemented as an in-memory configuration.
[0024] The non-transitory memory 214 may include a variety of computer-readable media that may be accessed by the processor 222. For example, the memory 214 may include any combination of random access memory (“RAM”), dynamic RAM (“DRAM”), static RAM (“SRAM”), read-only memory (“ROM”), flash memory, cache memory, and / or any other type of non-transitory computer-readable media.
[0025] Processor 222 is also coupled to a display 224 , such as a liquid crystal display (“LCD”), via bus 212 . A keyboard 226 and cursor control device 228 , such as a computer mouse, are also coupled to communication device 220 to enable a user to interface with system 210 .
[0026] In some embodiments, the system 210 may be part of a larger system. Thus, the system 210 may include one or more additional application modules 218 to include additional functionality. The other application modules 218 may include various modules, such as Enterprise Resource Planning (“ERP”) cloud, and / or embedded in Engagement Engines (“EEs”) in the cloud, such as Business Intelligence Enterprise Edition (“OBIEE”), Data Integrator. Database 217 is coupled to bus 212 to provide centralized storage for modules 216 and 218 and to store, for example, wireless device activity and, in some embodiments, user profiles, transaction history, etc. Database 217 may store data in an integrated collection of logically related records or files. Database 217 may be an operational database, an analytical database, a data warehouse, a distributed database, an end-user database, an external database, a navigational database, an in-memory database, a document-oriented database, a real-time database, a relational database, an object-oriented database, a Hadoop Distributed File System ("HFDS"), or any other database known in the art.
[0027] Although illustrated as a single system, the functionality of system 210 may be implemented as a distributed system. For example, memory 214 and processor 222 may be distributed across multiple different computers that collectively represent system 210. In one embodiment, system 210 may be part of a device (e.g., a smartphone, tablet computer, computer, etc.).
[0028] In embodiments, system 210 may be separate from the device and may provide the described functionality to the device remotely. Additionally, one or more components of system 210 may not be included. For example, for functionality as a user or consumer device, system 210 may be a smartphone or other wireless device that includes a processor, memory, and display, but does not include a processor, memory, and display. Figure 2 One or more of the other components shown, and including Figure 2 Additional components not shown.
[0029] Figure 3 A prediction system according to an example embodiment is shown. System 300 includes a machine learning component 302, training data 304, input 306, prediction 308, and observed data 310. In some embodiments, machine learning component 302 can be a design model including one or more machine learning elements (e.g., a neural network, a support vector machine, a Bayesian network, a random forest classifier, a gradient boosting classifier, etc.). Training data 304 can be any data set (e.g., a feature set with corresponding labels, such as labeled data for supervised learning) that can train machine learning component 302. In some embodiments, training data 304 can be used to train machine learning component 302 to generate a trained machine learning model.
[0030] In some embodiments, Figure 1 The machine learning model 114 can be used with Figure 3The machine learning component 302 is similar to that of Figure 1 The dataset 116 can be compared with Figure 3 The training data 304 of the training data 304 is similar. For example, the trained machine learning model can be configured to predict the migration technology for the source to target database migration. In some embodiments, the training data 304 can include instances of migration information (e.g., each instance of migration information for migration) and corresponding labels, which include the migration technology for performing the migration (e.g., the migration technology for each instance of migration information). Therefore, the prediction 308 generated by the machine learning component 302 trained by the embodiment of the training data 304 for a given candidate database migration can be one or more migration technologies (e.g., cloning, replication, disaster recovery switching, pluggable database, etc.).
[0031] In some embodiments, the predicted migration technique (or a portion of the predicted technique) can be used to perform a candidate database migration. After implementing the database migration, the effectiveness of the predicted migration technique can be determined, such as compliance with downtime criteria, bandwidth criteria, timing criteria, etc. Feedback about the predicted migration technique can be retrieved (e.g., in Figure 3 ), and the feedback can be processed to update the training data 304.
[0032] The design of the machine learning component 302 can include any suitable machine learning model component (e.g., a neural network, a support vector machine, a dedicated regression model, a random forest classifier, a gradient boosting classifier, etc.). For example, a neural network can be implemented with a given cost function (e.g., for training / gradient calculations). The neural network can include any number of hidden layers (e.g., 0, 1, 2, 3, or more), and can include a feedforward neural network, a recursive neural network, a convolutional neural network, a modular neural network, and any other suitable type. In some embodiments, the neural network can be configured, for example, for deep learning based on the number of hidden layers implemented. In some examples, a Bayesian network or other type of supervised learning model can be similarly implemented.
[0033] For example, in some cases, a support vector machine can be implemented with one or more kernels (e.g., Gaussian kernel, linear kernel, etc.). In some embodiments, a k-nearest neighbor ("KNN") algorithm can be implemented. For example, the KNN algorithm can determine the distance between a candidate database migration (e.g., represented by input 306) and an instance of training data 304, and can determine one or more "nearest neighbors" relative to that distance (the number of neighbors can be based on the value selected for K). Predictions 308 can then be generated based on the distances from these "nearest neighbor" instances.
[0034] In some embodiments, the machine learning component 302 may include an ensemble learning model. For example, the machine learning component 302 may include a random forest classifier that includes multiple machine learning components whose predictions are combined. An embodiment of a random forest classifier includes a decision tree trained by training data 304 (e.g., each tree uses a subset of the training data). The random forest algorithm can then aggregate votes from these decision trees to obtain a prediction.
[0035] In some embodiments, the machine learning component 302 may include a gradient boost learning algorithm, such as XGBoost. The gradient boost algorithm may similarly utilize an ensemble learning technique with multiple decision trees trained using training data 304, however the gradient boost algorithm may arrange the decision trees in sequence. In this embodiment, the later trees in the sequence will learn to "correct" errors based on the predictions generated by the earlier decision trees. The gradient boost learning algorithm aggregates the predictions generated by the individual decision trees to generate predictions 308. The individual decision trees may be trained using a recursive segmentation algorithm (e.g., recursive binary segmentation) that segments the nodes of the tree, or any other suitable training technique.
[0036] In some embodiments, the machine learning component 302 can be a stack of multiple models, such as the output of a first model feeding the input of a second model. Some embodiments can include multiple layers of a prediction model. In some embodiments, features of the machine learning component 302 can also be determined. For example, feature engineering can be used to generate a feature set implemented by one or more machine learning models.
[0037] In some embodiments, the design of the machine learning component 302 can be adjusted during training, retraining, and / or update training. For example, the adjustment can include adjusting the number of hidden layers in the neural network, adjusting the kernel calculations used to implement the support vector machine, etc. The adjustment can also include adjusting / selecting the features used by the machine learning model. Embodiments include implementing various adjustment configurations (e.g., different versions of machine learning models and features) during training in order to obtain a configuration for the machine learning component 302 that achieves the desired performance when trained (e.g., performs predictions at a desired level of accuracy, runs according to desired resource utilization / time metrics, etc.).
[0038] In some embodiments, retraining and updating the training of the machine learning model may include training the model using updated training data. For example, the training data may be updated to incorporate observed data, or otherwise labeled data (e.g., for use with supervised learning).
[0039] In some embodiments, the machine learning component 302 may include an unsupervised learning component. For example, one or more clustering algorithms (such as hierarchical clustering, k-means clustering, etc.), or an unsupervised neural network (such as an unsupervised autoencoder) may be implemented. In this example, database migration information and migration techniques (corresponding to the environment represented by the migration information) may be input to the unsupervised learning component to learn various aspects of the data, such as clustering that relates features to migration techniques. Based on the learned relationships, a prediction 308 representing a migration technique for a candidate database migration may be generated (e.g., based on the input 306 including features representing the candidate database migration).
[0040] An embodiment predicts migration techniques based on the migration environment, such as network bandwidth, downtime considerations, and the target database. Machine learning capabilities enable an embodiment to continuously learn from actual migration experiences to fine-tune the predictions. In many conventional implementations, the database migration process involves relying on database experts who are experienced in migration techniques (e.g., based on their experience in other migrations). As a result, database migrations that cannot rely on a group of experienced database experts typically struggle to perform efficient migrations.
[0041] Furthermore, migration options for databases are often numerous in nature, and an understanding of the technology in question may often be required in a specific migration scenario. For example, it may be necessary to convene the information technology team to understand the current footprint of each database, collate the complete information, and then decide empirically what a feasible migration path is. In many cases, significant gaps between the planned database migration approach and actual experience have been observed. These gaps put migration projects at excessive risk and undermine the confidence of organizations to move production workloads to the cloud.
[0042] Embodiments address a number of these migration scenario issues by implementing a proper process for developing an overall migration predictor that continuously learns and evolves as the technology landscape changes. In some embodiments, a machine learning component can be trained to learn from the rich experience of database experts. For example, the collective expertise of a selected group of experienced database experts can be collated to generate a data set / data table that can combine migration scenarios and associated migration technologies to obtain an efficient solution. Subsequently, the data set can be updated based on observed migration experience and feedback can be provided using a machine learning model that can ingest actual migration results and gain intelligence from these results.
[0043] In some embodiments, source database details, migration information, and machine learning models can be used to predict efficient migration paths based on data sets created from input from experienced database experts based on real-time migration. For example, embodiments can include retrieving migration information, using trained machine learning models to predict migration techniques, and collecting feedback to optimize the machine learning model.
[0044] Return to reference Figure 1 The migration information for migrating the source database to the target database may be submitted by a user (represented by submission of migration information 104 ) and / or may be automatically retrieved and submitted by a script (represented by script execution and submission 108 ).
[0045] Example migration information may include:
[0046] Source DB version – Database version of the source DB system
[0047] Platform – Endian format, big or little, or other platform family
[0048] OS Platform – 32 or 64 bit, OS platform (e.g. Linux), or other OS information
[0049] Multi-tenant Compartment – Whether the source DB has CDB enabled, 12c or above, etc.
[0050] NLS compatibility – whether the source and target have the same National Language Support (“NLS”)
[0051] Database Size – The source database size in GB
[0052] Example database sizes:
[0053] Small DB [SDB] (less than 500G)
[0054] Medium DB [MDB] (size 500G to 2TB)
[0055] Large DB [LDB] (2TB to 10TB)
[0056] VLDB[VLDB] (greater than 10 TB)
[0057] Network / Bandwidth - The network bandwidth available to transfer data between the source and destination.
[0058] Target DB Infrastructure - The target cloud infrastructure where the DB will run Example options: IaaS, PaaS / ExaCS
[0059] Target DB Version – Database version on target platform (same / upgraded version)
[0060] Allowed Downtime – The total downtime allowed for the migration. Allowed downtime can be broken down into the following categories:
[0061] Low downtime [LDT] (10 minutes to 3 hours)
[0062] Moderate downtime [HDT] (3 hours to 24 hours)
[0063] Downtime is not constrained [DNC]
[0064] In some embodiments, migration information for candidate database migration may be obtained via a user and / or via a configured script. Figure 1 The migration information may be obtained by submitting 104 of the migration information and / or executing and submitting 108 of the script. In some embodiments, the submission 104 of the migration information may include manually entering the migration information by a user (e.g., entering into a spreadsheet, a web form, a progressive web application, etc.), such as the disclosed example migration information. For example, a user may access a web page (e.g., implemented by the cloud system 110) and provide the migration information in a web form. In another example, a user may fill in a document (e.g., a spreadsheet, a formatted data document, etc.) and upload the document to, for example, the cloud system 110.
[0065] In some embodiments, script execution and submission 108 may include the execution of a script (or any other form of code, such as executable code) configured to retrieve migration information from a source system / source database. For example, a script may be retrieved from a repository 106 (e.g., Github or any other repository) and executed on a source system / source database. The script may retrieve migration information about a source database and a source system that implements the source database. For example, the above migration information (e.g., source database version, platform, OS platform, multi-tenant partitioning, source database size, etc.) related to a source database or source environment may be obtained from a source database and a source system via execution of a script configured to retrieve such information. Script execution and submission 108 may include generating a payload or document with the migration information and transmitting it to a cloud system 110 (e.g., uploading).
[0066] In some embodiments, the repository 106 may provide a service (e.g., for downloading code or scripts). For example, the repository 106 may be Github, and the script may be downloaded from a uniform resource locator ("URL") hosted by the repository. The downloaded script may then be transferred to the source server / machine / system to be evaluated. In other words, the script may be transferred to a component of the source, which inquires about providing migration information related to the candidate database migration (e.g., the machine hosting the source database). In some embodiments, the script may be executed as an administrator and / or database owner. The script may generate an output file with relevant migration information. For example, the output file may include source system and database migration information, target migration information, migration criteria (e.g., downtime, bandwidth, timing), etc. In some embodiments, the output file may be a binary format file. The output file may then be transferred to the system / computing device on the relevant source side, which may then upload the output file to the cloud system 110.
[0067] In some embodiments, submission 104 of migration information may be implemented in conjunction with script execution and submission 108. For example, execution of the script may generate migration information about a source database and source system (as disclosed herein), however other migration information may be manually entered (e.g., target database infrastructure, bandwidth criteria, downtime criteria, etc.), or the migration information generated by the script may be overwritten by manual entry. In some embodiments, the script may be configured to prompt a user for additional migration information. For example, script execution and submission 108 may include user prompts and manual entry of certain pieces of migration information (e.g., target database infrastructure, bandwidth criteria, downtime criteria, etc.). In this embodiment, the payload or document generated by the script and transmitted to the cloud system 110 includes the retrieved information about the source system / database and the manually entered additional migration information.
[0068] In some embodiments, the migration information can be converted to a machine-readable format. For example, the migration information can be converted from a first format (e.g., a human-readable format or alphanumeric) to a machine-readable format (e.g., binary, decimal, hexadecimal, etc.) at the cloud system 110, the server 112, the machine learning model 114, or any other point in the process (e.g., by client code, a client script that is executed to generate the migration information, etc.). In some embodiments, the machine-readable format can be machine-readable data that represents the migration information as 0s and 1s (or other suitable symbols consistent with the decimal, hexadecimal, or other machine-readable format), where the conversion can be performed by using a predetermined conversion technique that converts the migration information into corresponding machine-readable data.
[0069] For example, the data values present for the migration information may be specified as predetermined binary (or other format) values. In some embodiments, each element (e.g., column) of the migration information may have a closed set of predetermined values. For example, OS platform may take a value from a closed list of possible source operating system platforms, CDB may have a value CDB or non-CDB, NLS compatibility may have a value Yes or No, allowed downtime may take a value from a closed list of downtimes (e.g., low, medium, unconstrained), network bandwidth may take a value from a closed list of network bandwidths, etc.
[0070] In some embodiments, the closed list implements a predetermined correspondence between a data value for a piece of migration information and a machine-readable value (e.g., a binary value). For example, when downtime has a closed list of three values (e.g., low, medium, and unconstrained), the predetermined binary mapping for these values may be low downtime corresponds to 010, medium downtime corresponds to 001, and unconstrained downtime corresponds to 100. In another example, the number of operating system platforms in the closed list may be 20, and each of these different data values in the closed list may be mapped to a binary value.
[0071] In some embodiments, a closed list of data values for a piece of migration information (e.g., a column) can be processed so that the data value is specified as a binary value in lexicographic order. In some embodiments, each piece of migration information can be filtered according to various techniques, so a mapping for each piece of migration information can be created in lexicographic order based on the processed / filtered data. In some embodiments, the mapping can create a limiting machine-readable value for each column value. In a given embodiment, the mapping can be fixed so that the input value can be converted and fed into the machine learning model to generate the correct output. Other suitable mappings can be implemented. Therefore, a closed list of data values for each piece of migration information (e.g., a column) enables the migration information to be converted into a simplified form, such as a machine-readable version that is beneficial to machine learning.
[0072] In some embodiments, the closed list for each migration information is extensible. For example, in the case where a new data value becomes available or feasible for a migration information (e.g., a column), the closed list for the value of the information can be expanded. Therefore, a new value can be added to the closed list, thereby creating a new implementation. In some embodiments, multiple new data values may generate the need to add one or more digits to a machine-readable value, which represents a different data value of a migration information. For a simplified example, a migration information may previously use only two different data values, which can be encoded by a single binary bit (e.g., 0 and 1), and adding one or more new values will require adding one digit to the binary data value (e.g., two binary bits, which can represent four values). In some embodiments, a new implementation based on changes to the possible data values for each migration information can prompt changes to the machine learning model and / or training data, such as new mappings between training data values (e.g., alphanumeric values) and machine-readable values (e.g., binary values), retraining or updating training of the model, changes to the model architecture, etc.
[0073] In some embodiments, the machine-readable format (e.g., binary) of the migration information can then be fed into the machine learning model 114, and a migration technology prediction can be generated based on the migration environment represented by the machine-readable migration information. For example, the machine learning model 114 can be trained using a dataset 116, which can include a set of migration information (e.g., features of the training data) and corresponding migration techniques (e.g., labels of the training data). In some embodiments, the dataset 116 can include the same pieces of information (e.g., columns) as the migration information examples disclosed herein (e.g., source DB version, platform, OS platform, source, DB size, target DB infrastructure, allowed downtime, etc.). In some embodiments, the dataset 116 can also include the same closed list of possible data values for each column. The dataset 116 can be used to train the machine learning model 114 based on labels within the dataset or migration techniques used to successfully achieve migration.
[0074] Thus, the machine learning model 114 can learn trends within the data set 116 that associate migration information (representing an environment for migration) with a migration technique. In some embodiments, a predicted migration technique for a candidate database migration can be generated based on the migration information (for a candidate database migration) provided to the machine learning model 114.
[0075] In some embodiments, data set 116 may represent training data used to train machine learning model 114, and the data set may be processed into a machine-readable format (similar to the conversion techniques disclosed herein for converting migration information). For example, when the training data used to train the machine learning model is similar to the input data, the machine learning model may generate predictions for the input data. Thus, when machine learning model 114 is configured and / or trained to generate predictions for a machine-readable version of migration information, the machine learning model has previously been trained using a machine-readable version of data set 116 (or an unsupervised model utilizing a machine-readable version of data set 116).
[0076] In some embodiments, the data values present for each piece of information in the data set 116 may be specified as predetermined binary (or other format) values. In some embodiments, each element (e.g., column) of the data set 116 may have a closed set of predetermined values, similar to the migration information. For example, OS platform may take a value from a closed list of possible source operating system platforms, CDB may have a value CDB or non-CDB, NLS compliant may have a value yes or no, allowed downtime may take a value from a closed list of downtimes (e.g., low, medium, unconstrained), network bandwidth may take a value from a closed list of network bandwidths, etc.
[0077] In some embodiments, as described above with reference to processing migration information, the closed list implements a predetermined correspondence between data values of a column of the data set 116 and a machine-readable value (e.g., a binary value). In some embodiments, the mapping of data values for the migration information to a machine-readable format is consistent with the mapping of data values within the data set 116 to a machine-readable format, so predictions generated based on the migration information (as input) can be accurate. For example, when the converted machine-readable data values of the migration information input to the machine learning model 114 are consistent with the converted machine-readable data values of the data set 116, a prediction that utilizes the trends learned within the data set 116 can be generated. In some embodiments, changes to the mapping are implemented for both the conversion migration information and the conversion data set 116 to maintain consistency. For example, at least because the representative data values may change, changes to the mapping can prompt changes to the format of the data set 116, the closed list of data values for a particular column of the data set 116 can be expanded, and so on. In some embodiments, the machine learning model 114 can be trained, retrained, or updates to the training can be performed based on changes to the data set 116.
[0078] Machine learning can be used to analyze large amounts of data. However, time, resources, and know-how are often required to properly train a machine learning model. An embodiment predicts a migration technique based on migration information (e.g., the environment for the candidate database migration) for a candidate database migration, such as source database information, target infrastructure, platform, database size, etc. This can be viewed as a classification problem (such as classifying an email as 'spam or not spam'), so a classification machine learning algorithm can be used to achieve the prediction. An embodiment utilizes a machine learning algorithm in which multiple features can be used to achieve a prediction of a target value or set of values (e.g., a migration technique).
[0079] For example, embodiments of the machine learning model 114 include one or more learning algorithms. Figure 3 , the machine learning model 114 may include a machine learning component 302. In some embodiments, the machine learning model 114 implements a random forest classifier. The random forest classifier algorithm is an example of ensemble learning. An ensemble algorithm refers to an algorithm that combines more than one algorithm of the same or different types, such as for predictive classification. Because ensemble learning is based on multiple algorithms, the prediction results can usually obtain improved variance (therefore overfitting can be avoided). Overfitting occurs when the model learns details and noise in the training data set to a degree that negatively affects the performance of the model on new data. In other words, the generalization of a trained model that suffers from overfitting on new data or data that has not been used to train the model is not good. Since machine learning models are generally expected to perform well on new data, overfitting reduces the actual benefits of machine prediction.
[0080] Example Random Forest Classifier can create a set of decision trees from a subset of the training data (e.g., a randomly selected subset). The algorithm can then aggregate the predictions or votes from the different decision trees to obtain a final prediction. For example, suppose a training set is given with features [X1, X2, X3, X4]. The Random Forest algorithm can take input from a subset of these features and create three decision trees, such as:
[0081] 1.[X1,X2,X3]
[0082] 2.[X1,X2,X4]
[0083] 3.[X2,X3,X4]
[0084] In this example, each tree uses three of the four features available in the training data. However, training data features are typically numerous, and in some embodiments, each tree uses a small number of features (e.g., 50%, 25%, 10%, 5%, etc.) relative to the features available in the training data. Additionally, when training the three decision trees, the instances of the training data can also be randomly selected. For example, "m" instances of the training data (each having a label for accuracy calculation / node splitting) may be available in the dataset, and each tree can use "k" instances for training, where k < m (in some cases, k << m).
[0085] Then, the algorithm can obtain a prediction based on an aggregation technique (such as using majority voting from each decision tree). The parameters of the random forest classifier can be the total number of decision trees, the parameters related to the decision trees (e.g., the number of features of the tree, the number of leaves for splitting the decision tree nodes, etc.), the aggregation technique (e.g., majority, average, etc.), and other suitable parameters.
[0086] In some embodiments, the machine learning model 114 implements a gradient boosting learning algorithm, such as XGBoost. Gradient boosting, such as the gradient boosting decision tree algorithm, is an ensemble method for learning. Similar to the random forest algorithm, gradient boosting utilizes multiple decision trees, however these trees are constructed sequentially such that each subsequent tree aims to reduce the error of the previous tree. For example, each tree can learn from its predecessor, so the next tree grown in the sequence will learn from an updated version of the residuals (or errors). The base learner (e.g., a single tree in the sequence) is typically a weak learner with high bias, however these weak learners contribute information for downstream predictions. Thus, a gradient boosting algorithm such as XGBoost can achieve a strong learning model by effectively combining weak learners. For example, the final strong learner reduces both the bias and variance experienced by individual weak learner trees.
[0087] In some embodiments, the machine learning model 114 implements logistic regression. Logistic regression, also known as logit regression or logit model, is a mathematical model used in statistics to estimate the likelihood of an event occurring given some prior data. Logistic regression uses binary data, where either the event occurs (1) or the event does not occur (0). Logistic regression is a linear algorithm.
[0088] In some embodiments, machine learning model 114 implements a neural network. For example, a neural network can be trained using a data set 116 (including labels for instances of the training data). Based on the calculated loss, a gradient can be propagated through the neural network to calculate the weights of neurons within the neural network. Once trained, the weights of the neurons can be used to generate predictions given a set of input features (e.g., a machine-readable version of the migration information).
[0089] In some embodiments, the converted machine-readable data (e.g., converted training data and converted migration information or inputs) used to complete the predictions made by the machine learning model 114 can be configured to achieve improved results. For example, some machine learning models suffer from data shortages and therefore require very large data sets to achieve accurate predictions. However, due to the complexity of database migration, high variance in the combination of migration technologies that can be used to complete the migration, the rapid development of migration technologies, and several other factors, the size of some embodiments of the data set 116 (e.g., instances or rows of training data) may be limited. Therefore, some embodiments of the machine learning model 114 avoid deep learning architectures in favor of non-deep learning models.
[0090] In some embodiments, the converted machine-readable data (e.g., the converted training data and the converted migration information or input) can be configured to utilize a subset of machine learning models that are effective for a limited data set to achieve successful predictions. For example, a closed list of data values per column, a numeric representation, and consistency of data values can make it easier for these machine learning models to detect trends in a limited data set. Therefore, the conversion of the machine-readable data format is customized for the environment and machine learning models used in some embodiments.
[0091] Embodiments predict migration technologies for candidate database migration. Migration technologies may include migration methods, migration technologies, one or more database migration products that implement functions for migration, etc. In some embodiments, migration technologies may use methods such as Recovery Manager (RMAN) and Features like Data Guard.
[0092] RMAN is A database-integrated tool that meets the needs of high-performance, manageable backup and recovery. RMAN is designed to provide block-level corruption detection during backup and restore. RMAN can optimize performance and space consumption during backup through file reuse and compression, and can run with backup software systems via the supplied Media Management Library (MML) API.
[0093] RMAN brings rich functionality to a Data Guard configuration, such as online backup, incremental backup, block media recovery, automation of backup management tasks, and integration with third-party media management systems. Together, RMAN and Data Guard enable RMAN backups to be seamlessly offloaded to a physical standby database, allowing customers to get more value from their disaster recovery investment. Because backups can be taken while the standby database is in recovery or read-only mode, backups do not affect normal Data Guard operations. Backups can be used to recover either the primary or standby database server. Together, Data Guard and RMAN provide a reliable and tightly integrated solution to achieve improved levels of database availability, supporting applications with high availability requirements. Both Data Guard and RMAN are A fully supported feature of Oracle Database Enterprise Edition (RMAN is also provided with Oracle Database Standard Edition).
[0094] Therefore, different migration techniques may utilize different software capabilities, computing resource levels, bandwidth, etc. The combination of migration techniques used is based on the environment (represented by the migration information) used for the migration. Example migration techniques may include:
[0095] Recovery Manager ("RMAN") Cross-Platform Incremental Transportable Tablespaces
[0096] Recovery Manager (RMAN) is a database client that performs backup and recovery tasks on a database and automatically manages backup strategies. When using RMAN to incrementally transport tablespaces across platforms, RMAN converts the data being transferred to the format of the target platform (e.g., byte order format).
[0097] For example, in some implementations, the first step may be to copy a full backup from the source to the destination. Then, by using a series of incremental backups (each smaller than the previous one), the data at the target system can be kept nearly synchronized with the source system, thereby minimizing downtime. For example, this process may experience downtime during the final incremental backup and metadata export / import.
[0098] Hybrid Data Guard from OnPremise to Cloud Infrastructure DB Systems
[0099] Data Guard enables and automates the management of disaster recovery solutions, such as for Databases. Data Guard may include a production database (also called a primary database) and one or more standby databases, which may be transactionally consistent copies of the production database.
[0100] Golden Gate Real-time Replication
[0101] · GoldenGate is a comprehensive software package for real-time data integration and replication in heterogeneous environments. The product set implements high availability solutions, real-time data integration, transactional change data capture, data replication, transformation, and verification between operational and analytical enterprise systems.
[0102] RMAN restore and recovery from full backup
[0103] · Recovery Manager (RMAN) provides a comprehensive foundation for efficiently backing up and restoring databases. It is designed to provide block-level corruption detection during backup and restore. RMAN optimizes performance and space consumption during backups through file multiplexing and backup set compression, and works with Integrate with secure backup and third-party media management products.
[0104] RMAN Active Copy
[0105] Active database replication can replicate the active target database to the secondary destination over the network and then create a replicated database. When compared to other migration techniques, one difference is that no pre-existing RMAN backups and replicas are required. The replication work is performed through the secondary channel. The channel corresponds to the server session on the secondary instance on the secondary host.
[0106] MV2OCI: Move data to Oracle Cloud Database with one click
[0107] ·Moving to autonomous database (MV2ADB) is (e.g. using Data Pump is a tool that loads data from an "on-premises" database into the Autonomous Database Cloud. Data Pump Import can load data from a Data Pump file (e.g. In some implementations, you can use "mv2adb"
[0108] Save data to cloud object storage and load to autonomous database cloud.
[0109] Unplug and plug physical databases ("PDBs")
[0110] Unplug / plug migrations can be used to migrate PDB databases (e.g. Database 12c PDB) to PDB database (for example, on a database service database deployment database 12c database). When the local database and This migration technique can be used when the cloud infrastructure database service database has compatible database character sets and national character sets.
[0111] Unplugging and plugging non-container databases ("non-CDBs")
[0112] Unplug / plug migrations can be used to migrate non-CDB databases (e.g.
[0113] Database 12c non-CDB database) to a PDB database (for example, on a database service database deployment database 12c database). When the local database and This migration technique can be used when the cloud infrastructure database service database has compatible database character sets and national character sets.
[0114] Remotely clone a physical database ("PDB")
[0115] The remote clone migration technique can be used to migrate a PDB from a local database (e.g. 12c database) to a PDB (for example, This migration technique can be used when the database service database has compatible database character sets and national character sets.
[0116] Zero Downtime ("ZDM") Utility
[0117] Zero downtime migration can be used to migrate a database with minimal downtime. For example, the utility can be used to migrate a database with minimal downtime. Active Data Guard technology to local database and Migrate to Cloud Infrastructure Classic Instance Cloud infrastructure, Exadata Cloud at customer premises, and Exadata Cloud Services without significant downtime.
[0118] Zero downtime migration can use mechanisms such as the following to back up the source database to Cloud Infrastructure Object Storage, creating a standby database from backup in the target environment (with Data Guard maximum performance protection mode and asynchronous (ASYNC) redo transport mode), synchronize the source and target databases, and switch over to the target database as the primary database.
[0119] Zero downtime migration enables rollback after the database migration is complete. The local database can become the primary database, while the local database can become the standby database. Zero downtime migration can also support offline (backup and restore) migration.
[0120] Remote cloning (non-CDB)
[0121] Remote cloning (non-CDB) can be used to clone non-CDB databases (e.g. Database 12c non-CDB local database) is copied to the PDB database (for example, PDB in database 12c database).
[0122] Remote cloning (non-CDB) can be used if the local database and the database service database have compatible database character sets and national character sets.
[0123] Data Pump General Export and Import
[0124] Data Pump General Export and Import can be used to migrate a local source database, tablespace, schema, or table to a database on a Database Services database deployment.
[0125] Data Pump is fully transportable
[0126] Data Pump fully transportable migration technology can copy an entire database from a local host to a database on a Database Services database deployment.
[0127] Data Pump Transportable Tablespaces
[0128] Because the data files containing the actual data are simply copied to the destination location, the transportable tablespace migration technique is generally faster than a conventional export /
[0129] Importing is faster. Data Pump can be used to transfer metadata of tablespace objects to the new database.
[0130] When the database character set of the local database is When the database character sets of the cloud infrastructure database service database are compatible, you can use the transportable tablespace migration technology.
[0131] RMAN active replication for PDB
[0132] Active database replication copies the active target database to the secondary destination over the network and then creates a duplicate database. Unlike other migration techniques, no pre-existing RMAN backups and replicas are required. The replication work can be performed over the secondary channel. The channel corresponds to the server session on the secondary instance on the secondary host. You can use the RMAN DUPLICATE command and use the PLUGGABLEDATABASE clause to replicate a pluggable database.
[0133] RMAN can transfer PDB across platforms
[0134] When the database character set of the local database and the database service database are compatible, you can use RMAN to transport PDBs across platforms.
[0135] RMAN Cross-Platform Transportable Tablespace ("TTS") Backup Sets
[0136] You can use RMAN cross-platform transportable tablespace backup sets when the database character set of the local database and the database service database are compatible and the operating systems are compatible (for example, in separate byte order). Migrate the local tablespace of database 12c to the database service deployment Database 12c database. RMAN transportable tablespace using data pump
[0137] You can use RMAN transportable tablespaces using Data Pump when the database character set of the local database and the database service database are compatible.
[0138] RMAN transportable tablespaces using Data Pump can be used to eliminate placing tablespaces in read-only mode as required by the Data Pump transportable tablespace migration technique, which can be used to migrate a local source database to a database deployment on a database service.
[0139] RMAN Transform Transportable Tablespace Using Data Pump
[0140] The migration technique is similar to the Data Pump Transportable Tablespace technique, with the addition of the RMANCONVERT command to accommodate different platforms (e.g., endian implementations)
[0141] The query V$TRANSPORTABLE_PLATFORM can be used to determine whether the local database platform supports cross-platform tablespace transport and to determine the platform's endian format.
[0142] Refreshable PDB switching
[0143] Refreshable PDB switchover can be used to switch the roles of source PDB and refreshable PDB. Database Configuration Assistant ("DBCA") PDB cloning
[0144] Represented by a pluggable database (PDB) in a multitenant container database (CDB) Multi-tenant architecture is common to Database deployment. DBCA PDB cloning is a feature based on the Database Configuration Assistant (DBCA) that implements GUI-based PDB cloning, such as creating multiple PDBs. PDB cloning can help create a large number of identical PDBs for testing and development purposes.
[0145] Other suitable migration techniques may also be used. Various migration techniques may be appropriate in certain migration environments, for example based on the platforms used for the source and target, resource availability, downtime constraints, cost, and other factors. For example, using a mixture of these migration techniques can optimize migration by reducing costs, increasing resource efficiency, reducing overhead, complying with downtime constraints, and generally by providing a migration service level that corresponds to the specific environment of the migration. An embodiment utilizes trends learned from a migrated data set (e.g., training data) to predict which migration techniques are suitable for a particular candidate migration, thereby providing an optimized migration experience.
[0146] In some embodiments, a predictive migration method can be used to complete database migration. For example, a database can be copied, a disaster recovery database can be utilized for migration, tablespaces can be moved, any or many of the disclosed migration techniques can be implemented, and any other suitable migration techniques can be implemented to complete database migration. In other words, in some embodiments, a predictive migration technique can be used to physically complete database migration from a source system to a target system.
[0147] In some embodiments, feedback regarding one or more of the predicted migration techniques (or generally regarding the execution of candidate database migrations) may be used to improve the effectiveness of machine learning predictions. Figure 4 A system for receiving feedback to improve a machine learning model according to an example embodiment is shown. System 400 includes a user device 402, a feedback submission 404, a cloud system 406, a server 408, a feedback storage 410, a feedback processing 412, and a data set 414. For example, user device 402 can be used to provide feedback 404 to cloud system 406. In some embodiments, feedback about the execution of a database migration can be provided, such as by entering information on a web page (e.g., using a web form), entering information on a progressive web application, uploading a document (e.g., a spreadsheet or data document), or by other suitable means to provide feedback to cloud system 406.
[0148] In some embodiments, the feedback may include information about timing (e.g., source database to target migration time), downtime (e.g., amount of time the database is unavailable), bandwidth (e.g., data usage), criteria compliance (e.g., downtime criteria, bandwidth criteria compliance, etc.), work time (e.g., number of hours required to manually resolve the problem), etc. In some embodiments, migration information for a given database migration is provided through feedback. For example, the feedback may reflect that a predicted migration technique for a candidate database migration was implemented and report whether the predicted migration technique satisfies the constraints of the candidate database migration. In some embodiments, the feedback may indicate that the predicted migration technique performs well from a timing and computing resource perspective, but is too costly for the environment of the migration. In some embodiments, the feedback may indicate that the predicted migration technique is replaced with another migration technique based on an analysis by a human expert that the predicted migration technique will not perform well. In some embodiments, the feedback may be transmitted to the server 408. The feedback storage 410 may store feedback for various database migrations over time.
[0149] In some embodiments, the stored feedback can be processed (e.g., after criteria such as a time period or amount of feedback received are met). Feedback processing 412 can include processing the feedback to generate instances (e.g., rows) of training data, which include migration information for a given database migration and migration methods for successfully performing the migration. In some embodiments, the feedback can be reviewed to determine whether the migration was successful, and therefore whether instances of training data should be added. For example, in the event that the performed migration does not meet the downtime criteria, the feedback can be discarded rather than added to the training data. The feedback can indicate whether the downtime criteria and other migration criteria (e.g., duration criteria, working hours criteria) are met, and in some embodiments, the migration can be considered successful when the feedback indicates that the migration criteria have been met. In some embodiments, feedback related to a migration using a migration technique that does not meet the migration criteria can be used to update the training data.
[0150] In some embodiments, the processed feedback can be used to update the data set 414. For example, the data set 414 can include training data with migration information and instances of migration techniques used to perform the migration. In the case where the feedback indicates a successful migration (e.g., meeting downtime criteria, timing criteria, working time criteria), the feedback can be processed to generate instances of training data and update the data set 414. In some embodiments, in the case where the feedback indicates that the migration does not meet certain migration criteria, the data set 414 can be pruned to remove instances of similar migration information and migration techniques. For example, a distance metric can be used to calculate the distance between the migration that does not meet the criteria and the instance of the training data, and one or more instances of training data that cause the distance metric to be below a threshold criterion can be pruned from the data set 414.
[0151] In some embodiments, feedback about migrations that do not meet criteria can be stored over time, and when a certain number of similar migrations indicate that the criteria are not met, pruning of data set 414 can occur. For example, a distance index can indicate the similarity between migrations. The distance index can be calculated for a migration set that receives feedback indicating that one or more migration criteria are not met, and similar migrations can be found when the calculated distance is below a threshold. When the number of similar migrations that do not meet one or more criteria according to stored feedback exceeds a threshold number (or meets some other feedback criteria), data set 414 can be pruned of similar migrations. In some embodiments, pruning includes removing some (not all) similar migrations from data set 414.
[0152] Embodiments that incorporate feedback capture actual migration results to enhance the machine learning model used for predictive migration techniques. This results in a continuous learning process that can ensure that the predicted migration techniques will continue to be successful in the long term. In other words, new migration techniques and migration criteria (e.g., constraints) can be incorporated and their effects calibrated in the algorithm. Embodiments of predictive database migration techniques are flexible and robust, in that new techniques, migration criteria, or migration information can be added over time and successful predictions can continue to be generated under changing circumstances.
[0153] Figure 5 A flow chart for generating machine learning predictions for database migration according to an example embodiment is shown. In one embodiment, Figure 5 (and the following Figure 6 ) is implemented by software stored in a memory or other computer-readable or tangible medium and executed by a processor. In other embodiments, each function may be performed by hardware (e.g., by using an application specific integrated circuit (“ASIC”), a programmable gate array (“PGA”), a field programmable gate array (“FPGA”), etc.), or any combination of hardware and software.
[0154] At 502, a machine learning model may be trained using training data, wherein the training data includes migration information for a plurality of database migrations and a migration method for the plurality of database migrations, and the migration information includes a source database type and a target database infrastructure. For example, the machine learning model may include a neural network, a random forest classifier, an enhanced gradient algorithm, a regression form, or any other suitable machine learning model. The machine learning model may use an integrated learning form that aggregates predictions from a plurality of machine learning components.
[0155] In some embodiments, the training data includes migration information for a given database migration and an instance of a migration method for a given database migration, the migration method being a label for the training data. The migration method may include one or more of database replication, pluggable database implementation, disaster recovery switchover, database cloning, and data pump conventional export and import. In some embodiments, the migration information for database migration from the training data includes source database size, bandwidth criteria, and downtime criteria.
[0156] At 504, a script may be executed on a computing device implementing a source database to generate database migration information for a candidate database migration. For example, a script configured to retrieve source migration information from a source system (e.g., a computing device hosting a source database) may be downloaded and executed on the source system.
[0157] At 506, migration information for candidate database migration can be received. For example, the migration information can be generated by an executed script. In some embodiments, the migration information can be entered by a user (e.g., on a web page, on a progressive web application, or when executing a script) or uploaded by a user. In some embodiments, the migration information is generated by both executing a script to retrieve source system information and manually input by a user.
[0158] In some embodiments, the received migration information can be converted to a machine-readable form (e.g., binary or hexadecimal). For example, a predetermined conversion technique can be used to generate a machine-readable version of the received migration information. In some embodiments, the migration information for the candidate database migration can be converted to a machine-readable format, where the migration information can be mapped to the machine-readable format data using a predetermined mapping based on a closed list of data values for the migration information.
[0159] At 508, the trained machine learning model can be used to predict a migration method for the candidate database migration based on the migration information. For example, the machine learning model can be trained to learn trends within a data set of instances of training data, where the instances associate migration information with migration methods. Based on these learned trends, the trained machine learning model can use the received migration information to predict a migration method for the candidate database migration. In some embodiments, the trained machine learning model is fed the transformed migration information or a machine-readable version (e.g., binary) of the migration information to generate a prediction.
[0160] In some embodiments, the machine learning model includes an integrated machine learning model that aggregates multiple predictions from a trained machine learning model set. For example, the migration information includes a migration feature set that can be segmented into multiple subsets of migration features, and the trained machine learning model set is configured to receive the subsets of migration features and generate multiple predictions. In some embodiments, the machine learning model set is configured to receive different migration feature sets to generate predictions.
[0161] Figure 6 A flow chart for receiving feedback to improve a machine learning model according to an example embodiment is shown. At 602, feedback information including a migration result associated with a predicted migration method for a candidate database migration is received. The feedback information may include the results of the migration (e.g., duration, downtime, compliance with downtime criteria, compliance with duration criteria, working hours, etc.) and the migration method or technique used to complete the candidate migration. For example, the feedback may reflect that the predicted migration method was implemented and report whether the predicted migration method meets the constraints of the migration. In some embodiments, the feedback may indicate that the predicted migration method performs well from a timing and computing resource perspective, but is too costly for the environment of the migration. In some embodiments, based on an analysis by a human expert (the analysis suggests that the predicted migration method will not perform well), the feedback may predict that the migration method is replaced with another migration method.
[0162] At 604, feedback information about multiple migrations using various migration methods can be received over time. For example, the feedback can include migration information for the migration and the migration method used to implement the migration. In some embodiments, the feedback information indicates whether the migration method used was successful. The feedback for multiple migrations can be similar to the feedback for the candidate database migration.
[0163] At 606, the feedback information for the candidate database migration can be processed to generate an instance of the training data. For example, when the feedback information for the candidate database migration indicates that it meets the migration criteria (e.g., downtime criteria, duration criteria, working time criteria), the migration method can be considered a success for the migration information corresponding to the candidate database migration. Therefore, the migration information and the migration method for the candidate database migration can be processed to generate an instance of the training data.
[0164] In some embodiments, multiple feedbacks for database migration can be processed. For example, where the feedback indicates compliance with the migration criteria for a migration set, the migration information and migration methods for the migrations in the set can be processed to generate instances of training data. In some embodiments, when the feedback provided indicates that the migration does not meet the migration criteria, the instance of training data is not added.
[0165] At 608, the training data can be updated using instances of the training data generated using the processed feedback. At 610, the machine learning model can be retrained using the updated training data.
[0166] Embodiments use trained machine learning models to predict migration techniques for database migration. For example, a database migration, such as migration from a local computing device to a cloud computing system, can be implemented using a plurality of different techniques and combinations of techniques, such as database replication, cloning, pluggable database implementations, and other techniques. Some of these database migration techniques may be more effective than others based on the environment used for the migration, such as the source database implementation / type, the target database infrastructure, downtime criteria, bandwidth criteria, and other circumstances. For example, an expert can typically select a migration technique based on experience.
[0167] Embodiments use a trained machine learning model to predict database migration techniques based on the environment of a given migration. For example, training data may include information for a database migration and techniques for implementing the migration (e.g., techniques that are considered successful given the environment of the migration). The training data may be used to train a machine learning model, where the training may configure the model to learn trends in the data. In this way, the trained model may effectively predict migration techniques that will be effective given the set of environments for the database migration. In other words, candidate database migrations may be fed into a trained machine learning model, and predictions of migration techniques may be generated based on learned trends within the training data.
[0168] The features, structures, or characteristics of the present disclosure described throughout the specification may be combined in any suitable manner in one or more embodiments. For example, throughout the specification, the use of "one embodiment," "some embodiments," "an embodiment," "certain embodiments," or other similar language refers to the fact that a particular feature, structure, or characteristic described in conjunction with an embodiment may be included in at least one embodiment of the present disclosure. Therefore, throughout the specification, the appearance of the phrases "one embodiment," "some embodiments," "an embodiment," "certain embodiments," or other similar language does not necessarily all refer to the same group of embodiments, and the described features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.
[0169] Those skilled in the art will readily appreciate that the embodiments described above may be practiced by steps in different orders and / or with elements in configurations different from those disclosed. Therefore, although the present disclosure contemplates the embodiments outlined, it is clear to those skilled in the art that certain modifications, variations, and alternative configurations will be apparent while remaining within the spirit and scope of the present disclosure. Therefore, in order to determine the limits of the present disclosure, reference should be made to the appended claims.
Claims
1. A method for generating machine learning predictions for database migration, the method comprising: storing an integrated machine learning model, the integrated machine learning model comprising a set of trained machine learning models that have been trained using training data, wherein the training data comprises migration information for a plurality of database migrations and a migration method for the plurality of database migrations, and the migration information in the training data comprises a source database type and a target database infrastructure; receiving migration information for candidate database migration, the migration information for the candidate database migration including a source database type and a target database infrastructure; and using the set of trained machine learning models, predicting a migration method based on the migration information for the candidate database migration, The training data includes migration information for a given database migration and an instance of a migration method for the given database migration, the migration method includes a label for the training data, and The migration method includes one or more of database replication, pluggable database implementation, disaster recovery switching, database cloning, and data pump conventional export and import.
2. The method according to claim 1, wherein: The migration information for migration of the candidate database is generated by a script executed on a computing device implementing the source database.
3. The method according to claim 1, wherein: The migration information for the plurality of database migrations and the migration information for the candidate database migration include source database size, bandwidth criteria, and downtime criteria.
4. The method according to claim 1, further comprising: receiving feedback information, the feedback information comprising a migration result associated with a predicted migration method for migrating the candidate database; processing the feedback information to generate instances of training data; generating updated training data based on the database migration, the migration method for the database migration, and the feedback information including the results associated with the migration method for the database migration, the updated training data including the processed feedback information and a plurality of additional processed feedback information; as well as Retrain the integrated machine learning model using the updated training data.
5. The method according to claim 1, wherein: The predicted migration method is generated by aggregating multiple predictions from the set of trained machine learning models.
6. The method according to claim 5, wherein: The migration information in the training data includes a set of migration features, the set of migration features is segmented into a plurality of subsets of migration features, and the set of trained machine learning models is configured to receive the subsets of migration features and generate the plurality of predictions.
7. The method according to claim 6, wherein: The set of trained machine learning models is configured to receive different sets of migration features to generate predictions.
8. The method according to claim 1, further comprising: converting the migration information for the candidate database migration into a machine-readable format, wherein the migration information for the candidate database migration is mapped to the machine-readable format data using a predetermined mapping based on a closed list of data values of the migration information for the candidate database migration; and A migration method for the candidate database migration is predicted based on the transformed migration information using the set of trained machine learning models.
9. A non-transitory computer readable medium having instructions stored thereon, which when executed by a processor, cause the processor to generate a machine learning prediction for database migration, wherein: The instructions, when executed, cause the processor to: storing an integrated machine learning model, the integrated machine learning model comprising a set of trained machine learning models that have been trained using training data, wherein the training data comprises migration information for a plurality of database migrations and a migration method for the plurality of database migrations, and the migration information in the training data comprises a source database type and a target database infrastructure; receiving migration information for candidate database migration, the migration information for the candidate database migration including a source database type and a target database infrastructure; and using the set of trained machine learning models, predicting a migration method based on the migration information for the candidate database migration, The training data includes migration information for a given database migration and an instance of a migration method for the given database migration, the migration method includes a label for the training data, and The migration method includes one or more of database replication, pluggable database implementation, disaster recovery switching, database cloning, and data pump conventional export and import.
10. The computer-readable medium of claim 9, wherein: The migration information for migration of the candidate database is generated by a script executed on a computing device implementing the source database.
11. The computer-readable medium of claim 9, wherein: When the instructions are executed, the processor: receiving feedback information, the feedback information comprising a migration result associated with a predicted migration method for migrating the candidate database; processing the feedback information to generate instances of training data; generating updated training data based on the database migration, the migration method for the database migration, and the feedback information including the results associated with the migration method for the database migration, the updated training data including the processed feedback information and a plurality of additional processed feedback information; as well as Retrain the integrated machine learning model using the updated training data.
12. The computer-readable medium of claim 9, wherein: The predicted migration method is generated by aggregating multiple predictions from the set of trained machine learning models.
13. The computer-readable medium of claim 12, wherein: The migration information in the training data includes a migration feature set that is segmented into a plurality of subsets of migration features, and the set of trained machine learning models is configured to receive the subsets of migration features and generate the plurality of predictions.
14. The computer-readable medium of claim 13, wherein: The set of trained machine learning models is configured to receive different sets of migration features to generate predictions.
15. The computer-readable medium of claim 9, further comprising: converting the migration information for the candidate database migration into a machine-readable format, wherein the migration information for the candidate database migration is mapped to the machine-readable format data using a predetermined mapping based on a closed list of data values of the migration information for the candidate database migration; and A migration method for the candidate database migration is predicted based on the transformed migration information using the set of trained machine learning models.
16. A system for generating machine learning predictions for database migration, the system comprising: processor; as well as A memory storing instructions executed by the processor, wherein the instructions configure the processor to: storing an integrated machine learning model, the integrated machine learning model comprising a set of trained machine learning models that have been trained using training data, wherein the training data comprises migration information for a plurality of database migrations and a migration method for the plurality of database migrations, and the migration information in the training data comprises a source database type and a target database infrastructure; receiving migration information for candidate database migration, the migration information for the candidate database migration including a source database type and a target database infrastructure; and using the set of trained machine learning models, predicting a migration method based on the migration information for the candidate database migration, The training data includes migration information for a given database migration and an instance of a migration method for the given database migration, the migration method includes a label for the training data, and The migration method includes one or more of database replication, pluggable database implementation, disaster recovery switching, database cloning, and data pump conventional export and import.
17. The system of claim 16, wherein: The migration information for migration of the candidate database is generated by a script executed on a computing device implementing the source database.
18. The system of claim 16, wherein: The migration information for the plurality of database migrations and the migration information for the candidate database migration include source database size, bandwidth criteria, and downtime criteria.
19. The system of claim 16, wherein: When the instructions are executed, the processor: receiving feedback information, the feedback information comprising a migration result associated with a predicted migration method for migrating the candidate database; processing the feedback information to generate instances of training data; generating updated training data based on the database migration, the migration method for the database migration, and the feedback information including the results associated with the migration method for the database migration, the updated training data including the processed feedback information and a plurality of additional processed feedback information; as well as Retrain the integrated machine learning model using the updated training data.
20. The system of claim 16, wherein: The predicted migration method is generated by aggregating multiple predictions from the set of trained machine learning models.
21. The system of claim 20, wherein: The migration information in the training data includes a set of migration features, the set of migration features is segmented into a plurality of subsets of migration features, and the set of trained machine learning models is configured to receive the subsets of migration features and generate the plurality of predictions.
22. The system of claim 21, wherein: The set of trained machine learning models is configured to receive different sets of migration features to generate predictions.
23. The system of claim 16, wherein: When the instructions are executed, the processor: converting the migration information for the candidate database migration into a machine-readable format, wherein the migration information for the candidate database migration is mapped to the machine-readable format data using a predetermined mapping based on a closed list of data values of the migration information for the candidate database migration; and A migration method for the candidate database migration is predicted based on the transformed migration information using the set of trained machine learning models.
24. A computer program product comprising instructions which, when executed by a computer, cause the computer to perform the method according to any one of claims 1 to 8.
Citation Information
Patent Citations
Database modeling and analysis
US20150019197A1
Framework for providing recommendations for migration of a database to a cloud computing system
US20200005136A1