Est-ce que quelqu'un connaît un outil simple qui ouvrira un fichier CSV et vous permettra de faire des requêtes de base sur SQLesque? Semblable à un outil graphique, facile à utiliser.
Je sais que je pourrais écrire un petit script pour importer le fichier CSV dans une base de données SQLite, mais comme j'imagine que quelqu'un d'autre a pensé à cela avant moi, je voulais simplement savoir s'il en existait un. Cette question est motivée par le fait que les capacités de filtrage limitées d'Excel me frustrent.
Peut-être qu'un autre outil de manipulation de visualisation de données fournirait une fonctionnalité similaire.
Gratuit ou libre est préféré, mais je suis ouvert à toute suggestion.
MODIFIER:
Je préférerais vraiment quelques tutoriels clairs sur la façon de procéder ci-dessous plutôt que de simplement "transformer votre feuille en une entrée ODBC" ou "écrire des programmes utilisant des fichiers ODBC", ou davantage d'idées sur les applications. utiliser. Remarque: je ne peux pas utiliser MS Access.
Encore un autre EDIT:
Je suis toujours ouvert aux solutions utilisant SQLite. Ma plate-forme est un ordinateur portable semi-ancien Win2k, avec un P4 dessus. C'est assez lent, donc une solution avec ressources limitées est idéale et serait probablement gagnante.
Avez-vous essayé LogParser ?
L’analyseur de journaux est un outil puissant et polyvalent qui offre un accès universel aux requêtes sur des données textuelles telles que des fichiers journaux, des fichiers XML et des fichiers CSV, ainsi que sur des sources de données clés sur le système d’exploitation Windows®, telles que le journal des événements, le registre, etc. le système de fichiers et Active Directory®. Vous indiquez à Log Parser les informations dont vous avez besoin et comment vous souhaitez les traiter. Les résultats de votre requête peuvent être mis en forme de manière personnalisée dans une sortie texte ou conservés dans des cibles plus spécialisées telles que SQL, SYSLOG ou un graphique.
La plupart des logiciels sont conçus pour accomplir un nombre limité de tâches spécifiques. Log Parser est différent ... son nombre d'utilisations n'est limité que par les besoins et l'imagination de l'utilisateur. Le monde est votre base de données avec Log Parser.
Un tutoriel (et un n autre ) sur l'utilisation du langage SQL comme le langage de requête avec les fichiers CSV I trouvé à l'aide de Google .
Exemple de requête:
logparser -i:CSV "SELECT TOP 10 Time, Count INTO c:\logparser\test\Chart.GIF
FROM c:\logparser\test\log.csv ORDER by Time DESC" -charttype:bar3d
Je pense que base de données OpenOffice.org peut faire ce que vous voulez. Cela fonctionne comme ça.
Démarrez la base de données Open Office.org, l’affiche " Assistant de base de données "
Sélectionnez " Connexion à une base de données existante: Texte "
Spécifiez le chemin d'accès aux fichiers texte ainsi que des détails tels que le caractère de séparation, etc.
Créer et exécuter des requêtes
Si vous avez déjà travaillé avec Microsoft Access, l’interface graphique vous sera familière.
Si vous pouvez vous passer d'une interface graphique, il y a toujours les commandes UNIX traditionnelles. Je les utilise beaucoup pour faire des requêtes simples sur de (petits) fichiers CSV. Voici comment cela fonctionne:
clause operation command
-------------------------------
from join `join`
where restriction `grep`
order by -- `sort`
group by restriction `awk`
having restriction `grep`
select projection `cut`
distinct restriction `uniq`
limit restriction `head`
offset restriction `tail`
Vous pouvez utiliser ODBC pour interroger des fichiers texte:
Accès aux fichiers texte à l'aide du fournisseur de données ODBC
Remarque Si vous n'avez pas besoin de MS Access pour que cela fonctionne, le didacticiel du lien ci-dessus utilise uniquement MS Access pour créer le fichier texte. vous avez déjà un fichier texte, faites défiler à mi-chemin et démarrez le tutoriel où vous voyez le titre Accès à un fichier texte .
Mise à jour : J'ai créé moi-même un DSN sur un fichier .csv pour pouvoir créer ce didacticiel pas à pas ... le voici:
À ce stade, vous devez disposer d'un fichier DSN avec lequel vous pouvez accéder à votre fichier .csv via ODBC. Si vous inspectez votre dossier dans lequel le fichier .csv est placé, vous verrez un fichier schema.ini, qui contient la configuration que vous venez de créer. Lorsque vous avez plusieurs fichiers .csv, chacun correspond à une table et chaque table aura un bloc [ nomfichier . Csv] dans le fichier schema.ini dans lequel se trouvent les différentes colonnes. défini ... Vous pouvez également créer/modifier ce fichier schema.ini directement dans un éditeur de texte au lieu d'utiliser l'interface graphique décrite ci-dessus.
En ce qui concerne votre question supplémentaire "comment se connecter à ce fournisseur ODBC à l'aide d'un outil de requête":
J'ai un outil que j'ai moi-même écrit il y a longtemps et qui n'est pas admissible à la publication. Mais une recherche rapide sur Google a abouti à odbc-view , un outil gratuit qui fait ce que vous voulez.
J'ai téléchargé et installé l'outil.
Après le démarrage de l'outil:
Vous devriez maintenant voir le contenu de votre fichier .csv dans le volet inférieur.
J'espère que cela vous aidera ... Faites-moi savoir comment vous faites ou si vous avez besoin d'aide.
J'aime utiliser R pour accéder rapidement aux fichiers csv. Bien que le langage ne soit pas directement SQL, vous pouvez faire toutes ces choses avec des commandes simples en R. R vous offre également la possibilité de créer des graphes de Nice et de nombreuses autres puissances.
Vous pouvez toujours lire le fichier dans Excel et utiliser Excel comme source de données via ODBC et exécuter des requêtes sur celui-ci.
Vous pouvez consulter l'outil gratuit q - Texte en tant que base de données , qui permet d'exécuter directement du code SQL sur des fichiers csv, notamment des jointures, des regroupements et toute autre construction SQL. Inclut également la détection automatique des noms et des types de colonne.
C'est un outil de ligne de commande qui correspond au mode de fonctionnement Linux (par exemple, Piping à partir de stdin si nécessaire, indicateurs spéciaux pour la personnalisation du comportement, etc.).
Utilise sqlite dans les coulisses, donc très léger et facile à utiliser.
Divulgation complète - C'est mon propre outil open source. J'espère que vous le trouverez utile
Harel Ben-Attia
J'ai trouvé que le moyen le plus simple d'y parvenir consiste simplement à utiliser la fonctionnalité d'importation CSV intégrée de SQLite:
sqlite3 mydatabase.sqlite
sqlite> .mode csv
sqlite> .import mydata.csv <tablename>
Maintenant, vous avez une base de données de travail que vous pouvez interroger comme vous le souhaitez. J'ai également constaté que les performances de ce qui précède étaient bonnes. Je viens d'importer trois millions de lignes en 10-15 secondes.
J'ai écrit un programme en ligne de commande pour exécuter du SQL arbitraire sur des fichiers csv, y compris des jointures de plusieurs fichiers, appelés gcsvsql. Vous pouvez lire à ce sujet ici:
http://bayesianconspiracy.blogspot.com/2010/03/gcsvsql.html
Il existe un projet de code Google pour cela ici: http://code.google.com/p/gcsvsql/
Il est écrit en Java/Groovy et s’exécutera partout où Java est disponible.
Edit: Projet actif déplacé vers github. https://github.com/jdurbin/durbinlib
Je pense que l’outil qui facilitera les choses dans le futur est premier résolveur .
C'est un tableur qui génère un code Python facilement modifiable. Pour ceux qui sont développeurs et qui ont parfois besoin de "démissionner" pour résoudre des problèmes dans les feuilles de calcul, cela semble être un moyen intuitif de résoudre des problèmes similaires à ceux d'une feuille de calcul dans une langue qu'ils connaissent bien.
Et cela me donne une excuse pour utiliser Python. Le python me rend heureux.
Le pilote H2 JDBC fournit une fonction très utile de csvread, qui vous permet d’effectuer les opérations suivantes:
select * from csvread(test1.csv) test1
inner join csvread(test2.csv2) test2
on test1.id = test2.foreignkey
Il existe différentes manières d'utiliser ce pilote sans avoir à se plonger dans l'écriture de code pour l'utiliser.
Personnellement, je préfère le Squirrel SQL Client , qui vous fournit une interface graphique conviviale pour l'exécution de requêtes. Pour l'utiliser, il vous suffit de pointer le chemin de classe H2 In-Memory
déjà indiqué sur le pilote H2 que vous avez téléchargé. Une fois que vous avez configuré un alias approprié à l'aide du pilote, vous pouvez exécuter le code SQL aléatoire souhaité. Les résultats sont affichés dans une table Nice et toutes sortes d'autres fonctionnalités pour importer, exporter, etc.
Alternativement, vous pouvez utiliser Groovy pour écrire un script rapide pour charger et utiliser le pilote si nécessaire. Voir cet exemple blogpost pour savoir comment.
Il semble que quelqu'un a étendu le script groovy ci-dessus et en a fait un outil de ligne de commande de Nice pour exécuter les requêtes, voir gcsvsql. Avec cela, vous pouvez exécuter des commandes comme suit:
gcsvsql "select * from people.csv where age > 40"
Vous voudrez peut-être essayer outil Q . Il est très léger et ne nécessite que Python 2.5 ou plus récent.
Deux autres options pour cette tâche: querycsv et fsql . Querycsv est Python et utilise sqlite3. Fsql est Perl et utilise DBD :: CSV .
vous pouvez utiliser WHS. Par exemple, j'ai 4 fichiers dans le répertoire 'C:\Users\user837\Desktop\t4': 1.txt
id;sex_ref;sale
1;1;10
2;2;30
3;1;20
2.txt
sex_id;name
1;male
2;female
schema.ini
[1.txt]
Format=Delimited(;)
ColNameHeader=True
MaxScanRows=50
DecimalSymbol=,
[2.txt]
Format=Delimited(;)
ColNameHeader=True
MaxScanRows=50
DecimalSymbol=,
et Hello.js
WScript.Echo("Hello World!");
var cn = new ActiveXObject("ADODB.Connection");
cn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\"C:\\Users\\user837\\Desktop\\t4\";Extended Properties=\"text;HDR=NO;FMT=Delimited\"");
var rs = cn.Execute("select * from 1.txt as t1 left join 2.txt as t2 on t1.sex_ref = t2.sex_id");
while (!rs.EOF)
{
WScript.Echo( rs.Fields("id").Value
+ "###" + rs.Fields("sex_ref").Value
+ "###" + rs.Fields("name").Value
);
rs.moveNext();
}
Maintenant, double-cliquez sur Hello.js et vous verrez sql reqult ligne par ligne. Voir la documentation WHS pour voir tous les résultats de la requête.
Il existe un plugin Notepad ++, CsvQuery, pour exécuter des requêtes SQL sur des fichiers CSV ouverts dans npp. https://github.com/jokedst/CsvQuery
Bien que n'étant pas gratuit, le meilleur programme que j'ai trouvé pour cela est File Query . À la différence des autres solutions basées sur la ligne de commande ou nécessitant d'importer/configurer le fichier avant de pouvoir y accéder, File Query vous permet d'ouvrir un fichier (même des Go insérés comme un éditeur de texte normal) et d'analyser automatiquement la mise en page pour vous. et vous permettent de faire presque toutes vos requêtes à partir de simples dialogues.
C'est un peu cher, mais si vous ne devez faire qu'une chose, vous pouvez toujours utiliser la version d'essai gratuite de 30 jours. Ils ont également une grande guides et même des vidéos pour vous aider à démarrer.