Otros

¡ Seguimos Creciendo !

Esta semana hemos estrenado nuestros nuevos canales de Instagram, Youtube y Tiktok.

El contenido en Instagram y Tiktok será más dinámico, pero basado en lo que hablamos aquí. Ya sabéis que, a veces, también uso las redes para desvelaros avances de lo que vamos a tener en el blog.

En Youtube vamos a ir generando poco a poco contenido más extenso y no necesariamente relacionado con los artículos del canal. Tengo intención de generar contenido básico y más práctico que lo que tratamos pero habrá varios formatos en modo serie que ya os iré contando.

Visítanos, suscríbete a todos y no te pierdas nada. Y por supuesto, si tienes alguna sugerencia puedes dejarla en comentarios.

Publicado por Roberto Carrancio en Otros, 0 comentarios

Trabajadores de datos

En este blog hemos hablado de qué significa ser DBA, la mayoría aquí lo somos pero, ¿sabías que hay muchas más formas de trabajar con datos? Desde desarrolladores, analistas, operarios, arquitectos, consultores, arquitectos de datos, científicos de datos y más, cada uno tiene un rol importante y unas habilidades específicas. A lo largo de nuestra carrera nos vamos a encontrar con compañeros en distintos roles que hacen un uso de las bases de datos de manera distinta. Aunque no sea nuestro rol, es importante conocer qué hacen para poder darles siempre las mejores soluciones así que vamos a ello.  Veamos en qué consiste cada uno de estos perfiles y qué hacen en su día a día.

Administradores de bases de datos

Somos nosotros y, como ya vimos, somos los responsables de mantener el funcionamiento, la seguridad y el rendimiento de las BBDD. Nos encargamos de instalar, configurar, actualizar, hacer copias de seguridad, restaurar y monitorear los sistemas de gestión de bases de datos (SGBD) como MySQL, Oracle, SQL Server, etc. También resolvemos problemas técnicos, gestionamos el acceso de los usuarios y garantizamos el cumplimiento de las normas y políticas de la organización. Te recomiendo el artículo tareas de un DBA.

Dentro de este grupo, podemos distinguir entre DBA junior y senior. Los primeros suelen tener menos experiencia y responsabilidad, y se ocupan de tareas más sencillas como la instalación, la configuración y el mantenimiento básico de las BBDD. Los segundos tienen más experiencia y responsabilidad, y se ocupan de tareas más complejas como la optimización, la seguridad y la recuperación de las BBDD.

Arquitectos de bases de datos

Son el siguiente nivel. Son los expertos en diseñar la estructura, el modelo y la arquitectura de las BBDD así como de la infraestructura que la aloja. Definen las entidades, las relaciones, las restricciones, los índices y las claves que componen el esquema lógico y físico de las BBDD. También determinan los requisitos técnicos, funcionales y no funcionales que debe cumplir el sistema. Serán los encargados de diseñar soluciones de alta disponibilidad cumpliendo con los requisitos de negocio. Además, establecen las mejores prácticas, estándares y metodologías para el desarrollo e implementación de las bases de datos.

Desarrolladores de bases de datos

Son los encargados de diseñar, crear y modificar las BBDD según las necesidades de los clientes o los proyectos. Utilizan lenguajes de programación como SQL, PL/SQL, Java, Python, etc. para crear consultas, funciones, procedimientos almacenados, triggers, vistas y otros objetos que permiten manipular y analizar los datos. También deben optimizar el código (muchas veces con nuestra ayuda), depurar errores y documentar su trabajo.

Consultores de bases de datos

Son los profesionales que ofrecen asesoría externa a las organizaciones sobre cómo mejorar el uso y la gestión de sus BBDD. Analizan las necesidades del cliente, evalúan el estado actual del sistema, proponen soluciones a medida e implementan cambios o mejoras. También brindan capacitación y soporte técnico a los usuarios. Suelen tener amplios conocimientos sobre diferentes tipos de BBDD y experiencia en diversos sectores o industrias. Existen consultores tanto de infraestructura como de desarrollo.

Operarios de datos

