MySQL a SPREADSHEET, ¿cómo importar desde la base de datos?

Importar datos de MySQL a SPREADSHEET

Analítica web 0 89
Consultas busqueda GWT

¿Por qué puede ser interesante para ti el importar datos de MySQL a SPREADSHEET?

La hoja de cálculo de la suite ofimática de GOOGLE DRIVE es muy potente pero tiene una capacidad de almacenamiento de información bastante limitada (por ser gratuita y por estar en la nube), no obstante, para mi es vital trabajar con ella; para superar esta limitación lo que hago es almacenar la información en una base de datos MySQL e importar la información ya preprocesada y filtrada con consultas de MySQL a SPREADSHEET

Un ejemplo de por qué debes almacenar la información en una BBDD potente como MySQL y un hoja de cálculo no es tu mejor opción para almacenar la información es cuando te descargas los datos de GSC porque -si no lo haces- los perderás pasados 3 meses porque GOOGLE no los almacena; haz unos números rápidos: si tienes mucho tráfico a través de muchas palabras clave y descargas la información mediante la API de GSC obtendrás 5000 líneas por lo que descargando los datos -al menos- cada mes obtendrás 60000 líneas de información de varias columnas de datos…¿has probado a manejar eso con GOOGLE SPREADSHEET (si lo haces, prepara palomitas porque va a tardar mucho)?

Para poder trabajar como te digo, a continuación te dejo un script para importar datos de MySQL a SPREADSHEET.

Script para importar datos de MySQL a SPREADSHEET

function connectToMySqlDB(Query,Column,Cell){
    
  // Obtiene las variables de conexión a la base de datos de la hoja SETUP
  var address = String(SpreadsheetApp.getActive().getRange('Config!$E$2').getValue());
  var user = String(SpreadsheetApp.getActive().getRange('Config!$E$3').getValue());
  var userPwd = String(SpreadsheetApp.getActive().getRange('Config!$E$4').getValue());
  var db = String(SpreadsheetApp.getActive().getRange('Config!$E$5').getValue());;
  var dbUrl = 'jdbc:mysql://' + address + '/' + db;
  
  // Ejecuta la conexión
  var connection = Jdbc.getConnection(dbUrl, user, userPwd);

  // Ejecuta la consulta pasada como parámetro Query
  var SQLstatement = connection.createStatement();  
  var result = SQLstatement.executeQuery(Query);

  // Escribe los valores obtenidos a partir de la celda pasada como parámetro Cell
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var cell = ss.getRange(Cell);

  // Vuelca los datos obtenidos de la consulta en el nº de columnas pasadas como Column
  var row = 0;
  while(result.next()) {
    for(var i=0; iXXXXXcolumn ; i++) {
      cell.offset(row, i).setValue(result.getString(i+1));
    }
    row++
  }
  
  // Cierra el objeto
  result.close();
  SQLstatement.close();
  connection.close();
}

Observa que a la función se la pasan 3 parámetros:

  1. Query: es una cadena de texto y es la consulta SQL que quieras hacer a la Base de datos MySQL
  2. Column: es el número de columnas que tiene que traerse (tiene que ser menor o igual al número de columnas que solicites en la query)
  3. Cell: es la referencia a la celda desde la que se van a insertar los datos

Además de esto, en este ejemplo los datos de acceso a la BBDD (dirección, usuario, contraseña y base de datos) se añaden a unas variables que obtienen sus valores de las celdas de la hoja que he llamado “Config”: Config!$E$2, Config!$E$3, Config!$E$4 y Config!$E$5 por lo que tendrás que adaptar esto a tu configuración.

NOTA: Hay un error intencionado que debes arreglar, y es sustituir las XXXXX por <

Espero que este script te resulte interesante en tus análisis. Si es así y quieres darle difusión en tu página, agradecería que lo referenciaras a este post.

About the author / 

jbmoreno

Soy consultor seo sem, el que maneja este cotarro de JBMoreno.es y puedes saber más de mi en Acerca de José B. Moreno Suárez

Leave a reply

Your email address will not be published. Required fields are marked *

Últimas entradas

  • Madrid: Calle Ayala 83,28006 Madrid(Madrid), España
  • Sevilla: Calle Asturias 11,41010 Sevilla(Sevilla), España