{"id":10621,"date":"2015-11-18T12:41:41","date_gmt":"2015-11-18T11:41:41","guid":{"rendered":"http:\/\/flaven.fr\/?p=10621"},"modified":"2015-11-18T12:44:07","modified_gmt":"2015-11-18T11:44:07","slug":"mac-console-fractionner-des-fichiers-volumineux-sous-mac-avec-la-commande-split","status":"publish","type":"post","link":"https:\/\/flaven.fr\/2015\/11\/mac-console-fractionner-des-fichiers-volumineux-sous-mac-avec-la-commande-split\/","title":{"rendered":"Mac, Console &#8211; Fractionner des fichiers volumineux sous Mac avec la commande split"},"content":{"rendered":"<p>Voil\u00e0 typiquement l&#8217;article fourre-tout, on pourrait m\u00eame dire d\u00e9potoir, dans lequel va \u00eatre plac\u00e9 une succession de pratiques, bonnes ou mauvaises, \u00e0 priori l\u00e0 n&#8217;est pas la question. L&#8217;id\u00e9e est de passer par le plus court chemin pour manipuler un volume cons\u00e9quent de donn\u00e9es notamment issu de fichier <code>.sql, .csv, .txt<\/code> avec peu de moyens \u00e0 part un simple portable et peu de connaissances en programmation.<\/p>\n<p><b>Pourquoi de telles contraintes ? Eh bien, cette ensemble assez disparate vous sera peut-\u00eatre utile notamment si vous \u00eates amen\u00e9s \u00e0 faire des migrations de donn\u00e9es. Par exemple, si vous souhaitez migrer des donn\u00e9es utilisateurs d&#8217;un syst\u00e8me d&#8217;authentification unique (SSO) \u00e0 un autre. C&#8217;est en l&#8217;esp\u00e8ce le travail \u00e0 effectuer.<\/b><\/p>\n<p>Cette mutation des donn\u00e9es se r\u00e9v\u00e8le parfois compliqu\u00e9, non en raison de la complexit\u00e9 de la tache \u00e0 savoir transposer des donn\u00e9es d&#8217;un format dans un autre, mais pour deux raisons principales\u00a0plus incongrues :<\/p>\n<ul>\n<li>Le volume important des donn\u00e9es \u00e0 traiter qui vous interdit souvent de g\u00e9rer cet ensemble dans un environnement ou un logiciel unique genre Excel ou dans la console MySQL.<\/li>\n<li>La r\u00e9ticence justifi\u00e9e ou injustifi\u00e9e des prestataires, des d\u00e9veloppeurs \u00e0 manipuler ces donn\u00e9es \u00e9tant donn\u00e9 l&#8217;importance critique \u00e0 maintenir la coh\u00e9rence et l&#8217;int\u00e9grit\u00e9 de ces m\u00eames donn\u00e9es. En clair, une fois \u00e9tabli, le sc\u00e9nario de migration de donn\u00e9es \u00e0 op\u00e9rer, vous avez de forte chance de vous retrouver seul \u00e0 la man\u0153uvre.<\/li>\n<\/ul>\n<p>Dans le cas qui nous concerne, il a fallu fractionner un volumineux fichier <code>.sql<\/code> rempli de donn\u00e9s sous forme de <i>Universally Unique IDentifier (UUID)<\/i> en plusieurs fichiers <code>.sql<\/code> de 5000 lignes chacun. Puis, il a fallu ensuite retraiter chacune des tables de 5000 UUID \u00e0 l&#8217;aide de PHP afin de g\u00e9n\u00e9rer des requ\u00eates CURL. Ces requ\u00eates CURL ont \u00e9t\u00e9 pass\u00e9es \u00e0 une API par groupe \u00e0 raison de 5 lignes par fichier <code>.sh<\/code>.<\/p>\n<p><b>Ce script basique nous a donc \u00e9t\u00e9 utile deux fois, pour fractionner le fichier <code>.sql<\/code> puis un fichier <code>.txt<\/code> pour fractionner le tout sous forme <code>.sh<\/code><\/b><\/p>\n<p><b>Le script est disponible sur github<br \/>\n<a href=\"https:\/\/github.com\/bflaven\/BlogArticlesExamples\/tree\/master\/split_file\" target=\"_blank\">https:\/\/github.com\/bflaven\/BlogArticlesExamples\/tree\/master\/split_file<\/a><\/b><\/p>\n<p><b>Capture du script dans la console<\/b><br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/flaven.fr\/wp-content\/uploads\/2015\/11\/split_database_1.jpg\" width=\"640\" height=\"480\" alt=\"Mac, Console - Fractionner des fichiers volumineux sous Mac avec la commande split\"><\/p>\n<p><b>Capture du script dans la console<\/b><br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/flaven.fr\/wp-content\/uploads\/2015\/11\/split_database_2.jpg\" width=\"640\" height=\"480\" alt=\"Mac, Console - Fractionner des fichiers volumineux sous Mac avec la commande split\"><\/p>\n<h2>En savoir plus<\/h2>\n<ul>\n<li>10 examples of split command in Unix<br \/><a href=\"http:\/\/www.theunixschool.com\/2012\/10\/10-examples-of-split-command-in-unix.html\" target=\"_blank\">http:\/\/www.theunixschool.com\/2012\/10\/10-examples-of-split-command-in-unix.html<\/a><\/li>\n<li>Introduction aux scripts shell<br \/><a href=\"http:\/\/doc.ubuntu-fr.org\/tutoriel\/script_shell\" target=\"_blank\">http:\/\/doc.ubuntu-fr.org\/tutoriel\/script_shell<\/a><\/li>\n<li>All commands | commandlinefu.com<br \/><a href=\"http:\/\/www.commandlinefu.com\/commands\/browse\" target=\"_blank\">http:\/\/www.commandlinefu.com\/commands\/browse<\/a><\/li>\n<li>Make Quick Multi File Files w\/ Terminal<br \/><a href=\"http:\/\/www.mactricksandtips.com\/2008\/07\/make-quick-multi-file-files-w-terminal.html\" target=\"_blank\">http:\/\/www.mactricksandtips.com\/2008\/07\/make-quick-multi-file-files-w-terminal.html<\/a><\/li>\n<li>Utiliser mysql en ligne de commande<br \/><a href=\"https:\/\/technique.arscenic.org\/lamp-linux-apache-mysql-php\/mysql-le-serveur-de-bases-de-donnees\/article\/utiliser-mysql-en-ligne-de\" target=\"_blank\">https:\/\/technique.arscenic.org\/lamp-linux-apache-mysql-php\/mysql-le-serveur-de-bases-de-donnees\/article\/utiliser-mysql-en-ligne-de<\/a><\/li>\n<li>Ruby en vingt minutes<br \/><a href=\"https:\/\/www.ruby-lang.org\/fr\/documentation\/quickstart\/\" target=\"_blank\">https:\/\/www.ruby-lang.org\/fr\/documentation\/quickstart\/<\/a><\/li>\n<li>Authentification unique<br \/><a href=\"https:\/\/fr.wikipedia.org\/wiki\/Authentification_unique\" target=\"_blank\">https:\/\/fr.wikipedia.org\/wiki\/Authentification_unique<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Voil\u00e0 typiquement l&#8217;article fourre-tout, on pourrait m\u00eame dire d\u00e9potoir, dans lequel va \u00eatre plac\u00e9 une succession de pratiques, bonnes ou mauvaises, \u00e0 priori l\u00e0 n&#8217;est&hellip; <\/p>\n<p class=\"text-center\"><a href=\"https:\/\/flaven.fr\/2015\/11\/mac-console-fractionner-des-fichiers-volumineux-sous-mac-avec-la-commande-split\/\" class=\"more-link\">Continue reading &rarr; <span class=\"screen-reader-text\">Mac, Console &#8211; Fractionner des fichiers volumineux sous Mac avec la commande split<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":10625,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"bf_ai_meta_description":"Fractionner des fichiers volumineux sous Mac avec la commande split. Utilisez outils int\u00e9gr\u00e9s pour manipuler .sql, .csv, .txt. Id\u00e9al pour migrations de donn\u00e9es.","bf_ai_og_title":"Fractionner fichiers Mac avec split","footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[3437,3454,3444,3447,3449,3450,3452],"tags":[524,2309,2210,417,2308,370,2310],"class_list":["post-10621","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-business-case-studies","category-journalism-writing","category-programming-databases","category-technology-trends","category-tutorials-how-to","category-ux-product-design","category-wordpress-cms","tag-console","tag-csv","tag-mac","tag-shell","tag-split","tag-sql","tag-uuid"],"jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p3Vuhl-2Lj","jetpack_featured_media_url":"https:\/\/flaven.fr\/wp-content\/uploads\/2015\/11\/split_database_b.jpg","_links":{"self":[{"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/posts\/10621","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/comments?post=10621"}],"version-history":[{"count":3,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/posts\/10621\/revisions"}],"predecessor-version":[{"id":10627,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/posts\/10621\/revisions\/10627"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/media\/10625"}],"wp:attachment":[{"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/media?parent=10621"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/categories?post=10621"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/tags?post=10621"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}