{"id":954,"date":"2020-01-27T13:06:00","date_gmt":"2020-01-27T12:06:00","guid":{"rendered":"http:\/\/wollef.org\/?p=954"},"modified":"2020-01-27T13:06:00","modified_gmt":"2020-01-27T12:06:00","slug":"conception-logicielle-du-raspberry-car-les-donnees","status":"publish","type":"post","link":"https:\/\/wollef.org\/blog\/conception-logicielle-du-raspberry-car-les-donnees\/","title":{"rendered":"Conception logicielle du Raspberry Car &#8211; Les Donn\u00e9es (2\/2)"},"content":{"rendered":"\n<h3 class=\"wp-block-heading\"><a>Le contenu de la base de donn\u00e9es locale<\/a><\/h3>\n\n\n\n<p>Dans la base de\ndonn\u00e9es locale (sqlite), on va vouloir stocker&nbsp;:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>L\u2019heure de l\u2019enregistrement dans la DB<\/li><li>Les donn\u00e9es GPS<ul><li>Heure connue par le GPS<\/li><\/ul><ul><li>Longitude, latitude, vitesse et altitude<\/li><\/ul><ul><li>Heure de la mesure<\/li><\/ul><\/li><li>Les donn\u00e9es OBD<ul><li>La vitesse, les tours par minute du moteur et le\nniveau de carburant<\/li><\/ul><ul><li>Heure de la mesure<\/li><\/ul><\/li><\/ul>\n\n\n\n<p>Ce qui donne le sch\u00e9ma de cr\u00e9ation suivant&nbsp;:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CREATE TABLE car_status(\n\tstatusdate integer,\n\n\tgps_time integer,\n\tgps_longitude Decimal(9,6),\n\tgps_latitude Decimal(9,6),\n\tgps_speed decimal(9,2),\n\tgps_elevation decimal(9,2),\n\tgps_measure_time integer,\n\n\tobd_speed decimal(9, 2),\n\tobd_rpm decimal(9, 2),\n\tobd_fuellevel decimal(9, 2),\n\tobd_measure_time integer,\n\n\tsent boolean\n);<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><a>Le contenu de la base de donn\u00e9es Salesforce&nbsp;: gros volume de mesure<\/a><\/h3>\n\n\n\n<p>Dans le projet de\nl\u2019an pass\u00e9, on avait stock\u00e9 les informations venant de Salesforce dans des\n\u2018Custom Object\u2019. Cela allait car on ne stockait pas souvent les informations\n(seulement quelques fois par heure). Maintenant on va pouvoir stocker des\ndonn\u00e9es plusieurs fois par minute. <\/p>\n\n\n\n<p>Dans Salesforce,\nles Custom Objects ne sont pas adapt\u00e9 pour cela (ils coutent cher en espace de\nstockage pour le syst\u00e8me).<\/p>\n\n\n\n<p>Pour cela SF\npropose les Big Objects, qui peuvent g\u00e9rer par d\u00e9faut jusqu\u2019\u00e0 un million\nd\u2019enregistrement, mais on peut avoir des configurations qui g\u00e8rent jusqu\u2019\u00e0 un\nmilliard d\u2019enregistrements&nbsp;!<\/p>\n\n\n\n<p>Pour l\u2019insertion et\nla lecture de donn\u00e9es, les Big Objects se manipulent presque de la m\u00eame mani\u00e8re\navec deux contraintes&nbsp;:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>On ne relie pas un Big Object \u00e0 un autre ou \u00e0 un\nCustom Object&nbsp;: c\u2019est juste une grosse liste. Ce qui veut dire que le code\ndu projet de l\u2019an pass\u00e9 ne pourra pas fonctionner de la m\u00eame mani\u00e8re<\/li><li>Je chemin pour faire les requ\u00eates est moins\nflexible, on doit pr\u00e9-c\u00e2bler l\u2019ordre des crit\u00e8res de requ\u00eate pour que cela soit\nperformant.<\/li><\/ul>\n\n\n\n<p>La cr\u00e9ation d\u2019un Big Object se fait dans le menu Big Object du setup :<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"http:\/\/wollef.org\/wp-content\/uploads\/2020\/06\/image.png\" alt=\"\" class=\"wp-image-955\"\/><\/figure>\n\n\n\n<p>On voit ici que le\nchemin pour lire les donn\u00e9es passe&nbsp;:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>D\u2019abord en demandant le num\u00e9ro du tracker,\nTracker_ID__c&nbsp;; c\u2019est l\u2019identifiant qu\u2019on va donner \u00e0 chaque appareil\nRaspberry Car, pour ne pas m\u00e9langer les donn\u00e9es venant de plusieurs voitures<\/li><li>Puis la date de capture de la donn\u00e9e, Requested_On__c, en\nordre d\u00e9croissant (en partant de la plus r\u00e9cente, pour que cela aille plus vite\npour lire les derni\u00e8res mesure) <\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Le contenu de la base de donn\u00e9es locale Dans la base de donn\u00e9es locale (sqlite), on va vouloir stocker&nbsp;: L\u2019heure de l\u2019enregistrement dans la DB Les donn\u00e9es GPS Heure connue par le GPS Longitude, latitude, vitesse et altitude Heure de la mesure Les donn\u00e9es OBD La vitesse, les tours par minute du moteur et le <a class=\"read-more\" href=\"https:\/\/wollef.org\/blog\/conception-logicielle-du-raspberry-car-les-donnees\/\">Continue Reading<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[31,1],"tags":[53],"class_list":["post-954","post","type-post","status-publish","format-standard","hentry","category-raspberry-cars","category-non-classe","tag-2020-raspberry-cars"],"_links":{"self":[{"href":"https:\/\/wollef.org\/blog\/wp-json\/wp\/v2\/posts\/954","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wollef.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wollef.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wollef.org\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wollef.org\/blog\/wp-json\/wp\/v2\/comments?post=954"}],"version-history":[{"count":0,"href":"https:\/\/wollef.org\/blog\/wp-json\/wp\/v2\/posts\/954\/revisions"}],"wp:attachment":[{"href":"https:\/\/wollef.org\/blog\/wp-json\/wp\/v2\/media?parent=954"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wollef.org\/blog\/wp-json\/wp\/v2\/categories?post=954"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wollef.org\/blog\/wp-json\/wp\/v2\/tags?post=954"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}