Fragensteller
ETL-Prozesse aus Access Datenbanken auf den SQL-Server können doch nicht so störanfällig sein!?

Frage
-
Hallo zusammen,
ich quäle mich schon seit längerem mit den ETL-prozessen aus div. Datenquelle rum. Ich habe eine KostSt.mdb aus DATEV in einen ETL-Prozess eingebunden. Die mdb wird täglich akualisiert und neu erzeugt. Das Paket läuft bei der ersten Erstellung wunderbar durch, alles lies sich problemlos einbinden.
1.) Starte ich das erstellte dts-Paket über den SQL-Server 2019 jobagent kommt die Fehlermeldung
Ein OLE DB-Datensatz ist verfügbar. Quelle: "Microsoft Access Database Engine" HRESULT: 0x80004005 Beschreibung: "The Microsoft Access database engine cannot open or write to the file '\\db09-datev\windvsw1\DATEV\DATEN\RWDAT\DATA\STANDARD\FM010\WJ2020\KostSt.mdb'. It is already opened exclusively by another user, or you need permission to view and write its data."
2.) Öffne ich das SSIS-Projekt in VS2019 komme ich nicht mehr in das Paket und VS2019 friert ein und der Datenflusstask gibt bei roten Kreuz "Überprüfungsfehler" aus. Auch eine Neuerstellung in einem neuen Paket schlägt fehl, denn sobald ich die Quelle neu anlege und auf Verbindung-Test gehen friert VS2019 ein. Über Access365 lässt sich die Datei normal öffnen und auch ein Umweg über eine accdb-Datei bringt nichts.
Wie kann man das Problem lösen ohne dabei eine externe csv-Datei über ein Programm zu erzeugen?
Kann man die Überprüfung nicht einfach ausstellen und wo kann man dies machen?Vielen Dank für Eure Tipps, Ideen und die Unterstützung
- Bearbeitet Controller123 Montag, 14. Dezember 2020 10:43
Alle Antworten
-
Danke für die Rückmeldung. Was meinst du genau im Verbindungsserver. Ich verstehe auch nicht wieso bei der ersten Erstellung alles geklappt hat. Den Datenbankschutz ist bei DATEV entfernt worden, so dass man hier kein Passwort eingeben muss. Egal welchen Weg ob mit ADMIN oder "Ohne ADMIN" ist VS2019 beim "Verbindungstest" oder "OK" mittlerweile ausgelastet und kann nur noch über den Taskmanager beendet werden.
Ist im Projekt der Weg der falsche (s.Abb.)?
- Bearbeitet Controller123 Montag, 14. Dezember 2020 12:23
-
MDB's haben einen Datenbankschutz via System.mdb.
In ACCxx-DB's wird die nicht mehr unterstützt.
https://support.microsoft.com/de-de/office/was-ist-mit-der-sicherheit-auf-benutzerebene-passiert-69b362cd-503f-4e8a-a735-fb923ffb9fa3Für die Datenbankbenutzer von MDB's muss man u.U. erst mal den Benutzerverwaltungsassistenten bemühen, der die System.mdb überhaupt erst erstellt.
U.U. muss der OLEDB-Treiber auch als Out-of-Process definiert werden, wenn die Bitness ggf. nicht gewährleistet ist:
https://www.sqlservercentral.com/articles/setting-up-linked-servers-with-an-out-of-process-oledb-provider -
Hi und vielen Dank für die Antworten. Das geht doch ziemlich stark ins eingemachte.
Nach dem verzweifelten Motto Versuch macht kluch, hat es über Microsoft.Jet.OLEDB.4.0 dann geklappt :-)
Wenn ich jetzt aber den Job mit dem hinterlegten Proxy biservice aufrufe kommt die Meldung, dass die Datenbank exclusiv geöffnet ist und ich die Berechtigung brauche. Starte ich den Job über den Proxy mit meinem Account klappt es. Muss/kann ich hier im Projekt etwas ändern, denn eigentlich hat der biservice den Zugriff auf den Pfad und keiner hat die Datenbank geöffnet.
Danke nochmals für Eure Erläuterungen. Ich staune und bewundere immer wieder welches Detailwissen und Gesamtverständnis ihr habt. Als Controller ist das Thema SQL zwar eine Art Pflicht-Hobby geworden, aber ich muss wegen fehlendem innerbetrieblichen Knowhow vieles erarbeiten und ich frage mich, ob man sowas alles auf einer Schulung lernen kann.......
- Bearbeitet Controller123 Dienstag, 15. Dezember 2020 09:02
-
Ich frage mich da eher, warum du das unbedingt als Verbindungsserver verwenden willst.
SSIS verwendet ja PowerQuery und kann native auf dei MDB zugreifen.Vielleicht hilft dir dies ja weiter:
https://www.mssqltips.com/sqlservertip/2656/simple-step-by-step-process-to-import-ms-access-data-into-sql-server-using-ssis/Ab Punkt 10 gehts mit dem ETL los.
Microsoft.Jet.OLEDB.4.0 ist auch der richtige Treiber.Ansonsten: Nach 45 Jahren IT hat man sich da schon einiges an Wissen angesammelt und ausprobiert.
Mich wundert da eher, warum man häufig nicht in der Lage ist, den Suchmaschinen die richtige Frage zu stellen;-). -
Guten Abend,
wenn es wie Du sagst ETL Prozesse mit mehrere Datenquellen sind, kannst Du Dir ja mal diese kostenlose Software ansehen:
https://sourceforge.net/projects/pentaho/files/Pentaho%209.0/
Da kannst Du mit unzähligen Datenquellen so ziemlich alles mit Deinen Daten machen was Du möchtest, und zeitgesteuert ausführen lassen (Berichte, die regelmäßig erstellt werden müssen, Datenimporte für Webanwendungen, usw.)
Schönen Abend.