Exportar datos a MySQL-DB usando R-scripting: funciona pero indica error

Un usuario Pregunto ✅

Ylreeb

Hola a todos,

Estoy usando las siguientes secuencias de comandos R dentro de una función, que exporta datos a través de R-odbcDriverConnect a una base de datos MySQL. Después de descubrir algunos problemas al transformar los tipos de datos de tiempo de PBI, configurar la columna de datos en PBI en «Fecha / Hora» y crear la tabla de base de datos correspondiente con «fecha y hora» funciona hasta ahora … ver captura de pantalla de Workbench:

pbi_to_my_sql.PNG

Aquí está mi configuración de prueba para ese escenario:

Fuente-Tabla (incluida la configuración del tipo de fecha):

dejar
Fuente = #tabla (
{«firstname», «lastname», «customerid», «date»},
{{«Hola», «MUNDO», «7», «2015-01-01»},

{«Día G», «AUSTRALIA», «8», «2015-01-02»},

{«Gruezi», «SUIZA», «9», «2015-02-01»}}
),
# «Changed Type» = Table.TransformColumnTypes (Fuente, {{«firstname», type text}, {«lastname», type text}, {«customerid», Int64.Type}, {«fecha», escriba fecha y hora}})
en
# «Tipo cambiado»

Función PBI:

let func =
// Actualiza db.test_pbi_r_mysql.test_pbi1.
(conjunto de datos como tabla) =>

dejar

RScript = R.Ejecutar (
»
biblioteca (RODBC)
conn <- odbcDriverConnect(# (0022) DSN = MTO_MySQL; base de datos = test_pbi_r_mysql; case = nochange # (0022))
sqlSave (conexión, conjunto de datos, nombre de tabla = # (0022) test_pbi_r_mysql.test_pbi # (0022), nombres de fila = FALSO, añadir = VERDADERO)
cerrar (conectar)
«,
[dataset=dataset]),
salida = RScript {[Name=»output»]} //[Value]

en

producción
, documentación = [
Documentation.Name =  » Table.ExportToMySQL
«, Documentation.Description = «
» , Documentation.LongDescription = «
«, Documentation.Category = » Table.Others
«, Documentation.Source = » .
«, Documentation.Author = » MTO
«, Documentation.Examples = {[Description =  » Ask Marcus of MTO for details
 «, Result = «
«]}]
en
Value.ReplaceType (func, Value.ReplaceMetadata (Value.Type (func), documentación))

Declaración de MySQL-SQL:

CREAR TABLA `test_pbi` (
`customerid` int (11) NOT NULL,
`firstname` varchar (255) DEFAULT NULL,
`apellido` varchar (255) DEFAULT NULL,
`fecha` fecha y hora DEFAULT NULL,
CLAVE PRINCIPAL (`customerid`))
MOTOR = JUEGO DE CARTOS POR DEFECTO InnoDB = utf8

Como ya se mencionó, funciona en términos de agregar filas «nuevas» a la tabla MySQL. Pero cada invocación de función (adicional) indica que hay el siguiente error en PBI (Deskop):

Se produjo un error en la consulta «». DataSource.Error: ADO.NET: Error de secuencia de comandos de R.
Error en sqlSave (conn, dataset, tablename = «test_pbi_r_mysql.test_pbi»,:
no se puede agregar a la tabla ‘test_pbi_r_mysql.test_pbi’
Además: Mensaje de advertencia:
En odbcUpdate (canal, consulta, mydata, coldata[m, ], prueba = prueba,:
datos de caracteres ‘2015-01-01T00: 00: 00.0000000’ truncados a 19 bytes en la columna ‘fecha’
Ejecución detenida
Mensaje de advertencia:
cierre de la manija RODBC no utilizada 1

¿Alguien alguna idea?

Gracias de antemano,

Marcus

Anónimo

Hola ,

Soy nuevo en power bi. quiero exportar datos de power bi a mysql. Por favor, ¿puede ayudarnos a comprender las cosas y el flujo de la configuración del software?

Por favor, ayúdame…

Gracias,

UBG

Ylreeb

En respuesta a Anónimo

Hola,

es bastante fácil.

Debe instalar y configurar R-runtime; simplemente siga las instrucciones de MS.

Cuando haya procesado su tabla de la forma que deseaba almacenar, agregue un paso «Ejecutar secuencia de comandos R».

En la ventana del script, complete algo como este:

biblioteca (RODBC)
conn <- odbcDriverConnect ("DSN =ODBCDATASourceName; base de datos =yourDBName; case = nochange «)
sqlSave (conexión, conjunto de datos, nombre de tabla = «yourTableName.yourDBName; «, nombres de filas = FALSO, anexar = VERDADERO)
cerrar (conectar)

Asegúrese de haber configurado su MariaDB / MySQL correctamente para que pueda interactuar con ODBC Data Source Client en la máquina en la que está ejecutando PBI-Dektop. A continuación, debe considerar los tipos de datos de sus culmns en PBI y su DB. María a veces tiene problemas con los tipos de fecha exportados por PBI.

Como puede ver, el script APENDE la tabla PBI a los datos existentes almacenados en su base de datos. Traté de averiguarlo solo para actualizar los datos.

Por lo tanto, se necesita un índice (único) en la tabla DB (también para algún tipo de mantenimiento de la base de datos). Pasé casi un día en esto, pero me encontré con errores en PBI (tal vez el puente de interoperabilidad de R a .net) …

¡¡Regrads !!

Todavía estoy

Anónimo

En respuesta a Ylreeb

gracias por compartir…

Necesito una pequeña aclaración sobre

biblioteca (RODBC)
conn <- odbcDriverConnect ("DSN =ODBCDATASourceName; base de datos =yourDBName; case = nochange «)
sqlSave (conexión, conjunto de datos, nombre de tabla = «yourTableName.yourDBName; «, nombres de filas = FALSO, anexar = VERDADERO)
cerrar (conectar)

No sé mysql, por favor ayude a comprender cuáles son los campos que necesito actualizar y dónde ver ODBCDATASourceName, yourDBName, etc.

No puedo entender la sintaxis.

por favor ayuda…

Ylreeb

En respuesta a Anónimo

su fuente de datos ODBC …. destacó el ODBCDATASourceName:

blaa.PNG

Hola @Ylreeb,

No estoy familiarizado con el script R. Pero, según mi investigación, encontré que este artículo proporciona un ejemplo sobre cómo exportar datos a SQL.

Saludos,

Yuliana Gu

Ylreeb

En respuesta a v-yulgu-msft

Hola Yuliana Gu,

como habrás visto, mi tabla creada tiene valores similares a los de tu artículo vinculado Guiño sonriente

Mi escenario se basa en eso, pero extendido por una ID como clave principal de DB y una fecha para cubrir aún más relevante …

Pero al intentar esto en función de una fuente de datos externa (en este caso, archivos CSV), ejecuto este problema global conocido de PBI Desktop «Fórmula.Firewall: La consulta hace referencia a otras consultas, por lo que es posible que no dirija …»

Es un dolor 😞

Saludos,

Marcus

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *