En el mundo de DevOps, hay algunas situaciones en las que necesita tener una forma de transferir datos desde diferentes Bases de datos de Azure SQL.
Para examenA modo de ejemplo, digamos que tiene un cliente que borró inadvertidamente una gran cantidad de registros de una tabla en la base de datos de producción. Con la ayuda del Copias de seguridad en un momento determinado, podríamos restaurar la base de datos a un punto anterior en el tiempo en el que aún existen esos registros. Este procedimiento creará una nueva base de datos con el contenido restaurado y después podríamos intercambiar nombres entre estas bases de datos renombrándolas. A pesar de esto, hay una salvedad de realizar esta acción. La base de datos restaurada perderá todo el historial de un punto en el tiempo de la base de datos original.
Un mejor enfoque sería restaurar los registros eliminados a la base de datosUna base de datos es un conjunto organizado de información que permite almacenar, gestionar y recuperar datos de manera eficiente. Utilizadas en diversas aplicaciones, desde sistemas empresariales hasta plataformas en línea, las bases de datos pueden ser relacionales o no relacionales. Su diseño adecuado es fundamental para optimizar el rendimiento y garantizar la integridad de la información, facilitando así la toma de decisiones informadas en diferentes contextos.... original. A pesar de esto, esto no es tan simple como las bases de datos regulares de SQL Server. Ambas bases de datos no pueden verse entre sí inclusive si están en el mismo servidor y, a modo de ejemplo, no puede utilizar Servidores vinculados en Azure SQL para conectarlos.
Podría tener la opción de exportar esos registros a scripts SQL, pero inclusive entonces, hay algunos casos en los que la cantidad de datos a restaurar es muy grande, por lo que crear esos scripts no sería la mejor manera de solucionar este problema.
Aquí es donde Consultas elásticas ven al rescate:
Con esta tecnología, podríamos administrar fácilmente los datos que entran y salen de nuestras bases de datos.
requerimientos
Tutorial
Imaginemos que el cliente trunca todos los registros del año 2016 del Estimados tabla en nuestra base de datos de facturas.
El primer paso debe ser conectarse al Portal de Azure y realizar una restauración en un momento determinado del facturas en la nube base de datos a partir de una fecha y hora en las que aún existen esos registros. Restauraremos esto en una base de datos llamada facturas2016.
Estos serían los pasos que debemos realizar para restaurar esos registros:
Crear una clave maestra de base de datos y credenciales de ámbito
El llave maestra funcionará como una «bóveda» para guardar las credenciales en la base de datos y el credenciales con ámbito son las credenciales de la base de datos que se utilizarán para conectarse a su base de datos restaurada.
Sintaxis:
CREAR ENCRIPTACIÓN DE LLAVE MAESTRA POR CONTRASEÑA = ‘contraseña’;
CREAR CREDENCIAL DE BASE DE DATOS
Ejemplo:
CREAR ENCRIPTACIÓN DE LLAVE MAESTRA POR CONTRASEÑA = ‘p @ ssw0rd’;
CREAR CREDENCIAL ALCANCE DE LA BASE DE DATOS dbCredential CON IDENTIDAD = ‘usuario01’, SECRETO = ‘p @ ssw0rd’;
Crea la fuente de datosUna "fuente de datos" se refiere a cualquier lugar o medio donde se puede obtener información. Estas fuentes pueden ser tanto primarias, como encuestas y experimentos, como secundarias, como bases de datos, artículos académicos o informes estadísticos. La elección adecuada de una fuente de datos es crucial para garantizar la validez y la fiabilidad de la información en investigaciones y análisis.... externa
El fuente de datos externa es donde establecemos los parámetrosLos "parámetros" son variables o criterios que se utilizan para definir, medir o evaluar un fenómeno o sistema. En diversos campos como la estadística, la informática y la investigación científica, los parámetros son fundamentales para establecer normas y estándares que guían el análisis y la interpretación de datos. Su adecuada selección y manejo son cruciales para obtener resultados precisos y relevantes en cualquier estudio o proyecto.... junto con la credencial creada previamente para permitir la conexión entre bases de datos.
Sintaxis:
CREAR FUENTE DE DATOS EXTERNA
(
TIPO = RDBMS,
UBICACIÓN = ‘
DATABASE_NAME = ‘
CREDENCIAL =
)
Ejemplo:
CREAR FUENTE DE DATOS EXTERNA restaurada Base de datos CON
(
TIPO = RDBMS,
UBICACIÓN = ‘cloudinvoices.database.windows.net’,
DATABASE_NAME = ‘facturas2016’,
CREDENCIAL = dbCredential
);
Crea las tablas externas
Debes prestar atención que mesas externas son extensiones de la base de datos externa. Piense en ellos como tablas vinculadas. Lo que significa que no podemos tener dos tablas con el mismo nombre en nuestra base de datos de producción, inclusive si una es una tabla normal y la otra es una tabla externa.
En nuestro ejemplo, si queremos conectarnos al Estimados tabla en la base de datos restaurada, necesitaríamos cambiarle el nombre primero (a modo de ejemplo, Estimaciones 2016 ) para que no ingrese en conflicto con el existente.
Sintaxis:
sp_rename ‘nombre_objeto’, ‘nuevo_nombre’;
Ejemplo: en la base de datos restaurada:
sp_rename ‘Estimaciones’, ‘Estimaciones2016’;
Ahora podemos crear nuestra tabla externa:
Sintaxis:
CREAR MESA EXTERNA [table_name] (
{
)
{CON (
)
Ejemplo:
CREAR MESA EXTERNA [Estimates2016] (
[EstimateId] identificador único NO NULO,
[ClientId] int NO NULO,
[Year] int NO NULO,
[Amount] decimal NO NULO
)
CON (
FUENTE_DATOS = base de datos restaurada
);
Después de realizar los pasos necesarios para crear la conectividad entre ambas bases de datos, podemos hacer el trabajo real necesario para restaurar los registros faltantes. A modo de ejemplo:
INSERTAR EN ESTIMACIONES
SELECCIONE * DE ESTIMADOS 2016 DONDE AÑO = 2016;
Al terminar esta tarea debemos hacer una limpieza:
DROP EXTERNAL TABLE Estimates2016;
SOLTAR FUENTE DE DATOS EXTERNOS restoreDatabase;
DROP DATABASE SCOPED CREDENCIAL dbCredential;
CAER LLAVE MAESTRA;
¡Eso es! Espero que encuentre útil esta nueva tecnología para este tipo de escenarios. Tenga en cuenta que esto podría ayudarlo en muchos más casos: consultar bases de datos externas, consultas entre bases de datos para particiones horizontales ( fragmentación ), consultar varias bases de datos para generar informes en PowerBI, etc.
Más información sobre consultas elásticas:
Nos vemos en la próxima publicación. Nunca dejes de aprender.