Son los trabajadores que realizan tareas rutinarias y repetitivas relacionadas con los datos. Por ejemplo, introducir, verificar, clasificar, codificar y archivar datos en las BBDD o en otros sistemas. También pueden realizar consultas simples, generar informes básicos y apoyar a otros miembros del equipo en sus funciones. Suelen tener conocimientos básicos de informática y ofimática y, por eso, permisos muy limitados en la base de datos.

Ingenieros de datos

Son los profesionales que se encargan de construir y mantener las infraestructuras y plataformas que almacenan, procesan y distribuyen los datos. Utilizan herramientas como Hadoop, Spark, Kafka, etc. para crear pipelines escalables, eficientes y confiables. También deben asegurar la calidad, la integridad y la disponibilidad de los datos. Además, colaboran con otros roles como científicos o analistas de datos para facilitar el acceso y el análisis del dato.

Analistas de datos

Son los especialistas en extraer, transformar y cargar (ETL) la información desde diferentes fuentes para luego analizarlos y generar información útil para la toma de decisiones. Utilizan herramientas como Excel, SSIS, SSRS, Power BI, Tableau, R, etc. para crear reportes, tableros, gráficos y modelos estadísticos que revelan patrones, tendencias y oportunidades. También deben comunicar sus hallazgos y recomendaciones a los usuarios finales o a los gerentes.

Científicos de datos

Son el siguiente nivel a los analistas. Son profesionales que aplican técnicas avanzadas de análisis del dato, como el aprendizaje automático, la inteligencia artificial, la minería de datos, etc. para resolver problemas complejos y generar conocimiento e innovación. Utilizan herramientas como Python, R, TensorFlow, etc. para crear algoritmos, modelos y sistemas que permiten extraer valor de la información. También deben comunicar sus resultados y soluciones de forma efectiva y persuasiva a diferentes audiencias.

Arquitectos de datos

Son los profesionales que se encargan de diseñar e implementar la estrategia global para el manejo e integración de los datos en toda la organización. Definen la visión, los objetivos y los principios que guían el uso y el valor de los datos. También establecen la gobernabilidad, la calidad y la seguridad de los datos. Además, coordinan con otros roles como arquitectos empresariales o arquitectos de soluciones para alinear las soluciones con las necesidades del negocio.

Gobierno del dato

En último lugar tenemos al equipo de gobierno del dato. Son los profesionales que se encargan de definir y supervisar las políticas, los procesos y los estándares que regulan el uso y la gestión de los datos en la organización. Establecen las responsabilidades, los roles y los permisos de los usuarios y los proveedores de información. También velan por el cumplimiento de las normativas legales y éticas relacionadas con la protección y el tratamiento de los datos. Además, promueven una cultura basada en los datos y fomentan la colaboración entre las diferentes áreas o departamentos.

Conclusión

Como ves, hay muchos tipos de trabajadores que se dedican a las BBDD y cada uno tiene un papel fundamental en el manejo y aprovechamiento de los datos. Si te interesa aprender más sobre este tema o quieres convertirte en uno de ellos, te invito a seguir leyendo mi blog y a unirte a nuestro grupo de LinkedIn. También puedes seguirnos en Twitter.

Publicado por Roberto Carrancio en Otros, 1 comentario

La importancia de entender lo que hacemos

Hoy quiero compartir con vosotros mi filosofía a la hora de escribir en este blog. Sé que muchos de vosotros buscáis tutoriales prácticos, paso a paso, que os enseñen cómo hacer las cosas en el mundo de las bases de datos. Sin embargo, yo prefiero centrarme en la teoría y el porqué de las cosas, porque creo que entender lo que hay detrás es lo más importante.

¿Por qué es tan importante entender lo que se hace?

Porque cuando entendemos los conceptos, los principios y las razones detrás de cada decisión, somos capaces de adaptarnos a cualquier situación, resolver problemas complejos y aprender de forma autónoma. El cómo hacer las cosas es algo que se puede encontrar fácilmente en internet, siempre y cuando sepamos lo que necesitamos. Pero si no sabemos qué hacer, ni por qué hacerlo, podemos caer en errores, malas prácticas o soluciones ineficientes.

