it-swarm-es.tech

Consultar un archivo CSV

¿Alguien sabe de una herramienta simple que abra un archivo CSV y le permita hacer consultas SQLesque básicas sobre él? Como una especie de herramienta gráfica, una que es fácil de usar.

Sé que podría escribir un pequeño script para importar el CSV en una base de datos SQLite, pero como me imagino que alguien más pensó en esto antes que yo, solo quería preguntar si existía. Lo que está provocando esta pregunta es que me estoy frustrando con las capacidades limitadas de filtrado de Excel.

Quizás alguna otra herramienta de manipulación de visualización de datos proporcionaría una funcionalidad similar.

Se prefiere gratis u OSS, pero estoy abierto a cualquier sugerencia.

EDITAR:

Realmente preferiría algunos tutoriales claros sobre cómo hacer lo siguiente en lugar de simplemente "hacer que su hoja sea una ODBC entry" o "escribir programas usando ODBC archivos" , o más ideas sobre aplicaciones para usar. Nota: No puedo usar MS Access.

Otra edición más:

Todavía estoy abierto a soluciones con SQLite. Mi plataforma es una laptop Win2k semi antigua, con un P4. Es bastante lento, por lo que una solución de recursos livianos es ideal y probablemente obtendría la victoria.

30
J. Polfer

¿Has probado LogParser ?

El analizador de registros es una herramienta potente y versátil que proporciona acceso de consulta universal a datos basados ​​en texto, como archivos de registro, archivos XML y archivos CSV, así como fuentes de datos clave en el sistema operativo Windows®, como el registro de eventos, el registro, el sistema de archivos y Active Directory®. Le dice a Log Parser qué información necesita y cómo desea que se procese. Los resultados de su consulta pueden formatearse de manera personalizada en resultados basados ​​en texto, o pueden persistirse en más destinos especializados como SQL, SYSLOG o un gráfico.

La mayoría del software está diseñado para realizar un número limitado de tareas específicas. Log Parser es diferente ... la cantidad de formas en que se puede usar está limitada solo por las necesidades y la imaginación del usuario. El mundo es su base de datos con Log Parser.

A tutorial (y un otro ) sobre el uso del lenguaje de consulta similar a SQL con archivos CSV I encontrado usando google .

Consulta de ejemplo:

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
13
svandragt

Creo que OpenOffice.org Database puede hacer lo que quiera. Funciona así.

  1. Inicie la base de datos Open Office.org, muestra el " Asistente de base de datos "

  2. Seleccione " Conectarse a una base de datos existente: Texto "

    enter image description here

  3. Especifique la ruta a los archivos de texto, así como detalles como el carácter separador, etc.

    enter image description here

  4. Crear y ejecutar consultas

    enter image description here

Si alguna vez trabajó con Microsoft Access, le resultará familiar la GUI.


