it-swarm.asia

Meminta file CSV

Adakah yang tahu alat sederhana yang akan membuka file CSV dan membiarkan Anda melakukan pertanyaan SQLesque yang mendasar di dalamnya? Seperti alat grafis, yang mudah digunakan.

Saya tahu saya bisa menulis skrip kecil untuk melakukan impor CSV ke dalam database SQLite, tetapi karena saya membayangkan orang lain memikirkan ini sebelum saya, saya hanya ingin menanyakan apakah ada. Apa yang mendorong pertanyaan ini adalah saya merasa frustrasi dengan kemampuan penyaringan terbatas Excel.

Mungkin beberapa alat manipulasi visualisasi data lainnya akan menyediakan fungsionalitas serupa.

Gratis atau OSS lebih disukai, tetapi saya terbuka untuk saran.

EDIT:

Saya benar-benar lebih suka beberapa tutorial yang jelas tentang bagaimana melakukan di bawah ini daripada hanya "membuat sheet Anda menjadi entri ODBC" atau "menulis program menggunakan file ODBC", atau lebih banyak ide tentang aplikasi menggunakan. Catatan: Saya tidak bisa menggunakan MS Access.

EDIT lain:

Saya masih terbuka untuk solusi menggunakan SQLite. Platform saya adalah laptop Win2k semi-kuno, dengan P4 di atasnya. Ini cukup lambat, jadi solusi sumber daya cahaya sangat ideal dan kemungkinan akan menang.

30
J. Polfer

Sudahkah Anda mencoba LogParser ?

Log parser adalah alat yang kuat dan serbaguna yang menyediakan akses permintaan universal ke data berbasis teks seperti file log, file XML dan file CSV, serta sumber data utama pada sistem operasi Windows® seperti Event Log, Registry, sistem file, dan Active Directory®. Anda memberi tahu Log Parser informasi apa yang Anda butuhkan dan bagaimana Anda ingin memprosesnya. Hasil kueri Anda dapat diformat khusus dalam output berbasis teks, atau mereka dapat bertahan untuk target yang lebih khusus seperti SQL, SYSLOG, atau bagan.

Sebagian besar perangkat lunak dirancang untuk menyelesaikan sejumlah tugas tertentu. Log Parser berbeda ... jumlah cara yang dapat digunakan hanya dibatasi oleh kebutuhan dan imajinasi pengguna. Dunia adalah basis data Anda dengan Log Parser.

A tutorial (dan a yang lain ) tentang penggunaan bahasa query seperti SQL dengan file CSV I ditemukan menggunakan google .

Contoh Pertanyaan:

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

Saya pikir OpenOffice.org Database dapat melakukan apa yang Anda inginkan. Ini berfungsi seperti ini.

  1. Mulai buka database Office.org, ini menunjukkan " Database Wizard "

  2. Pilih " Hubungkan ke database yang ada: Teks "

    enter image description here

  3. Tentukan path ke file teks serta detail seperti karakter pemisah dll.

    enter image description here

  4. Buat dan jalankan Pertanyaan

    enter image description here

Jika Anda pernah bekerja dengan Microsoft Access, Anda akan menemukan GUI familier.


Jika Anda dapat melakukannya tanpa GUI selalu ada perintah UNIX tradisional. Saya sering menggunakannya untuk melakukan pertanyaan sederhana ke file CSV (kecil). Inilah cara kerjanya:

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

Anda dapat menggunakan ODBC untuk meminta file teks:

Mengakses File Teks menggunakan ODBC Penyedia Data

Catatan bahwa Anda tidak memerlukan MS Access untuk bekerja, tutorial di tautan di atas hanya menggunakan MS Access untuk membuat file teks, tetapi sebagai Anda sudah memiliki file teks, gulir ke bawah setengah, dan mulai tutorial di mana Anda melihat judul Mengakses File Teks .