¿Qué ventajas tiene entender la teoría?

Aprender por repetición sin entender lo que se hace tiene muchas desventajas. Por ejemplo, nos limita a seguir unos pasos sin saber si son los más adecuados, nos impide ser creativos y probar otras alternativas, nos hace dependientes de fuentes externas que pueden estar desactualizadas o ser erróneas, y nos dificulta recordar lo que hemos aprendido.

Además, si somos de los que simplemente memorizamos la solución a una serie de problemas tipo que siempre vemos, llegará el día que el problema al que nos enfrentemos sea nuevo. Igual la solución es la misma que para uno de los problemas que conocemos pero, si no sabemos el por qué de las cosas no vamos a saber relacionarlo a no ser que el error que veamos sea el mismo.

Por eso, en este blog no os voy a dar recetas mágicas, sino que os voy a explicar los fundamentos de las bases de datos, los diferentes tipos, las ventajas y desventajas de cada uno, los criterios de diseño, las técnicas de optimización, etc. Mi objetivo es que aprendamos a pensar como DBAs profesionales, que seamos capaces de analizar cada caso y elegir la mejor opción. Y para esto tenemos que entender la teoría.

Pues a mi no me gusta

Entiendo, como he dicho al inicio, que vosotros prefiráis otra serie de artículos más de como hacer las cosas que del por qué. Para esto os puedo proponer varias soluciones, la primera es Google, Google está lleno de resultados con esa información. La segunda, que me agradaría aún más, es que colaboréis vosotros mismos con este proyecto. Como puse en el apartado de Quienes Somos mi idea es que esto sea un proyecto colaborativo donde todos los DBAs puedan aportar su conocimiento para que el resto podamos aprender. Ya habréis notado que mi conocimiento se limita a SQL Server y necesitaría que vosotros cubráis esas carencias en otras tecnologías.

Entonces… ¿Siempre va a ser así?

No, esto que os he dicho es la norma general pero, habrá veces que os he compartido scripts y lo seguiré haciendo. Que quiera priorizar la teoría no significa que no vaya a haber nada práctico. Simplemente reservaremos esa parte práctica para casos más extraños y que no es tan fácil encontrar en otros sitios, y sobre todo, que nos aporte algo entendamos lo que hay detrás y aprendamos mucho.

En resumen…

… estamos formándonos como DBAs no como robots que ejecutan rutinas sin saber más. Os aseguro que a lo largo de vuestra carrera os van a valorar más por lo que sabéis que por ninguna otra cosa. Espero que os guste esta forma de enfocar el blog y que os resulte útil e interesante. Si tenéis alguna duda, sugerencia o comentario, podéis dejarlo abajo o contactarme por Twitter o email. ¡Gracias por leerme y hasta la próxima!

Publicado por Roberto Carrancio en Otros, 2 comentarios

Formas Normales o Normalización de Bases de Datos

En el pasado post, recreamos con IA una entrevista de trabajo para DBA SQL Server. Una de las preguntas de esta entrevista era sobre la normalización de bases de datos y os comenté que esto era muy importante. Es teoría básica de base de datos, pero tan básica que son las normas sobre las que se construyen las bases de datos. Como aún no hemos hablado de ello y todo el que trabaje con base de datos (DBA o usuario) debe conocerlo vamos a dedicarle el artículo de hoy. 

Desde ya os aviso que es un tema puramente teórico, voy a intentar poner ejemplos prácticos para que sea lo más claro posible pero puede que se nos haga a todos un poco de bola. Es normal. Que esto no os pare, como decimos es la base de todo buen profesional de las bases de datos relacionales y debemos conocerlo al detalle, como los mandamientos de la biblia.

¿Qué es la normalización y por qué es tan importante? 

La normalización es el proceso de organizar los datos en una base de datos de forma que se eviten las redundancias, las inconsistencias y las anomalías. Se basa en aplicar una serie de reglas, llamadas formas normales, que definen cómo deben estructurarse las tablas y las relaciones entre ellas. 

La normalización tiene muchos beneficios, como mejorar el rendimiento, facilitar el mantenimiento, garantizar la integridad y optimizar el espacio de almacenamiento.

