Soru:
CSV dosyalarında SQL gerçekleştirmeye izin veren bir yazılım aracı var mı?
Vish_er
2019-05-21 22:52:47 UTC
view on stackexchange narkive permalink

Bir CSV dosyasını içe aktarmama ve üzerinde SQL işlemleri gerçekleştirmeme izin veren araçlar bulmaya çalışıyorum. SQL Dev 4'te içe aktarmayı denedim, ancak yerel bağlantı olmadan çalışmıyor. Veriler küçüktür, bu nedenle kurumsal düzeyde yoğun bir yazılıma ihtiyacım yok - sadece işi halletmek için bir şey. Herhangi bir öneri çok takdir edilecektir!

"Join" adlı standart bir komut satırı yardımcı programı vardır; [özellikler burada verilmiştir] (http://pubs.opengroup.org/onlinepubs/9699919799/utilities/join.html). Birkaç önemli uyarı vardır: 1. Yalnızca tek bir sınırlayıcıyla ilgilenebilir, bu nedenle CSV'lerdeki çift tırnaklı alanlar çıkarılır (ve virgül veya satırsonu içeren çift tırnaklı alanlar kesin olarak belirtilir); 2. Dosyalar birleştirme sütununda * sözlükbilimsel olarak * sıralanmalıdır (bu, sayısal olarak sıralanmış alanların hata vereceği anlamına gelir). Bu dezavantajlara rağmen, POSIX belirtildiği ve hemen hemen her yerde olduğu için bilmeye değer.
Microsoft'un [Log Parser] (https://www.microsoft.com/en-us/download/details.aspx?id=24659) oldukça güçlüdür, ancak maalesef yaklaşık 15 yıldır güncellenmedi. :) Açık kaynak veya keşfedilmiş bir alternatif olmasını diliyorum.
Altı yanıtlar:
Glorfindel
2019-05-21 23:37:39 UTC
view on stackexchange narkive permalink

Bir CSV dosyasındaki "sorun", tek "tablonun" bir adının olmamasıdır. Bu nedenle, üzerinde herhangi bir SQL sorgusu yapmadan önce bir tablo (sütunlar dahil) tanımlamanız ve CSV dosyasını içe aktarmanız gerekir.

Neredeyse tüm veritabanı tarayıcıları CSV'den içe aktarma sunar; hafif bir tane istiyorsanız, SQLite Browser 'ı tavsiye edebilirim. Açık kaynaklı, çapraz platform (Windows, macOS ve birçok Unix / Linux dağıtımı) ve açıkça bahsediyor

  • CSV dosyalarından tabloları içe / dışa aktar

özelliklerinden biri olarak.

SQLite CLI en kolay olanıdır: https://sqlite.org/cli.html ("CSV İçe Aktarma" bölümüne bakın)
Benjamin Crouzier
2020-03-21 02:22:27 UTC
view on stackexchange narkive permalink

q'ya bir göz atın

q, CSV'lerde / TSV'lerde (ve diğer tüm tablo metin dosyalarında) SQL benzeri sorguların doğrudan yürütülmesine izin veren bir komut satırı aracıdır.

https://github.com/harelba/q

Ticari kullanıcılar için güvenli olup olmadığını biliyor musunuz?
@Vish_er Lisansı github'da GPLv3'tür, ayrıca yazarla iletişime geçebilir ve sorabilirsiniz
rd_nielsen
2019-05-22 07:04:25 UTC
view on stackexchange narkive permalink

SQLite, birden çok dil tarafından desteklenen güzel ve hafif bir araçtır. Python kullanıyorsanız, Python Paket Dizininde (pypi.org) kullanımı kolaylaştıran (yazdığım https://pypi.org/project/querycsv/ dahil) birkaç araç vardır ). R kullanırsanız, verileri bir veri çerçevesine aktarmak için read.csv 'yi kullanabilir ve SQL kullanarak sorgulamak için sqldf paketini kullanabilirsiniz.

skybunk
2019-05-25 10:55:24 UTC
view on stackexchange narkive permalink

Bazı hafif betik dillerini kullanma esnekliğine sahipseniz deneyin -

  1. R betiği - Veri çerçevelerinde sql sorguları çalıştırmak için kullanılabilen sqldf kitaplığına sahiptir. Sadece csv'nizi bir veri çerçevesine okumanız gerekir.

  2. Python - pandasql kitaplığı, pandas veri çerçeveleri üzerinde aynı işlevselliğe sahiptir.

knb
2019-05-25 20:55:49 UTC
view on stackexchange narkive permalink

csvsql deneyin. Mart 2019'dan beri Python 3.7 ile test edilen, python ile yazılmış bir komut satırı araçları paketi olan csvsuite 'in bir parçasıdır.

csvkit araçları Data Komut satırında bilim. Standart girdiyi csvsql'ye iletirseniz, tablo stdin olarak adlandırılır.

  csvsql --helpBir veya daha fazla CSV dosyası için SQL ifadeleri oluşturun veya bu ifadeleri doğrudan bir veritabanı ve bir veya daha fazla SQL sorgusu yürütün.usage: csvsql [-h] [-d DELIMITER] [-t] [-q QUOTECHAR] [-u {0,1,2,3}] [-b] [ -p ESCAPECHAR] [-z FIELD_SIZE_LIMIT] [-e ENCODING] [-L LOCALE] [-S] [--blanks] [--date-format DATE_FORMAT] [--datetime-format DATETIME_FORMAT] [-H] [- K SKIP_LINES] [-v] [-l] [--zero] [-V] [-i {firebird, mssql, mysql, oracle, postgresql, sqlite, sybase}] [--db CONNECTION_STRING] [--query QUERY ] [--insert] [--prefix PREFIX] [--tables TABLE_NAMES] [--no-constraints] [--no-create] [--create-if-not-existing] [--overwrite] [- -db-schema DB_SCHEMA] [-y SNIFF_LIMIT] [-I] [FILE [FILE ...]]  

Başka benzer komut satırı araçları da var ama ben var n adını hatırlamıyorum.

Jerry
2020-08-18 08:52:48 UTC
view on stackexchange narkive permalink

esProc SPL kullansaydınız çok daha kolay olurdu. Doğrudan SQL sorgulama ve dosyalar için hesaplama (CSV, TXT, Excel vb.) Yeteneği sağlar. Örneğin:

  $ select * score.txt'den burada class = 10 // $ select sınıfı, avg (ingilizce) olarak sınıfa göre score.txt grubundan avg_en olarak filtrele // Grupla ve topla $ S olarak sales.txt'den toplam olarak seçin (S.quantity * P.Price), products.txt'yi S.productid = P.ID'de P olarak birleştirin, burada S.quantity< = 10 // birleştirme , filtre , toplam  

esProc ayrıca dosya veri kaynağı işleme için profesyonel bir araçtır. TXT, Excel, XML, JSON, CSV vb. Gibi çeşitli dosya verilerinden oluşan bir veritabanına içe ve dışa aktararak karışık hesaplamaları kolayca gerçekleştirebilir. Sözdizimi basittir, insanların doğal düşüncesine uygundur ve diğerlerinden daha basittir. gelişmiş geliştirme dilleri. Lütfen http://www.raqsoft.com/html/file-processor.html

adresine bakın.


Bu Soru-Cevap, otomatik olarak İngilizce dilinden çevrilmiştir.Orijinal içerik, dağıtıldığı cc by-sa 4.0 lisansı için teşekkür ettiğimiz stackexchange'ta mevcuttur.
Loading...