O tym, że Microsoft postanowił zamordować usługę Dynamics 365 Export Service pozwalającą na jednokierunkową synchronizację danych między Dataverse i Azure SQL słyszeli już pewnie wszyscy czytelnicy bloga. Organizacje wykorzystujące omawianą usługę powinny (wg. ewangelistów z Redmond) przełączyć się i zacząć wykorzystywać natywną integrację swoich instancji Dataverse z usługą Azure Synapse . W tym miejscu pojawiają się jednak schody. Systemem docelowym w ww. integracji nie jest bowiem baza transakcyjna, lecz usługa typu Data Lake. Natomiast dane pochodzące z Dataverse składowane są tam w postaci plików. Powyższą sytuację ratuję dostępna w ramach Azure Synapse serverlessowa *** SQL [1] . W praktyce możemy więc dostać się do danych plikowych nawet za pomocą kodu wykorzystującego klasyczne ADO.NET : using (SqlConnection conn = new SqlConnection(ConnectionString)) // ConnectionString to Synapse Data Lake Workspace { conn.Open(); Console.WriteLine(“Connection succesfull”); var command = conn.CreateCommand(); command.CommandText = “SELECT Id, Name FROM account”; var dataReader = command.ExecuteReader(); while (dataReader.Read()) { Console.WriteLine($”{ dataReader.GetValue(0).ToString() } : { dataReader.GetValue(1) }”); } Console.WriteLine(“Read operation completed”); } Powyższy mechanizm działa bez konieczności wykonywania jakichkolwiek czynności konfiguracyjnych. Na kłopot napotkałem w momencie, w którym zamiast zintegrowanego uwierzytelniania Azure Active Directory chciałem skorzystać z uwierzytelniania bazodanowego SQL Server wewnątrz procesów starego dobrego SQL Server Integration Services.  Repozytorium danych uraczyło mnie wówczas następującym błędem: Cannot find the CREDENTIAL ‘ ’, because it does not exist, or you do not have permission. Wprowadzona nazwa użytkownika oraz hasło na pewno były prawidłowe. „Ki diabeł?” – pomyślałem. Na szczęście z pomocą przyszła natychmiast internetowa społeczność i dzięki niej udało mi się rozwiązać napotkany problem. W jaki sposób to zrobić? Otóż w Azure Storage Account należy utworzyć nową sygnaturę współdzielonego dostępu (Shared Access Signature, więcej nt. tego mechanizmu znajdziecie pod adresem: https://docs.microsoft.com/en-us/rest/api/storageservices/delegate-access-with-shared-access-signature ). Następnie z poziomu edytora języka U-SQL w aplikacji Synapse Studio należy uruchomić poniższy skrypt: CREATE CREDENTIAL [https://mystorageaccount.dfs.core.windows.net/dataversefiles/**/*.csv] WITH IDENTITY=’SHARED ACCESS SIGNATURE’ , SECRET = ‘mysecret’; GO Gdzie: mystorageaccount – nazwa naszego konta Azure Storage dataversefiles – nazwa folderu, w którym przechowywane są pliki zawierające dane z Dataverse mysecret – klucz SAS wygenerowany w poprzednim kroku Po tej operacji uwierzytelnienie SQL Server powinno zadziałać prawidłowo.   To wszystko na dziś. Sayonara! [1] Wybaczcie mi powyższe kalki z języka mieszkańców Brytanii. Tweetuj