¿Cómo se aplica la normalización?

Como hemos comentado existen varias formas normales, desde la primera forma normal (1FN) hasta la sexta forma normal (6FN). Cada una de ellas con sus propios requisitos y objetivos. Sin embargo, no siempre vamos a necesitar aplicar todas las formas normales, depende del tipo de datos y del diseño de la base de datos.

A continuación vamos a explicar brevemente cada forma normal con algunos ejemplos.Para el ejemplo vamos a partir de este conjunto de datos que tenemos y vamos a tratar de normalizarlo:

Primera forma normal (1FN)

Esta primera forma normal trata de eliminar registros duplicados y que cada campo de la tabla contenga un único tipo de información Así cada campo de una tabla debe contener un valor único y atómico, es decir, que no se pueda descomponer en partes más pequeñas. Además, cada tabla debe tener una clave primaria que identifique de forma única a cada registro. 

En nuestro ejemplo no teníamos filas duplicadas, pero sí que debemos descomponer la dirección en varios campos atómicos y unificar el tipo de datos de la columna precio. Quedaría de la siguiente manera:

Segunda forma normal (2FN)

Para poder considerar una tabla en 2FN tiene que cumplir con todos los requisitos de la 1FN y, además, que todos los campos que no formen parte de la clave primaria dependan completamente de la clave primaria. Esto significa que si la clave primaria está compuesta por más de un campo, cada campo no clave debe depender de todos los campos clave y no solo de algunos. Deberemos separar nuestra tabla en varias de manera que todos los campos cumplan con este requisito. ¿Os ha explotado la cabeza ahora mismo? No os preocupéis que con el ejemplo lo vamos a ver más claro.

Como hemos dicho el primer requisito es estar en 1FN así que vamos a empezar a trabajar sobre esa tabla ya en 1FN. Tendremos que saber cuál es su clave primaria, podría ser Num Factura + Cliente + Linea Factura. Sin embargo no es un buen candidato a clave primaria porque no con menos campos también logramos identificar inequívocamente todos los registros. La clave será Num Factura + Linea factura. Con esta nueva clave, tanto la fecha como los datos del cliente dependen del número de factura pero no de la línea de la factura así que vamos a hacer 2 tablas separadas.

Tercera forma normal (3FN)

Para cumplir esta 3FN, además de tener que cumplir con la 2FN, cada campo de una tabla debe depender funcionalmente solo de la clave primaria sin que haya dependencias transitivas. Esto significa que si un campo no clave depende de otro campo no clave, debemos eliminar esa dependencia y crear una tabla separada.

Parecido a la 2FN pero un poco más restrictiva, en este caso tenemos que ver las dependencias de los campos con la clave y ver si puede crearse la relación con una clave intermedia. En nuestro caso separaremos los clientes de las facturas y los datos del artículo de las líneas de facturas.

Otras Formas Normales, para un extra de normalización

Lo más normal es normalizar las bases de datos hasta la tercera forma normal, a partir de aquí, aunque sigue siendo recomendable, no siempre se cumple con todo y va a depender más de casos concretos. Vamos a conocerlo aunque ya sin nuestra tabla de ejemplo, pues lo que resta no aplica en nuestro caso.

Cuarta forma normal (4FN)

Esta 4FN dicta que las tablas no deben contener columnas multivalores, es decir, que no haya campos que contengan más de un valor para un mismo registro. Esto significa que si un campo puede tener varios valores posibles para un mismo registro, debemos crear una tabla aparte para almacenar esos valores y relacionarla con la tabla original mediante una clave foránea.

Por ejemplo, si tenemos una tabla de cursos con los campos código de curso, nombre y requisitos previos, debemos eliminar el campo requisitos previos, ya que puede contener más de un valor para un mismo curso. Este campo debe ir en una tabla aparte de requisitos previos y relacionarse con la tabla de cursos mediante una clave foránea.

Quinta forma normal (5FN)

