diese vom Thema sein kann, aber ich denke, Sie sollten SQL Server und SSIS betrachten. Sie können problemlos alle Dateien in einem Ordner durchlaufen, alle in SQL Server laden und dann die Dateien aus dem Ordner verschieben. Wenn Sie das nächste Mal Dateien in Ihren Ordner ablegen, führen Sie den Prozess für diese neuen Dateien erneut aus. Siehe den Link unten für alle Details.
https://www.mssqltips.com/sqlservertip/2874/loop-through-flat-files-in-sql-server-integration-services/
Oder verwenden reine SQL die Arbeit zu tun.
--BULK INSERT MULTIPLE FILES From a Folder
--a table to loop thru filenames drop table ALLFILENAMES
CREATE TABLE ALLFILENAMES(WHICHPATH VARCHAR(255),WHICHFILE varchar(255))
--some variables
declare @filename varchar(255),
@path varchar(255),
@sql varchar(8000),
@cmd varchar(1000)
--get the list of files to process:
SET @path = 'C:\Dump\'
SET @cmd = 'dir ' + @path + '*.csv /b'
INSERT INTO ALLFILENAMES(WHICHFILE)
EXEC Master..xp_cmdShell @cmd
UPDATE ALLFILENAMES SET WHICHPATH = @path where WHICHPATH is null
--cursor loop
declare c1 cursor for SELECT WHICHPATH,WHICHFILE FROM ALLFILENAMES where WHICHFILE like '%.csv%'
open c1
fetch next from c1 into @path,@filename
While @@fetch_status <> -1
begin
--bulk insert won't take a variable name, so make a sql and execute it instead:
set @sql = 'BULK INSERT Temp FROM ''' + @path + @filename + ''' '
+ ' WITH (
FIELDTERMINATOR = '','',
ROWTERMINATOR = ''\n'',
FIRSTROW = 2
) '
print @sql
exec (@sql)
fetch next from c1 into @path,@filename
end
close c1
deallocate c1
--Extras
--delete from ALLFILENAMES where WHICHFILE is NULL
--select * from ALLFILENAMES
--drop table ALLFILENAMES
Von hier aus:
Import Multiple CSV Files to SQL Server from a Folder
Access wird diese Menge von Datum nicht umgehen, und wie Sie bereits wissen, wird Excel nicht einmal nahe kommen.
Noch eine Sache zu betrachten ist, R zu verwenden, das völlig frei und sehr schnell ist.
Wir begegnen oft Situationen, in denen wir Daten in mehreren Dateien, auf verschiedenen Frequenzen und auf verschiedenen Teilmengen von Beobachtungen haben, aber wir möchten sie so vollständig und systematisch wie möglich aufeinander abstimmen. In R ist der Befehl merge() eine gute Möglichkeit, zwei Datenframes zusammenzuführen.
Nur die beiden Datenrahmen in R
mydata1 = read.csv(path1, header=T)
mydata2 = read.csv(path2, header=T)
Dann fusionieren
myfulldata = merge(mydata1, mydata2)
Solange mydata1 und mydata2 mindestens eine gemeinsame Spalte mit einem identischen Namen gelesen (das ermöglicht Beobachtungen passende In mydata1 zu Beobachtungen in mydata2) wird dies wie ein Zauber wirken. Es dauert auch drei Zeilen.
Was ist, wenn ich 20 Dateien mit Daten habe, die ich Beobachtung-zur-Beobachtung zuordnen möchte? Angenommen, sie haben alle eine gemeinsame Spalte, die das Zusammenführen ermöglicht, müsste ich immer noch 20 Dateien in (20 Zeilen Code) lesen und merge() arbeitet paarweise ... also könnte ich die 20 Datenrahmen zusammen mit 19 Zusammenführungs-Anweisungen zusammenführen wie folgt:
mytempdata = merge(mydata1, mydata2)
mytempdata = merge(mytempdata, mydata3)
.
.
.
mytempdata = merge(mytempdata, mydata20)
Das ist mühsam. Sie suchen vielleicht nach einem einfacheren Weg. Wenn Sie sind, habe ich eine Funktion, um Ihre Leiden genannt multmerge() zu lösen * Hier ist der Code, um die Funktion zu definieren.
multmerge = function(mypath){
filenames=list.files(path=mypath, full.names=TRUE)
datalist = lapply(filenames, function(x){read.csv(file=x,header=T)})
Reduce(function(x,y) {merge(x,y)}, datalist)
Nach Ausführen des Codes die Funktion zu definieren, Sie sind alle gesetzt, es zu benutzen. Die Funktion nimmt einen Pfad. Dieser Pfad sollte der Name eines Ordners sein, der alle Dateien enthält, die Sie zusammen lesen und zusammenführen möchten, und nur die Dateien, die Sie zusammenführen möchten. In diesem Sinne habe ich zwei Tipps:
Bevor Sie diese Funktion verwenden, ist mein Vorschlag, einen neuen Ordner in einem kurzen Verzeichnis (z. B. den Pfad für diesen Ordner könnte "C: // R// merge ") und speichern Sie alle Dateien, die Sie in diesem Ordner zusammenführen möchten. Stellen Sie außerdem sicher, dass die Spalte, die den Abgleich durchführt, auf die gleiche Weise (und mit demselben Namen) in jeder der Dateien formatiert ist. Angenommen, Sie haben Ihre 20 Dateien im Mergeme-Ordner unter "C: // R // mergeme" gespeichert und möchten sie lesen und zusammenführen. In meiner Funktion zu verwenden, verwenden Sie die folgende Syntax:
mymergeddata = multmerge(“C://R//mergeme”)
Nachdem dieser Befehl ausgeführt wird, haben Sie einen voll integrierten Datenrahmen mit allen Ihren Variablen aufeinander abgestimmt. Natürlich hängen die meisten Details beim Zusammenführen und Zusammenführen von Daten davon ab, sicherzustellen, dass die allgemeine Spalte korrekt angegeben ist, aber da diese Funktion Ihnen viel Tipparbeit ersparen kann.
Sobald alles in 1 Datenrahmen zusammengeführt ist, exportieren Sie das in eine Textdatei oder eine CSV-Datei und laden Sie diese in SQL Server.
Sie können ADO mit Excel verwenden, um auf Textdateien zu verweisen. – Fionnuala
In MATLAB oder Python ist dies trivial. Öffnen Sie die Datei, lesen Sie zeilenweise bis glücklich, speichern Sie die Daten. –