Pembaruan : Saya membuat sendiri DSN pada file .csv untuk dapat membuat tutorial langkah demi langkah ... ini dia:

  • Pastikan file .csv Anda berada di direktori sendiri tanpa ada yang lain.
  • Buka "ODBC Data Source Administrator" (panel kontrol - mulai - alat administratif - Sumber Data (ODBC)).
  • Buka tab File DSN dan klik "Tambah ...".
  • Pilih "Microsoft Text Driver (* .txt, * .csv) dari daftar dan klik" Next> ".
  • Beri nama untuk sumber data file Anda (mis. "Test") dan klik "Next>".
  • Klik "Selesai" (Setelah ini, sebuah dialog akan muncul di mana bidang "Nama sumber data" dan "Deskripsi" memang diklik. Ini normal. Tidak perlu khawatir.
  • Hapus centang pada kotak centang "Gunakan Direktori Saat Ini". Tombol "Pilih Direktori" akan diaktifkan.
  • Klik tombol "Pilih Direktori" dan arahkan ke folder tempat Anda meletakkan file .csv di langkah pertama.
  • Klik pada tombol "Opsi >>".
  • Klik tombol "Tentukan Format ...".
  • Di daftar "Tabel" di sebelah kiri, pilih file .csv Anda dan klik tombol "Tebak". (Ini akan menganalisis file csv Anda dan membuat bidang yang sesuai untuk setiap kolom dalam file .csv Anda.)
  • Pergi melalui kolom yang dihasilkan (F1, F2, ...) di daftar yang tepat, beri mereka nama yang bermakna dan atur tipe data yang sesuai (kadang-kadang menebak tidak selalu benar).
  • Setelah semuanya diatur dengan benar, klik "OK" (2 kali).

Pada titik ini Anda harus memiliki file DSN yang dengannya Anda dapat mengakses file .csv Anda melalui ODBC. Jika Anda memeriksa folder di mana file .csv ditempatkan, Anda akan melihat file schema.ini, yang berisi konfigurasi yang baru saja Anda buat. Ketika Anda memiliki beberapa file .csv, masing-masing berkorespondensi dengan sebuah tabel dan setiap tabel akan memiliki blok nama [ nama file . Csv] dalam file schema.ini di mana berbagai kolom berbeda terdefinisi ... Anda juga dapat membuat/mengubah file schema.ini secara langsung dalam editor teks sebagai ganti menggunakan GUI yang dijelaskan di atas.

Adapun pertanyaan tambahan Anda "bagaimana menghubungkan ke penyedia ODBC ini menggunakan alat kueri":
Saya memiliki alat yang saya tulis sendiri sejak lama yang tidak memenuhi syarat untuk dipublikasikan. Tetapi pencarian Google cepat datang dengan odbc-view , alat freeware yang melakukan apa yang Anda inginkan.
Saya mengunduh dan menginstal alat ini.
Setelah memulai alat:

  • Klik pada "DataSource ...".
  • Pilih Sumber Data File Anda yang Anda buat sebelumnya (mis. "Test").
  • Pada panel permintaan, ketik "pilih * dari [ nama file . Csv]".
  • Klik "Jalankan".

Anda harus melihat konten file .csv Anda di panel bawah sekarang.
Semoga ini bisa membantu ... Beri tahu saya bagaimana Anda melakukannya atau jika Anda memerlukan bantuan lebih lanjut.

13
fretje

Saya suka menggunakan R untuk mengakses file csv dengan cara cepat. Meskipun bahasanya tidak langsung SQL, Anda bisa melakukan semua itu dengan perintah sederhana di R. R juga memberi Anda kemampuan untuk membuat grafik yang bagus dan banyak kekuatan lainnya.

8
Christian

Anda selalu dapat membaca file ke dalam Excel dan menggunakan Excel sebagai sumber data Anda melalui ODBC dan menjalankan kueri yang menentangnya.

5
m.floryan

Anda dapat melihat alat gratis q - Teks sebagai Database , yang memungkinkan mengeksekusi SQL langsung pada file csv, termasuk bergabung, pengelompokan dan konstruksi SQL lainnya. Juga termasuk deteksi otomatis nama kolom dan jenis kolom.

Ini adalah alat baris perintah yang cocok dengan cara operasi Linux (mis. Memipis dari stdin jika diperlukan, bendera khusus untuk menyesuaikan perilaku, dll.).

Menggunakan sqlite di belakang layar, sehingga sangat ringan dan mudah digunakan.

Pengungkapan penuh - Ini alat open source saya sendiri. Semoga bermanfaat

Harel Ben-Attia

3
Harel Ben Attia

Saya menemukan aplikasi kecil non-grafis yang melakukan ini: csvsql .

Dokumentasi adalah di sini .

3
Stefan Thyberg

Saya menemukan bahwa cara paling sederhana untuk mencapai ini adalah dengan hanya menggunakan fungsionalitas impor CSV bawaan SQLite:

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

Sekarang Anda memiliki database yang berfungsi yang dapat Anda query sesuka Anda. Saya juga menemukan kinerja di atas baik, saya hanya mengimpor tiga juta baris dalam 10-15 detik.

Saya telah menulis program baris perintah untuk mengeksekusi SQL sewenang-wenang pada file csv, termasuk multi-file joins, disebut gcsvsql. Anda dapat membacanya di sini:

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

Ada proyek Google Code untuk itu di sini: http://code.google.com/p/gcsvsql/

Ini ditulis dalam Java/Groovy, dan akan berjalan di mana saja Java tersedia.

Sunting: Proyek aktif dipindahkan ke github. https://github.com/jdurbin/durbinlib

2
James Durbin

Alat yang saya temukan itu, saya pikir, dapat membuat ini lebih mudah di masa depan adalah Penyelesai Sat .

Ini adalah spreadsheet yang menghasilkan kode Python yang mudah dimodifikasi. Bagi mereka yang merupakan pengembang, dan kadang-kadang perlu "mundur" untuk menyelesaikan masalah dalam spreadsheet, ini sepertinya cara intuitif untuk memecahkan masalah spreadsheet-esque dalam bahasa yang mereka kenal.

Dan itu memberi saya alasan untuk menggunakan Python. Python membuatku senang.

2
J. Polfer

Driver H2 JDBC menyediakan fungsi csvread yang sangat berguna, memungkinkan Anda untuk melakukan hal-hal seperti berikut:

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

Ada berbagai cara untuk menggunakan driver ini tanpa harus mempelajari kode penulisan untuk menggunakannya.

Secara pribadi, saya lebih suka Squirrel SQL Client yang memberi Anda GUI yang bagus untuk menjalankan kueri. Untuk menggunakannya, yang perlu Anda lakukan hanyalah mengarahkan H2 In-Memory driver classpath ke driver H2 yang sudah Anda unduh. Setelah Anda menyiapkan alias yang sesuai menggunakan driver Anda dapat menjalankan SQL acak apa pun yang Anda inginkan. Hasilnya ditampilkan dalam tabel Nice dan segala macam fitur lain untuk mengimpor, mengekspor, dll.

Atau, Anda dapat menggunakan Groovy untuk menulis skrip cepat untuk memuat dan menggunakan driver sebagaimana diperlukan. Lihat contoh blogpost ini untuk mengetahui caranya.

Tampaknya seseorang telah memperluas skrip groovy di atas dan membuatnya menjadi alat baris perintah yang bagus untuk menjalankan kueri, lihat gcsvsql. Dengan ini, Anda dapat menjalankan perintah seperti berikut:

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

Anda mungkin ingin mencoba alat Q . Ini sangat ringan, hanya membutuhkan Python 2.5 atau lebih baru.

1
agrrd

Dua opsi lagi untuk tugas ini: querycsv dan fsql . Querycsv adalah Python dan menggunakan sqlite3. Fsql adalah Perl dan menggunakan DBD :: CSV .

1
Nelson

anda bisa menggunakan WHS. Sebagai contoh, saya memiliki 4 file di direktori '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=,

dan 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();
}

Sekarang cukup klik dua kali pada Hello.js dan Anda akan melihat sql reqult baris demi baris. Lihat dokumentasi WHS untuk melihat semua hasil permintaan.

0
Oleg

Ada Notepad ++ plugin CsvQuery untuk menjalankan kueri sql pada file csv dibuka di npp. https://github.com/jokedst/CsvQuery

0
Greck

Meskipun tidak gratis, program terbaik yang saya temukan untuk ini adalah Permintaan File . Tidak seperti solusi lain yang berbasis baris perintah, atau mengharuskan mengimpor/mengatur file sebelum mengaksesnya, File Query memungkinkan Anda membuka file (bahkan GB inup seperti editor teks biasa, dan akan secara otomatis mengurai tata letak untuk Anda, dan membiarkan Anda melakukan hampir semua permintaan Anda dari dialog sederhana.

Agak mahal, tetapi jika Anda hanya perlu melakukan sesuatu sekali, Anda selalu dapat menggunakan uji coba 30 hari secara gratis. Mereka juga memiliki panduan hebat dan bahkan video untuk Anda mulai.

0
Jeffrey Harmon