<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Analytics on Blog GoHugo de Fredô : Linux, Proxmox, IA, Trail, Course, Randonnée, Gravel, Ski de Randonnée</title>
    <link>https://move.cyber-neurones.org/tags/analytics/</link>
    <description>Recent content in Analytics on Blog GoHugo de Fredô : Linux, Proxmox, IA, Trail, Course, Randonnée, Gravel, Ski de Randonnée</description>
    <generator>Hugo</generator>
    <language>fr</language>
    <lastBuildDate>Wed, 01 Apr 2020 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://move.cyber-neurones.org/tags/analytics/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Twitter Analytics : Migration des données vers MariaDB pour une utilisation dans Grafana (Version 2)</title>
      <link>https://move.cyber-neurones.org/post/2020/04/2020-04-01-twitter-analytics-migration-des-donnees-vers-mariadb-pour-une-utilisation-dans-grafana-version-2/</link>
      <pubDate>Wed, 01 Apr 2020 00:00:00 +0000</pubDate>
      <guid>https://move.cyber-neurones.org/post/2020/04/2020-04-01-twitter-analytics-migration-des-donnees-vers-mariadb-pour-une-utilisation-dans-grafana-version-2/</guid>
      <description>&lt;p&gt;J&amp;rsquo;ai fait une version 2 qui permet de voir l&amp;rsquo;intéraction avec les utilisateurs : les sources sont disponibles ici : &lt;a href=&#34;https://github.com/farias06/Grafana/blob/master/Twitter_CSV_insert_v2.py&#34;&gt;https://github.com/farias06/Grafana/blob/master/Twitter_CSV_insert_v2.py&lt;/a&gt; )&lt;/p&gt;&#xA;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;import csv&#xA;from datetime import datetime&#xA;import mysql.connector&#xA;import re&#xA;from mysql.connector import errorcode&#xA;from mysql.connector import (connection)&#xA;&#xA;cnx = connection.MySQLConnection(user=&amp;#39;twitter&amp;#39;, password=&amp;#39;twitter&amp;#39;,&#xA;                                 host=&amp;#39;127.0.0.1&amp;#39;,&#xA;                                 database=&amp;#39;TWITTERS&amp;#39;)&#xA;cursor = cnx.cursor();&#xA;now = datetime.now().date();&#xA;&#xA;#cursor.execute(&amp;#34;DROP TABLE TWITTER;&amp;#34;);&#xA;#cursor.execute(&amp;#34;CREATE TABLE TWITTER (IDENTIFIANT varchar(30) UNIQUE,PERMALIEN varchar(200),TEXTE varchar(500),DATE datetime,IMPRESSION float,ENGAGEMENT float,TAUX_ENGAGEMENT float, RETWEET float,REPONSE float, JAIME float, CLIC_PROFIL float, CLIC_URL float, CLIC_HASTAG float, OUVERTURE_DETAIL float, CLIC_PERMALIEN float, OUVERTURE_APP int, INSTALL_APP int, ABONNEMENT int, EMAIL_TWEET int, COMPOSER_NUMERO int, VUE_MEDIA int, ENGAGEMENT_MEDIA int);&amp;#34;);&#xA;#cursor.execute(&amp;#34;CREATE TABLE TWITTER_USER (USER varchar(20),IDENTIFIANT varchar(30), DATE datetime, PRIMARY KEY (USER,IDENTIFIANT));&amp;#34;);&#xA;cursor.execute(&amp;#34;DELETE FROM TWITTER_USER&amp;#34;)&#xA;cursor.execute(&amp;#34;DELETE FROM TWITTER&amp;#34;);&#xA;cnx.commit();&#xA;&#xA;with open(&amp;#39;input.csv&amp;#39;, &amp;#39;r&amp;#39;) as csvfile:&#xA;    reader = csv.reader(csvfile, quotechar=&amp;#39;&amp;#34;&amp;#39;)&#xA;    for row in reader:&#xA;        MyDate=row[3].replace(&amp;#34; +0000&amp;#34;, &amp;#34;:00&amp;#34;)&#xA;        MyTexte=row[2].replace(&amp;#34;&amp;#39;&amp;#34;, &amp;#34; &amp;#34;)&#xA;        MyTexte=MyTexte.replace(&amp;#34;,&amp;#34;, &amp;#34; &amp;#34;)&#xA;        MyC4=row[4].replace(&amp;#34;Infinity&amp;#34;, &amp;#34;0&amp;#34;)&#xA;        MyC5=row[5].replace(&amp;#34;Infinity&amp;#34;, &amp;#34;0&amp;#34;)&#xA;        MyC6=row[6].replace(&amp;#34;Infinity&amp;#34;, &amp;#34;0&amp;#34;)&#xA;        MyC6=MyC6.replace(&amp;#34;NaN&amp;#34;, &amp;#34;0&amp;#34;)&#xA;        MyC7=row[7].replace(&amp;#34;Infinity&amp;#34;, &amp;#34;0&amp;#34;)&#xA;        User = re.findall(r&amp;#39;(?&amp;lt;=\W)[@]\S*&amp;#39;, MyTexte)&#xA;        for MyUser in User:&#xA;            try :&#xA;                cursor.execute(&amp;#34;INSERT INTO TWITTER_USER (IDENTIFIANT,USER,DATE) VALUES (&amp;#39;&amp;#34;+row[0]+&amp;#34;&amp;#39;,&amp;#39;&amp;#34;+MyUser+&amp;#34;&amp;#39;,&amp;#39;&amp;#34;+MyDate+&amp;#34;&amp;#39;);&amp;#34;);&#xA;            except mysql.connector.Error as err:&#xA;                print(&amp;#34;Something went wrong: {}&amp;#34;.format(err))&#xA;                if err.errno == errorcode.ER_BAD_TABLE_ERROR:&#xA;                    print(&amp;#34;Creating table TWITTER_USER&amp;#34;)&#xA;                else:&#xA;                    None&#xA;        try :&#xA;            cursor.execute(&amp;#34;INSERT INTO TWITTER (IDENTIFIANT,PERMALIEN,TEXTE,DATE,IMPRESSION,ENGAGEMENT,TAUX_ENGAGEMENT,RETWEET,REPONSE, JAIME, CLIC_PROFIL, CLIC_URL, CLIC_HASTAG, OUVERTURE_DETAIL, CLIC_PERMALIEN, OUVERTURE_APP, INSTALL_APP, ABONNEMENT, EMAIL_TWEET, COMPOSER_NUMERO, VUE_MEDIA, ENGAGEMENT_MEDIA) VALUES (&amp;#39;&amp;#34;+row[0]+&amp;#34;&amp;#39;, &amp;#39;&amp;#34;+row[1]+&amp;#34;&amp;#39;, &amp;#39;&amp;#34;+MyTexte+&amp;#34;&amp;#39;,&amp;#39;&amp;#34;+MyDate+&amp;#34;&amp;#39;, &amp;#34;+MyC4+&amp;#34;, &amp;#34;+MyC5+&amp;#34;, &amp;#34;+MyC6+&amp;#34;, &amp;#34;+MyC7+&amp;#34;, &amp;#34;+row[8]+&amp;#34;,&amp;#34;+row[9]+&amp;#34;, &amp;#34;+row[10]+&amp;#34;, &amp;#34;+row[11]+&amp;#34;,&amp;#34;+row[12]+&amp;#34;,&amp;#34;+row[13]+&amp;#34;,&amp;#34;+row[14]+&amp;#34;,&amp;#34;+row[15]+&amp;#34;,&amp;#34;+row[16]+&amp;#34;,&amp;#34;+row[17]+&amp;#34;,&amp;#34;+row[18]+&amp;#34;,&amp;#34;+row[19]+&amp;#34;,&amp;#34;+row[20]+&amp;#34;,&amp;#34;+row[21]+&amp;#34;);&amp;#34;);&#xA;        except mysql.connector.Error as err:&#xA;            print(&amp;#34;Something went wrong: {}&amp;#34;.format(err))&#xA;            if err.errno == errorcode.ER_BAD_TABLE_ERROR:&#xA;                print(&amp;#34;Creating table TWITTER&amp;#34;)&#xA;            else:&#xA;                None&#xA;&#xA;cnx.commit();&#xA;cursor.close();&#xA;cnx.close();&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Il faut donc faire la requête suivante :&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