Esta forma normal establece que cada tabla debe estar libre de anomalías de unión o inserción, es decir, que no haya redundancias o inconsistencias al combinar o insertar datos en varias tablas. Esto significa que si tenemos varias tablas relacionadas entre sí mediante claves foráneas compuestas, debemos asegurarnos de que esas relaciones sean necesarias y suficientes para representar los datos correctamente. 

Por ejemplo, si tenemos tres tablas: profesores, asignaturas y horarios, que se relacionan entre sí mediante las claves foráneas código de profesor, código de asignatura y día de la semana, debemos verificar que no haya combinaciones de valores que no tengan sentido o que falten datos. Si un profesor imparte una asignatura en varios días de la semana, debemos tener un registro por cada día en la tabla de horarios. Igualmente, si una asignatura se imparte por varios profesores en diferentes días, debemos tener un registro por cada profesor y día en la tabla de horarios. Si un profesor no imparte ninguna asignatura o una asignatura no se imparte por ningún profesor, debemos tener registros vacíos en la tabla de horarios.

Sexta forma normal (6FN)

Esta forma normal es la más nueva de todas y en algunos sitios no encontraréis referencias a ella justo por esto. Mientras que el resto de FN datan de los años 70, esta última no se dictó hasta los 90.

Establece que cada tabla debe contener sólo un hecho atómico, es decir, que no haya campos derivados o calculados a partir de otros campos. Esto significa que si tenemos una tabla que contiene información que se puede obtener mediante una operación matemática o lógica sobre otros campos, debemos eliminar esa información y crear una tabla aparte para almacenarla. 

Por ejemplo, si tenemos una tabla de facturas con los campos número de factura, fecha, código de cliente, subtotal, impuesto y total, debemos eliminar los campos impuesto y total, ya que se pueden calcular a partir del subtotal y del porcentaje de impuesto aplicable. Estos campos deben ir en una tabla aparte de impuestos y totales y relacionarse con la tabla de facturas mediante una clave foránea.

Conclusión

Enhorabuena si habéis llegado hasta aquí, os adelantaba que iba a ser un artículo denso de teoría pero a medida que lo escribía hasta a mi se me ha hecho cuesta arriba. Es lo que hay, en todos los campos hay que tratar estos artículos teóricos para tener una buena base. En este caso, la normalización es un proceso fundamental para diseñar bases de datos eficientes, consistentes y fáciles de manejar. Espero que este esfuerzo os haya servido para entender mejor la normalización de bases de datos. Practicad con vuestros propios ejemplos y, si os surgen dudas, podéis dejarlo en los comentarios, Twitter o mail y trataré de ayudaros lo mejor que sepa. 

Publicado por Roberto Carrancio en Otros, 4 comentarios
¿Qué es ser DBA?

¿Qué es ser DBA?

Un tema de conversación típico cuando conoces a una persona es interesarse por su profesión. Los que nos dedicamos a esto, no estamos exentos de eso y respondemos orgullosos “SOY DBA”. Sin embargo, a lo largo de estos años que llevo dedicándome a las bases de datos, muchas veces quien tengo delante no sabe lo que es ser DBA. 

Hemos escrito ya varios artículos en este blog que se llama SoyDBA y sin embargo no os hemos explicado qué significa realmente ser DBA. La mayoría de los que estáis leyendo estas líneas seguro que ya lo sabéis, bien porque ser DBA sea vuestro objetivo o porque ya seáis DBAs. Vamos a tratar dar respuesta a estas preguntas para que todo el mundo sepa de lo que hablamos. Ya seáis DBAs, queráis serlo o este sea vuestro primer contacto con este concepto y este maravilloso mundo quedaos que va a ser interesante.

¿Qué es un DBA?

DBA son las siglas en inglés de Administrador de Bases de Datos. Aunque el nombre parezca muy descriptivo, lo cierto es que nuestras funciones son tan variadas que a veces es difícil marcar dónde acaba nuestra responsabilidad y dónde empieza la de otros roles.

Lo que sí podemos decir, es que ya seamos DBA de SQL Server o de otro SGBD, nuestro trabajo es muy parecido. Cambiará cómo hacer las cosas pero las tareas son las mismas.

Nuestro SGBD de referencia no sería la única clasificación posible, existen DBAs orientados a infraestructura y otros al rendimiento. Aunque en esto, lo normal es encontrar perfiles mixtos en este sentido y solo ver esta diferencia en puestos altamente especializados. 

¿Necesito un Administrador de Bases de Datos?

Para responder a esta pregunta debes preguntarte si existen bases de datos en tu empresa. Si la respuesta es sí, claramente necesitas un DBA. Puede que no necesites una persona en plantilla dedicada en exclusiva a esas tareas pero está claro que alguien las tiene que hacer y si no es una persona especializada no sacarás todo el partido posible a tus bases de datos. Si aún te quedan dudas piensa que, por lo general, las bases de datos albergan información necesaria para la continuidad de tu negocio. ¿Merece la pena dejar eso en manos inexpertas?

¿Qué hago para ser Administrador de Bases de Datos?

Un antiguo compañero (ahora amigo) solía decir que a DBA se llega por accidente y no le faltaba razón. Rara vez la gente sigue un plan formativo orientado a la administración de bases de datos. Estos son escasos, caros y, normalmente, están fuera de los planes de formación en las escuelas y universidades. La mayoría de los que nos dedicamos a esto hemos llegado aquí desde un puesto de soporte o de desarrollo. Tienes una base de datos que administrar, no sabes muy bien cómo pero empiezas a informarte y al final, a base de práctica y muchas horas de lectura, te especializas. Si has tenido suerte, un compañero te habrá enseñado lo necesario, aunque esto no te va a librar de las horas de práctica y lectura. 

Da igual si estás empezando o ya llevas tiempo como DBA, en las bases de datos, como en todo, es necesario aprender cosas nuevas día a día para no quedarse atrás. Internet está lleno de blogs como este (y mejores) donde formarte y aprender cosas nuevas.

¿Qué hace un DBA?

Seguro que has notado que durante todo este artículo hemos pasado rozando el tema de las funciones de un DBA. Es algo intencionado, detallaré en otro artículo lo que para mi es imprescindible en nuestro dia a dia. Sin embargo, no podemos dejar esto sin unas pinceladas sobre este tema. Como hemos hablado existen dos caminos, uno más orientado a infraestructura y otro más de rendimiento, conocido también como performance o devops en algunos sitios. No es buena idea centrarse solo en uno de esos dos caminos dejando de lado el otro. Por ejemplo, puedes ser el mejor administrando infraestructura pero cuando una consulta no rinde como se espera tienes que tener la capacidad de detectar el problema para no volverte loco mirando el servidor. De la misma manera, si sabes optimizar el código pero no el servidor vas a estar muy limitado a la hora de afrontar muchos casos. 

Un buen DBA debe implementar infraestructura, gestionar los accesos, diseñar y desplegar soluciones de alta disponibilidad, configurar una buena política de backups y planes de mantenimiento y solucionar problemas de rendimiento e incidencias. En resumen deberías tener el control de todo lo que está bajo tu responsabilidad y te pueda causar un problema en un futuro.

Conclusión

Para ser DBA necesitarás una buena base de informática, eso te facilitará mucho las cosas. Además, tendrás que dedicar tus esfuerzos en investigar y aprender cosas nuevas. Las bases de datos son un mundo apasionante, lleno de retos profesionales y puede llegar a ser muy gratificante. Por suerte tienes un montón de información disponible en multitud de páginas web. Eso sí, cuando te enfrentes a un problema no confíes en soluciones milagrosas (ejecuta este script y todo arreglado), duda, pregúntate qué te ha llevado al problema en el que estás, entiende por qué se hacen las cosas que te dicen en esa web y luego ya soluciona el error. 

Publicado por Roberto Carrancio en Otros, 4 comentarios
BABELFISH PG Porque hay vida más allá de SQL Server

BABELFISH PG Porque hay vida más allá de SQL Server