Si puede prescindir de una GUI, siempre hay los comandos UNIX tradicionales. Los uso mucho para hacer consultas simples a archivos (pequeños) CSV. Así es como funciona:

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`
34
Ludwig Weinzierl

Puede usar ODBC para consultar archivos de texto:

Acceso a archivos de texto usando ODBC Proveedor de datos

Tenga en cuenta que no necesita MS Access para que esto funcione, el tutorial en el enlace anterior solo usa MS Access para crear el archivo de texto, pero como ya tiene un archivo de texto, desplácese hacia abajo hasta la mitad e inicie el tutorial donde verá el título Accediendo a un archivo de texto .

Actualización : Creé un DSN en un archivo .csv para poder crear este tutorial paso a paso ... aquí viene:

  • Asegúrese de que su archivo .csv esté en su propio directorio sin nada más.
  • Abra el "Administrador de fuente de datos ODBC" (inicio - panel de control - herramientas administrativas - Fuentes de datos (ODBC)).
  • Vaya a la pestaña DSN de archivo y haga clic en "Agregar ...".
  • Elija "Microsoft Text Driver (* .txt, * .csv) de la lista y haga clic en" Siguiente> ".
  • Dé un nombre a la fuente de datos de su archivo (por ejemplo, "prueba") y haga clic en "Siguiente>".
  • Haga clic en "Finalizar" (después de esto, aparecerá un cuadro de diálogo donde los campos "Nombre de fuente de datos" y "Descripción" están atenuados. Esto es normal. No se preocupe.
  • Desmarca la casilla de verificación "Usar el directorio actual". El botón "Seleccionar directorio" estará habilitado.
  • Haga clic en el botón "Seleccionar directorio" y navegue hasta la carpeta en la que colocó su archivo .csv en el primer paso.
  • Haga clic en el botón "Opciones >>".
  • Haga clic en el botón "Definir formato ...".
  • En la lista de "Tablas" de la izquierda, seleccione su archivo .csv y haga clic en el botón "Adivinar". (Esto analizará su archivo csv y creará un campo apropiado para cada columna en su archivo .csv).
  • Revise las columnas generadas (F1, F2, ...) en la lista correcta, asígneles nombres significativos y establezca el tipo de datos apropiado (a veces la suposición no siempre es correcta).
  • Una vez que todo esté configurado correctamente, haga clic en "Aceptar" (2 veces).

En este punto, debe tener un DSN de archivo con el que puede acceder a su archivo .csv a través de ODBC. Si inspecciona su carpeta donde está ubicado el archivo .csv, verá un archivo schema.ini, que contiene la configuración que acaba de crear. Cuando tiene varios archivos .csv, cada uno corresponde con una tabla y cada tabla tendrá un bloque [ filename. Csv] en el archivo schema.ini en el que se definen las diferentes columnas. También puede crear/cambiar ese archivo schema.ini directamente en un editor de texto en lugar de usar la GUI descrita anteriormente.

En cuanto a su pregunta adicional "cómo conectarse a este ODBC proveedor utilizando una herramienta de consulta":
Tengo una herramienta que escribí hace mucho tiempo que no es elegible para publicación. Pero una búsqueda rápida en Google apareció con odbc-view , una herramienta gratuita que hace lo que quieres.
Descargué e instalé la herramienta.
Después de iniciar la herramienta:

  • Haga clic en "DataSource ...".
  • Seleccione su Fuente de datos de archivo que creó anteriormente (por ejemplo, "prueba").
  • En el panel de consulta, escriba "select * from [ filename. Csv]".
  • Haga clic en "Ejecutar".

Debería ver el contenido de su archivo .csv en el panel inferior ahora.
Espero que esto ayude ... Avíseme cómo le va o si necesita más ayuda.

13
fretje

Me gusta usar R para acceder a archivos csv de manera rápida. Si bien el lenguaje no es directamente SQL, puede hacer todas esas cosas con comandos simples en R.R también le brinda la capacidad de hacer buenos gráficos y mucha otra potencia.

8
Christian

Descubrí que la forma más simple de lograr esto es usar la funcionalidad de importación CSV incorporada de SQLite:

  1. sqlite3 mydatabase.sqlite
  2. sqlite> .mode csv
  3. sqlite> .import mydata.csv <tablename>

Ahora tiene una base de datos en funcionamiento que puede consultar como desee. También encontré que el rendimiento de lo anterior es bueno, acabo de importar tres millones de filas en 10-15 segundos.

Siempre puede leer el archivo en Excel y usar Excel como su fuente de datos a través de ODBC) y ejecutar consultas en él.

5
m.floryan

Encontré una pequeña aplicación no gráfica que hace esto: csvsql .

La documentación es aquí .

4
Stefan Thyberg

Puede echar un vistazo a la herramienta gratuita q - Texto como una base de datos , que permite ejecutar SQL directamente en archivos csv, incluidas combinaciones, agrupaciones y cualquier otra construcción SQL. También incluye la detección automática de nombres de columna y tipos de columna.

Es una herramienta de línea de comandos que coincide con la forma de operación de Linux (por ejemplo, tuberías desde stdin si es necesario, indicadores especiales para personalizar el comportamiento, etc.).

Utiliza sqlite detrás de escena, muy ligero y fácil de usar.

Divulgación completa: es mi propia herramienta de código abierto. Esperamos que te sea útil

Harel Ben-Attia

3
Harel Ben Attia

Es posible que desee probar herramienta Q . Es muy liviano, solo requiere Python 2.5 o más reciente.

2
agrrd

He escrito un programa de línea de comandos para ejecutar SQL arbitrario en un archivo csv, incluyendo uniones de múltiples archivos, llamado gcsvsql. Usted puede leer sobre ello aquí:

http://bayesianconspiracy.blogspot.com/2010/03/gcsvsql.html

Hay un proyecto de Google Code para ello aquí: http://code.google.com/p/gcsvsql/

Está escrito en Java/Groovy, y se ejecutará en cualquier lugar Java está disponible.

Editar: proyecto activo movido a github. https://github.com/jdurbin/durbinlib

2
James Durbin

Creo que una herramienta que he encontrado que puede facilitar esto en el futuro es Resolver One .

Es una hoja de cálculo que genera un código Python que es fácilmente modificable. Para aquellos que son desarrolladores, y ocasionalmente necesitan "retirarse" para resolver problemas en las hojas de cálculo, esta parece una forma intuitiva de resolver la hoja de cálculo -esque problemas en un idioma con el que están familiarizados.

Y me da una excusa para usar Python. Python me hace feliz.

2
J. Polfer

El controlador H2 JDBC proporciona una función csvread muy útil, que le permite hacer cosas como las siguientes:

select * from csvread(test1.csv) test1 
inner join csvread(test2.csv2) test2
on test1.id = test2.foreignkey

Hay varias formas de hacer uso de este controlador sin tener que profundizar en escribir código para usarlo.

Personalmente, prefiero Squirrel SQL Client que le da una buena GUI para ejecutar consultas. Para usarlo, todo lo que necesita hacer es señalar el ya mencionado H2 In-Memory Driver classpath al controlador H2 que ha descargado. Una vez que haya configurado un alias adecuado con el controlador, puede ejecutar cualquier SQL aleatorio que desee. Los resultados se muestran en una tabla de Niza y todo tipo de otras características para importar, exportar, etc.

Alternativamente, puede usar Groovy para escribir un script rápido para cargar y usar el controlador según sea necesario. Ver este blogpost de ejemplo para averiguar cómo.

Parece que alguien ha extendido el maravilloso script anterior y lo ha convertido en una herramienta de línea de comandos de Niza para ejecutar las consultas, consulte gcsvsql. Con esto puedes ejecutar comandos como los siguientes:

gcsvsql "select * from people.csv where age > 40"
2
lstg

Dos opciones más para esta tarea: querycsv y fsql . Querycsv es Python y usa sqlite3. Fsql es Perl y usa DBD :: CSV .

1
Nelson

puedes usar WHS. Por ejemplo, tengo 4 archivos en el directorio '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=,

y hola.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();
}

Ahora solo haga doble clic en Hello.js y verá sql reqult línea por línea. Consulte la documentación de WHS para ver todos los resultados de la consulta.

0
Oleg

Hay un complemento de Notepad ++ CsvQuery para ejecutar consultas sql en archivos csv abiertos en npp. https://github.com/jokedst/CsvQuery

0
Greck

Si bien no es gratuito, el mejor programa que he encontrado para esto es Consulta de archivo . A diferencia de las otras soluciones que están basadas en la línea de comandos o que requieren importar/configurar el archivo antes de acceder a él, File Query le permite abrir un archivo (incluso los GB están como un editor de texto normal, y analizará automáticamente el diseño por usted, y le permite hacer casi todas sus consultas desde diálogos simples.

Es un poco caro, pero si solo necesita hacer algo una vez, siempre puede usar la prueba de 30 días de forma gratuita. También tienen excelentes guías e incluso videos para comenzar.

0
Jeffrey Harmon