Cada vez que toca renovar licencias de SQL Server hay una pregunta recurrente de todos mis clientes: ¿Y si migramos a PostgreSQL y nos ahorramos este dinero? Normalmente, quien me hace esta pregunta espera de mí un tajante NO. Sin embargo, hasta ahora mi respuesta siempre había sido: “Es una opción, claro. PostgreSQL es un excelente gestor de bases de datos y, si estás desarrollando una nueva aplicación y no tienes esa camisa de fuerza que es migrar todo tu código, me parece perfecto. Eso sí, asegúrate de tener un buen soporte.” Ahora bien, a día de hoy, BABELFISH for PostgreSQL ha mejorado lo suficiente como para hacerme cambiar esta respuesta. 

¿Qué es BABELFISH?

Empecemos por el principio, Babelfish es un complemento para PostgreSQL y ahora también para Aurora PostgreSQL (Amazon) que nos permite utilizar nuestra misma cadena de conexión SQL Server y nuestro código T-SQL sobre una base de datos de Postgre. Además de este “traductor” incorpora una funcionalidad de migración de nuestros datos desde cualquier versión licenciada de SQL hacía PostgreSQL.

Esquema de Babelfish

¿Cómo funciona BABELFISH?

Paso 1. Instalación:

Como es lógico para empezar a trabajar con Babelfish lo primero que debemos hacer es instalarlo, para lo que necesitaremos un sistema operativo linux. Es importante destacar que la instalación de babelfish incluye la instalación de una versión de PostgreSQL con los componentes necesarios para su funcionamiento y no funcionará con una instalación de PostgreSQL desde cualquier otra fuente. Por suerte, el bundle de instalación de Babelfish incluye un fichero con las instrucciones detalladas paso a paso para completar la instalación de manera exitosa, eso sí, las instrucciones de instalación son para Ubuntu y los pasos pueden diferir ligeramente en otras distribuciones.

En caso de que queramos una versión cloud, Babelfish es una capacidad integrada de Amazon Aurora y no tiene coste adicional. Se puede habilitar Babelfish en Amazon Aurora desde la consola de administración de RDS.

Paso 2. Configuración:

Una vez concluida la instalación, es el momento de conectar a PostgreSQL y empezar a configurar todo. Para empezar crearemos un usuario que será propietario de la base de datos de muestra. Crearemos también la base de datos de muestra y definiremos si Babelfish va a trabajar en modo base de datos única o va a admitir varias bases de datos. Esta configuración no se va a poder cambiar por lo que si elegimos la opción single-db debemos estar muy seguros.

Paso 3. Migración:

Ahora que ya tenemos todo instalado y configurado toca entrar en materia y migrar los datos de nuestro SQL Server. Para la migración tenemos dos opciones otra vez, modo base de datos única o modo de múltiples bases de datos. Cada uno de los modos de migración tiene sus pros y sus contras y una vez más, una vez elegido uno no lo podremos cambiar. La primera vez que iniciemos Babelfish se crearán una base de datos master y una tempdb, si teníamos objetos creados en la master deberemos recrearlos en esta. En cuanto a la tempdb una vez creada no se borrará nunca al contrario de lo que pasa en SQL Server.

En el modo de migración de base de datos única, los nombres de los esquemas se crean tal cual, por lo que si el objetivo es terminar migrando a PostgreSQL nativo tendremos que terminar haciendo cambios en el código. Si este es nuestro objetivo (que, a estas alturas, debería serlo) es recomendable mover todas las tablas al esquema DBO en SQL Server antes de la migración.

Tendrás que elegir el modo de migración de múltiples bases de datos si quieres migrar varias bases de datos, si no tienes claras tus necesidades futuras o si lo que quieres es migrar varias bases de datos de usuarios juntas y el objetivo final no es realizar una migración PostgreSQL.

Siguientes pasos y conclusiones

En este punto ya estamos preparados para empezar a trabajar con Babelfish for PostgreSQL de manera transparente como si de un SQL Server se tratara, esto nos permitirá ir migrando gradualmente nuestras aplicaciones hasta conseguir un funcionamiento con PostgreSQL Nativo y podremos reinvertir el dinero ahorrado en licencias de SQL Server en un mejor hardware y/o en un soporte de alto nivel para PostgreSQL.

Publicado por Roberto Carrancio en Otros, 1 comentario