Kopiowanie danych z usługi Amazon RDS dla programu SQL Server przy użyciu usługi Azure Data Factory lub Azure Synapse Analytics
W tym artykule opisano sposób używania działania kopiowania w potokach usługi Azure Data Factory i Usługi Azure Synapse do kopiowania danych z usługi Amazon RDS dla bazy danych programu SQL Server. Aby dowiedzieć się więcej, przeczytaj artykuł wprowadzający dotyczący usługi Azure Data Factory lub Azure Synapse Analytics.
Obsługiwane możliwości
Ten łącznik usługi Amazon RDS dla programu SQL Server jest obsługiwany w następujących funkcjach:
Obsługiwane możliwości | IR |
---|---|
działanie Kopiuj (źródło/-) | (1) (2) |
Działanie Lookup | (1) (2) |
Działanie GetMetadata | (1) (2) |
Działanie procedury składowanej | (1) (2) |
(1) Środowisko Azure Integration Runtime (2) Self-hosted Integration Runtime
Aby uzyskać listę magazynów danych obsługiwanych jako źródła lub ujścia przez działanie kopiowania, zobacz tabelę Obsługiwane magazyny danych.
W szczególności ten łącznik usługi Amazon RDS dla programu SQL Server obsługuje następujące funkcje:
- PROGRAM SQL Server w wersji 2005 lub nowszej.
- Kopiowanie danych przy użyciu uwierzytelniania SQL lub Windows.
- Jako źródło pobieranie danych przy użyciu zapytania SQL lub procedury składowanej. Możesz również wybrać opcję równoległego kopiowania ze źródła usługi Amazon RDS dla programu SQL Server. Aby uzyskać szczegółowe informacje, zobacz sekcję Równoległa kopia z bazy danych SQL.
Baza danych LocalDB programu SQL Server Express nie jest obsługiwana.
Wymagania wstępne
Jeśli magazyn danych znajduje się wewnątrz sieci lokalnej, sieci wirtualnej platformy Azure lub chmury prywatnej Amazon Virtual, musisz skonfigurować własne środowisko Integration Runtime , aby się z nim połączyć.
Jeśli magazyn danych jest zarządzaną usługą danych w chmurze, możesz użyć środowiska Azure Integration Runtime. Jeśli dostęp jest ograniczony do adresów IP zatwierdzonych w regułach zapory, możesz dodać adresy IP środowiska Azure Integration Runtime do listy dozwolonych.
Możesz również użyć funkcji środowiska Integration Runtime zarządzanej sieci wirtualnej w usłudze Azure Data Factory, aby uzyskać dostęp do sieci lokalnej bez instalowania i konfigurowania własnego środowiska Integration Runtime.
Aby uzyskać więcej informacji na temat mechanizmów zabezpieczeń sieci i opcji obsługiwanych przez usługę Data Factory, zobacz Strategie dostępu do danych.
Rozpocznij
Aby wykonać działanie Kopiuj za pomocą potoku, możesz użyć jednego z następujących narzędzi lub zestawów SDK:
- Narzędzie do kopiowania danych
- Witryna Azure Portal
- Zestaw SDK platformy .NET
- Zestaw SDK języka Python
- Azure PowerShell
- Interfejs API REST
- Szablon usługi Azure Resource Manager
Tworzenie połączonej usługi Amazon RDS dla programu SQL Server przy użyciu interfejsu użytkownika
Wykonaj poniższe kroki, aby utworzyć połączoną usługę Amazon RDS dla programu SQL Server w interfejsie użytkownika witryny Azure Portal.
Przejdź do karty Zarządzanie w obszarze roboczym usługi Azure Data Factory lub Synapse i wybierz pozycję Połączone usługi, a następnie kliknij pozycję Nowy:
Wyszukaj usługę Amazon RDS dla programu SQL Server i wybierz łącznik Amazon RDS dla programu SQL Server.
Skonfiguruj szczegóły usługi, przetestuj połączenie i utwórz nową połączoną usługę.
Szczegóły konfiguracji łącznika
Poniższe sekcje zawierają szczegółowe informacje o właściwościach używanych do definiowania jednostek potoku usługi Data Factory i synapse specyficznych dla łącznika bazy danych usługi Amazon RDS dla programu SQL Server.
Właściwości połączonej usługi
Zalecana wersja łącznika usługi Amazon RDS dla programu SQL Server obsługuje protokół TLS 1.3. Zapoznaj się z tą sekcją, aby uaktualnić usługę Amazon RDS dla wersji łącznika programu SQL Server ze starszej wersji. Aby uzyskać szczegółowe informacje o właściwości, zobacz odpowiednie sekcje.
Uwaga
Usługa Amazon RDS dla usługi SQL Server Always Encrypted nie jest obsługiwana w przepływie danych.
Napiwek
Jeśli wystąpi błąd z kodem błędu "UserErrorFailedToConnectToSqlServer", a komunikat taki jak "Limit sesji dla bazy danych to XXX i został osiągnięty", dodaj Pooling=false
go do parametry połączenia i spróbuj ponownie.
Rekomendowana wersja
Te właściwości ogólne są obsługiwane w przypadku połączonej usługi Amazon RDS dla programu SQL Server w przypadku zastosowania zalecanej wersji:
Właściwości | Opis | Wymagania |
---|---|---|
type | Właściwość type musi być ustawiona na AmazonRdsForSqlServer. | Tak |
serwer | Nazwa lub adres sieciowy wystąpienia programu SQL Server, z którym chcesz nawiązać połączenie. | Tak |
database | Nazwa bazy danych. | Tak |
authenticationType | Typ używany do uwierzytelniania. Dozwolone wartości to SQL (wartość domyślna), Windows. Przejdź do odpowiedniej sekcji uwierzytelniania dotyczącej określonych właściwości i wymagań wstępnych. | Tak |
alwaysEncryptedSettings | Określ zawszeszyfrowanesettings informacje potrzebne do włączenia funkcji Always Encrypted w celu ochrony poufnych danych przechowywanych w usłudze Amazon RDS dla programu SQL Server przy użyciu tożsamości zarządzanej lub jednostki usługi. Aby uzyskać więcej informacji, zobacz przykład JSON w poniższej tabeli i sekcję Using Always Encrypted (Używanie funkcji Always Encrypted ). Jeśli nie zostanie określone, domyślne ustawienie zawsze szyfrowane jest wyłączone. | Nie. |
szyfrowanie | Określ, czy szyfrowanie TLS jest wymagane dla wszystkich danych wysyłanych między klientem a serwerem. Opcje: obowiązkowe (dla wartości true, default)/optional (dla wartości false)/strict. | Nie. |
trustServerCertificate | Określ, czy kanał zostanie zaszyfrowany podczas pomijania łańcucha certyfikatów w celu zweryfikowania zaufania. | Nie. |
hostNameInCertificate | Nazwa hosta do użycia podczas weryfikowania certyfikatu serwera dla połączenia. Jeśli nie zostanie określona, nazwa serwera jest używana do weryfikacji certyfikatu. | Nie. |
connectVia | To środowisko Integration Runtime służy do nawiązywania połączenia z magazynem danych. Dowiedz się więcej w sekcji Wymagania wstępne . Jeśli nie zostanie określony, zostanie użyte domyślne środowisko Azure Integration Runtime. | Nie. |
Aby uzyskać dodatkowe właściwości połączenia, zobacz poniższą tabelę:
Właściwości | Opis | Wymagania |
---|---|---|
applicationIntent | Typ obciążenia aplikacji podczas nawiązywania połączenia z serwerem. Dozwolone wartości to ReadOnly i ReadWrite . |
Nie. |
connectTimeout | Czas oczekiwania na połączenie z serwerem (w sekundach) przed zakończeniem próby i wygenerowaniem błędu. | Nie. |
connectRetryCount | Liczba ponownych połączeń podjęta po zidentyfikowaniu błędu bezczynności połączenia. Wartość powinna być liczbą całkowitą z zakresu od 0 do 255. | Nie. |
connectRetryInterval | Czas (w sekundach) między każdą ponowną próbą nawiązania połączenia po zidentyfikowaniu błędu bezczynności połączenia. Wartość powinna być liczbą całkowitą z zakresu od 1 do 60. | Nie. |
loadBalanceTimeout | Minimalny czas (w sekundach) połączenia na żywo w puli połączeń przed zniszczeniem połączenia. | Nie. |
commandTimeout | Domyślny czas oczekiwania (w sekundach) przed zakończeniem próby wykonania polecenia i wygenerowaniem błędu. | Nie. |
integratedSecurity | Dozwolone wartości to true lub false . Podczas określania false parametru określ, czy nazwa użytkownika i hasło są określone w połączeniu. Podczas określania true parametru wskazuje, czy bieżące poświadczenia konta systemu Windows są używane do uwierzytelniania. |
Nie. |
failoverPartner | Nazwa lub adres serwera partnerskiego do nawiązania połączenia, jeśli serwer podstawowy nie działa. | Nie. |
maxPoolSize | Maksymalna liczba połączeń dozwolonych w puli połączeń dla określonego połączenia. | Nie. |
minPoolSize | Minimalna liczba połączeń dozwolonych w puli połączeń dla określonego połączenia. | Nie. |
multipleActiveResultSets | Dozwolone wartości to true lub false . Po określeniu true parametru aplikacja może obsługiwać wiele aktywnych zestawów wyników (MARS). Po określeniu false parametru aplikacja musi przetworzyć lub anulować wszystkie zestawy wyników z jednej partii, zanim będzie mogła wykonać inne partie w tym połączeniu. |
Nie. |
multiSubnetFailover | Dozwolone wartości to true lub false . Jeśli aplikacja łączy się z zawsze włączoną grupą dostępności w różnych podsieciach, ustawienie tej właściwości w celu true zapewnienia szybszego wykrywania aktualnie aktywnego serwera i nawiązywania połączenia z tym serwerem. |
Nie. |
packetSize | Rozmiar w bajtach pakietów sieciowych używanych do komunikowania się z wystąpieniem serwera. | Nie. |
Buforowanie | Dozwolone wartości to true lub false . Po określeniu true parametru połączenie zostanie w puli. Po określeniu false parametru połączenie zostanie jawnie otwarte przy każdym żądaniu połączenia. |
Nie. |
Uwierzytelnianie SQL
Aby użyć uwierzytelniania SQL, oprócz właściwości ogólnych opisanych w poprzedniej sekcji, określ następujące właściwości:
Właściwości | Opis | Wymagania |
---|---|---|
userName | Nazwa użytkownika używana do nawiązywania połączenia z serwerem. | Tak |
hasło | Hasło dla nazwy użytkownika. Oznacz to pole jako SecureString , aby bezpiecznie je przechowywać. Możesz też odwołać się do wpisu tajnego przechowywanego w usłudze Azure Key Vault. | Tak |
Przykład: Używanie uwierzytelniania SQL
{
"name": "AmazonSqlLinkedService",
"properties": {
"type": "AmazonRdsForSqlServer",
"typeProperties": {
"server": "<name or network address of the SQL server instance>",
"database": "<database name>",
"encrypt": "<encrypt>",
"trustServerCertificate": false,
"authenticationType": "SQL",
"userName": "<user name>",
"password": {
"type": "SecureString",
"value": "<password>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Przykład: używanie uwierzytelniania SQL z hasłem w usłudze Azure Key Vault
{
"name": "AmazonSqlLinkedService",
"properties": {
"type": "AmazonRdsForSqlServer",
"typeProperties": {
"server": "<name or network address of the SQL server instance>",
"database": "<database name>",
"encrypt": "<encrypt>",
"trustServerCertificate": false,
"authenticationType": "SQL",
"userName": "<user name>",
"password": {
"type": "AzureKeyVaultSecret",
"store": {
"referenceName": "<Azure Key Vault linked service name>",
"type": "LinkedServiceReference"
},
"secretName": "<secretName>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Przykład: Używanie funkcji Always Encrypted
{
"name": "AmazonSqlLinkedService",
"properties": {
"type": "AmazonRdsForSqlServer",
"typeProperties": {
"server": "<name or network address of the SQL server instance>",
"database": "<database name>",
"encrypt": "<encrypt>",
"trustServerCertificate": false,
"authenticationType": "SQL",
"userName": "<user name>",
"password": {
"type": "SecureString",
"value": "<password>"
},
"alwaysEncryptedSettings": {
"alwaysEncryptedAkvAuthType": "ServicePrincipal",
"servicePrincipalId": "<service principal id>",
"servicePrincipalKey": {
"type": "SecureString",
"value": "<service principal key>"
}
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Uwierzytelnianie systemu Windows
Aby użyć uwierzytelniania systemu Windows, oprócz właściwości ogólnych opisanych w poprzedniej sekcji, określ następujące właściwości:
Właściwości | Opis | Wymagania |
---|---|---|
userName | Określ nazwę użytkownika. Przykładem jest nazwa_domeny\nazwa_użytkownika. | Tak |
hasło | Określ hasło dla konta użytkownika określonego dla nazwy użytkownika. Oznacz to pole jako SecureString , aby bezpiecznie je przechowywać. Możesz też odwołać się do wpisu tajnego przechowywanego w usłudze Azure Key Vault. | Tak |
Przykład: Korzystanie z uwierzytelniania systemu Windows
{
"name": "AmazonSqlLinkedService",
"properties": {
"type": "AmazonRdsForSqlServer",
"typeProperties": {
"server": "<name or network address of the SQL server instance>",
"database": "<database name>",
"encrypt": "<encrypt>",
"trustServerCertificate": false,
"authenticationType": "Windows",
"userName": "<domain\\username>",
"password": {
"type": "SecureString",
"value": "<password>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Starsza wersja
Te właściwości ogólne są obsługiwane w przypadku połączonej usługi Amazon RDS dla programu SQL Server podczas stosowania starszej wersji:
Właściwości | Opis | Wymagania |
---|---|---|
type | Właściwość type musi być ustawiona na AmazonRdsForSqlServer. | Tak |
alwaysEncryptedSettings | Określ zawszeszyfrowanesettings informacje potrzebne do włączenia funkcji Always Encrypted w celu ochrony poufnych danych przechowywanych w usłudze Amazon RDS dla programu SQL Server przy użyciu tożsamości zarządzanej lub jednostki usługi. Aby uzyskać więcej informacji, zobacz sekcję Using Always Encrypted (Używanie funkcji Always Encrypted ). Jeśli nie zostanie określone, domyślne ustawienie zawsze szyfrowane jest wyłączone. | Nie. |
connectVia | To środowisko Integration Runtime służy do nawiązywania połączenia z magazynem danych. Dowiedz się więcej w sekcji Wymagania wstępne . Jeśli nie zostanie określony, zostanie użyte domyślne środowisko Azure Integration Runtime. | Nie. |
Ten łącznik usługi Amazon RDS dla programu SQL Server obsługuje następujące typy uwierzytelniania. Aby uzyskać szczegółowe informacje, zobacz odpowiednie sekcje.
Uwierzytelnianie SQL dla starszej wersji
Aby użyć uwierzytelniania SQL, oprócz właściwości ogólnych opisanych w poprzedniej sekcji, określ następujące właściwości:
Właściwości | Opis | Wymagania |
---|---|---|
Parametry połączenia | Określ informacje connectionString potrzebne do nawiązania połączenia z usługą Amazon RDS dla bazy danych programu SQL Server. Określ nazwę logowania jako nazwę użytkownika i upewnij się, że baza danych, którą chcesz połączyć, jest mapowana na to logowanie. | Tak |
hasło | Jeśli chcesz umieścić hasło w usłudze Azure Key Vault, pobierz password konfigurację z parametry połączenia. Aby uzyskać więcej informacji, zobacz Przechowywanie poświadczeń w usłudze Azure Key Vault. |
Nie. |
Uwierzytelnianie systemu Windows dla starszej wersji
Aby użyć uwierzytelniania systemu Windows, oprócz właściwości ogólnych opisanych w poprzedniej sekcji, określ następujące właściwości:
Właściwości | Opis | Wymagania |
---|---|---|
Parametry połączenia | Określ informacje connectionString potrzebne do nawiązania połączenia z bazą danych usługi Amazon RDS dla programu SQL Server. | Tak |
userName | Określ nazwę użytkownika. Przykładem jest nazwa_domeny\nazwa_użytkownika. | Tak |
hasło | Określ hasło dla konta użytkownika określonego dla nazwy użytkownika. Oznacz to pole jako SecureString , aby bezpiecznie je przechowywać. Możesz też odwołać się do wpisu tajnego przechowywanego w usłudze Azure Key Vault. | Tak |
Właściwości zestawu danych
Pełna lista sekcji i właściwości dostępnych do definiowania zestawów danych znajduje się w artykule dotyczącym zestawów danych. Ta sekcja zawiera listę właściwości obsługiwanych przez zestaw danych usługi Amazon RDS dla programu SQL Server.
Aby skopiować dane z bazy danych usługi Amazon RDS dla programu SQL Server, obsługiwane są następujące właściwości:
Właściwości | Opis | Wymagania |
---|---|---|
type | Właściwość type zestawu danych musi być ustawiona na AmazonRdsForSqlServerTable. | Tak |
schema | Nazwa schematu. | Nie. |
table | Nazwa tabeli/widoku. | Nie. |
tableName | Nazwa tabeli/widoku ze schematem. Ta właściwość jest obsługiwana w celu zapewnienia zgodności z poprzednimi wersjami. W przypadku nowego obciążenia użyj polecenia schema i table . |
Nie. |
Przykład
{
"name": "AmazonRdsForSQLServerDataset",
"properties":
{
"type": "AmazonRdsForSqlServerTable",
"linkedServiceName": {
"referenceName": "<Amazon RDS for SQL Server linked service name>",
"type": "LinkedServiceReference"
},
"schema": [ < physical schema, optional, retrievable during authoring > ],
"typeProperties": {
"schema": "<schema_name>",
"table": "<table_name>"
}
}
}
Właściwości działania kopiowania
Aby uzyskać pełną listę sekcji i właściwości dostępnych do użycia do definiowania działań, zobacz artykuł Pipelines (Potoki ). Ta sekcja zawiera listę właściwości obsługiwanych przez usługę Amazon RDS dla źródła programu SQL Server.
Usługa Amazon RDS dla programu SQL Server jako źródło
Napiwek
Aby wydajnie ładować dane z usługi Amazon RDS dla programu SQL Server przy użyciu partycjonowania danych, dowiedz się więcej na stronie Kopiowanie równoległe z bazy danych SQL.
Aby skopiować dane z usługi Amazon RDS dla programu SQL Server, ustaw typ źródła w działaniu kopiowania na AmazonRdsForSqlServerSource. Następujące właściwości są obsługiwane w sekcji źródło działania kopiowania:
Właściwości | Opis | Wymagania |
---|---|---|
type | Właściwość type źródła działania kopiowania musi być ustawiona na AmazonRdsForSqlServerSource. | Tak |
sqlReaderQuery | Użyj niestandardowego zapytania SQL, aby odczytać dane. Może to być na przykład select * from MyTable . |
Nie. |
sqlReaderStoredProcedureName | Ta właściwość jest nazwą procedury składowanej, która odczytuje dane z tabeli źródłowej. Ostatnia instrukcja SQL musi być instrukcją SELECT w procedurze składowanej. | Nie. |
storedProcedureParameters | Te parametry są przeznaczone dla procedury składowanej. Dozwolone wartości to pary nazw lub wartości. Nazwy i wielkość liter parametrów muszą być zgodne z nazwami i wielkością parametrów procedury składowanej. |
Nie. |
isolationLevel | Określa zachowanie blokowania transakcji dla źródła SQL. Dozwolone wartości to: ReadCommitted, ReadUncommitted, RepeatableRead, Serializable, Snapshot. Jeśli nie zostanie określony, zostanie użyty domyślny poziom izolacji bazy danych. Aby uzyskać więcej informacji, zapoznaj się z tym dokumentem . | Nie. |
partitionOptions | Określa opcje partycjonowania danych używane do ładowania danych z usługi Amazon RDS dla programu SQL Server. Dozwolone wartości to: Brak (wartość domyślna), PhysicalPartitionsOfTable i DynamicRange. Jeśli opcja partycji jest włączona (czyli nie None ), stopień równoległości równoczesnego ładowania danych z usługi Amazon RDS dla programu SQL Server jest kontrolowany przez parallelCopies ustawienie działania kopiowania. |
Nie. |
partitionSettings | Określ grupę ustawień partycjonowania danych. Zastosuj, gdy opcja partycji nie None jest . |
Nie. |
W obszarze partitionSettings : |
||
partitionColumnName | Określ nazwę kolumny źródłowej w liczbą całkowitą lub typu daty/daty/godziny (int , smallint , smalldatetime date datetime bigint datetime2 lub datetimeoffset ), która będzie używana przez partycjonowanie zakresu na potrzeby kopiowania równoległego. Jeśli nie zostanie określony, indeks lub klucz podstawowy tabeli zostanie automatycznie wykryty i użyty jako kolumna partycji.Zastosuj, gdy opcja partycji to DynamicRange . Jeśli używasz zapytania do pobierania danych źródłowych, należy podłączyć ?DfDynamicRangePartitionCondition się do klauzuli WHERE. Aby zapoznać się z przykładem, zobacz sekcję Kopiowanie równoległe z bazy danych SQL. |
Nie. |
partitionUpperBound | Maksymalna wartość kolumny partycji dla podziału zakresu partycji. Ta wartość służy do decydowania o kroku partycji, a nie do filtrowania wierszy w tabeli. Wszystkie wiersze w tabeli lub wyniku zapytania zostaną podzielone na partycje i skopiowane. Jeśli nie zostanie określony, działanie kopiowania automatycznie wykrywa wartość. Zastosuj, gdy opcja partycji to DynamicRange . Aby zapoznać się z przykładem, zobacz sekcję Kopiowanie równoległe z bazy danych SQL. |
Nie. |
partitionLowerBound | Minimalna wartość kolumny partycji dla podziału zakresu partycji. Ta wartość służy do decydowania o kroku partycji, a nie do filtrowania wierszy w tabeli. Wszystkie wiersze w tabeli lub wyniku zapytania zostaną podzielone na partycje i skopiowane. Jeśli nie zostanie określony, działanie kopiowania automatycznie wykrywa wartość. Zastosuj, gdy opcja partycji to DynamicRange . Aby zapoznać się z przykładem, zobacz sekcję Kopiowanie równoległe z bazy danych SQL. |
Nie. |
Pamiętaj o następujących kwestiach:
- Jeśli dla elementu AmazonRdsForSqlServerSource określono wartość sqlReaderQuery, działanie kopiowania uruchamia to zapytanie względem źródła usługi Amazon RDS dla programu SQL Server w celu pobrania danych. Można również określić procedurę składowaną, określając parametry sqlReaderStoredProcedureName i storedProcedureParameters .
- W przypadku używania procedury składowanej w źródle do pobierania danych należy pamiętać, że procedura składowana jest zaprojektowana jako zwracanie innego schematu po przekazaniu innej wartości parametru, może wystąpić błąd lub nieoczekiwany wynik podczas importowania schematu z interfejsu użytkownika lub kopiowania danych do bazy danych SQL z automatycznym tworzeniem tabeli.
Przykład: używanie zapytania SQL
"activities":[
{
"name": "CopyFromAmazonRdsForSQLServer",
"type": "Copy",
"inputs": [
{
"referenceName": "<Amazon RDS for SQL Server input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "AmazonRdsForSqlServerSource",
"sqlReaderQuery": "SELECT * FROM MyTable"
},
"sink": {
"type": "<sink type>"
}
}
}
]
Przykład: używanie procedury składowanej
"activities":[
{
"name": "CopyFromAmazonRdsForSQLServer",
"type": "Copy",
"inputs": [
{
"referenceName": "<Amazon RDS for SQL Server input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "AmazonRdsForSqlServerSource",
"sqlReaderStoredProcedureName": "CopyTestSrcStoredProcedureWithParameters",
"storedProcedureParameters": {
"stringData": { "value": "str3" },
"identifier": { "value": "$$Text.Format('{0:yyyy}', <datetime parameter>)", "type": "Int"}
}
},
"sink": {
"type": "<sink type>"
}
}
}
]
Definicja procedury składowanej
CREATE PROCEDURE CopyTestSrcStoredProcedureWithParameters
(
@stringData varchar(20),
@identifier int
)
AS
SET NOCOUNT ON;
BEGIN
select *
from dbo.UnitTestSrcTable
where dbo.UnitTestSrcTable.stringData != stringData
and dbo.UnitTestSrcTable.identifier != identifier
END
GO
Równoległa kopia z bazy danych SQL
Łącznik Amazon RDS for SQL Server w działaniu kopiowania zapewnia wbudowane partycjonowanie danych w celu równoległego kopiowania danych. Opcje partycjonowania danych można znaleźć na karcie Źródło działania kopiowania.
Po włączeniu kopii partycjonowanej działanie kopiowania uruchamia zapytania równoległe względem źródła usługi Amazon RDS dla programu SQL Server w celu załadowania danych według partycji. Stopień równoległy jest kontrolowany przez parallelCopies
ustawienie działania kopiowania. Jeśli na przykład ustawiono parallelCopies
wartość cztery, usługa jednocześnie generuje i uruchamia cztery zapytania na podstawie określonej opcji partycji i ustawień, a każde zapytanie pobiera część danych z usługi Amazon RDS dla programu SQL Server.
Zaleca się włączenie kopiowania równoległego przy użyciu partycjonowania danych, szczególnie w przypadku ładowania dużej ilości danych z usług Amazon RDS dla programu SQL Server. Poniżej przedstawiono sugerowane konfiguracje dla różnych scenariuszy. Podczas kopiowania danych do magazynu danych opartego na plikach zaleca się zapisywanie w folderze jako wielu plików (tylko określ nazwę folderu), w tym przypadku wydajność jest lepsza niż zapisywanie w jednym pliku.
Scenariusz | Sugerowane ustawienia |
---|---|
Pełne ładowanie z dużej tabeli z partycjami fizycznymi. | Opcja partycji: fizyczne partycje tabeli. Podczas wykonywania usługa automatycznie wykrywa partycje fizyczne i kopiuje dane według partycji. Aby sprawdzić, czy tabela ma partycję fizyczną, czy nie, możesz odwołać się do tego zapytania. |
Pełne ładowanie z dużej tabeli, bez partycji fizycznych, podczas gdy z liczbą całkowitą lub kolumną datetime na potrzeby partycjonowania danych. | Opcje partycji: partycja zakresu dynamicznego. Kolumna partycji (opcjonalnie): określ kolumnę używaną do partycjonowania danych. Jeśli nie zostanie określona, zostanie użyta kolumna klucza podstawowego. Górna granica partycji i dolna granica partycji (opcjonalnie): określ, czy chcesz określić krok partycji. Nie dotyczy to filtrowania wierszy w tabeli. Wszystkie wiersze w tabeli zostaną podzielone na partycje i skopiowane. Jeśli nie zostanie określony, działanie kopiowania automatycznie wykrywa wartości i może zająć dużo czasu w zależności od wartości MIN i MAX. Zaleca się podanie górnej granicy i dolnej granicy. Jeśli na przykład kolumna partycji "ID" zawiera wartości z zakresu od 1 do 100, a dolna granica zostanie ustawiona na wartość 20, a górna granica to 80, z kopią równoległą jako 4, usługa pobiera dane według 4 partycji — identyfikatory w zakresie <=20, [21, 50], [51, 80] i >=81. |
Załaduj dużą ilość danych przy użyciu zapytania niestandardowego, bez partycji fizycznych, natomiast z liczbą całkowitą lub kolumną date/datetime na potrzeby partycjonowania danych. | Opcje partycji: partycja zakresu dynamicznego. Zapytanie: SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause> .Kolumna partycji: określ kolumnę używaną do partycjonowania danych. Górna granica partycji i dolna granica partycji (opcjonalnie): określ, czy chcesz określić krok partycji. Nie jest to przeznaczone do filtrowania wierszy w tabeli, wszystkie wiersze w wyniku zapytania zostaną partycjonowane i skopiowane. Jeśli nie zostanie określony, działanie kopiowania automatycznie wykrywa wartość. Jeśli na przykład kolumna partycji "ID" zawiera wartości z zakresu od 1 do 100, a dolna granica zostanie ustawiona jako 20 i górna granica jako 80, z kopią równoległą jako 4, usługa pobiera dane według 4 partycji — identyfikatory w zakresie <=20, [21, 50], [51, 80] i >=81. Poniżej przedstawiono więcej przykładowych zapytań dla różnych scenariuszy: 1. Wykonaj zapytanie względem całej tabeli: SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition 2. Kwerenda z tabeli z zaznaczeniem kolumny i dodatkowymi filtrami klauzuli where: SELECT <column_list> FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause> 3. Kwerenda z podzapytaniami: SELECT <column_list> FROM (<your_sub_query>) AS T WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause> 4. Kwerenda z partycją w podzapytaniu: SELECT <column_list> FROM (SELECT <your_sub_query_column_list> FROM <TableName> WHERE ?DfDynamicRangePartitionCondition) AS T |
Najlepsze rozwiązania dotyczące ładowania danych z opcją partycji:
- Wybierz charakterystyczną kolumnę jako kolumnę partycji (np. klucz podstawowy lub unikatowy klucz), aby uniknąć niesymetryczności danych.
- Jeśli tabela ma wbudowaną partycję, użyj opcji partycji "Partycje fizyczne tabeli", aby uzyskać lepszą wydajność.
- Jeśli używasz środowiska Azure Integration Runtime do kopiowania danych, możesz ustawić większe wartości "Integracja danych Units (DIU)" (>4) w celu korzystania z większej liczby zasobów obliczeniowych. Sprawdź odpowiednie scenariusze.
- "Stopień równoległości kopiowania" steruje numerami partycji, ustawiając tę liczbę zbyt dużą, czasami boli wydajność, zaleca się ustawienie tej liczby jako (DIU lub liczba węzłów własnego środowiska IR) * (od 2 do 4).
Przykład: pełne ładowanie z dużej tabeli z partycjami fizycznymi
"source": {
"type": "AmazonRdsForSqlServerSource",
"partitionOption": "PhysicalPartitionsOfTable"
}
Przykład: zapytanie z partycją zakresu dynamicznego
"source": {
"type": "AmazonRdsForSqlServerSource",
"query": "SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>",
"partitionOption": "DynamicRange",
"partitionSettings": {
"partitionColumnName": "<partition_column_name>",
"partitionUpperBound": "<upper_value_of_partition_column (optional) to decide the partition stride, not as data filter>",
"partitionLowerBound": "<lower_value_of_partition_column (optional) to decide the partition stride, not as data filter>"
}
}
Przykładowe zapytanie do sprawdzania partycji fizycznej
SELECT DISTINCT s.name AS SchemaName, t.name AS TableName, pf.name AS PartitionFunctionName, c.name AS ColumnName, iif(pf.name is null, 'no', 'yes') AS HasPartition
FROM sys.tables AS t
LEFT JOIN sys.objects AS o ON t.object_id = o.object_id
LEFT JOIN sys.schemas AS s ON o.schema_id = s.schema_id
LEFT JOIN sys.indexes AS i ON t.object_id = i.object_id
LEFT JOIN sys.index_columns AS ic ON ic.partition_ordinal > 0 AND ic.index_id = i.index_id AND ic.object_id = t.object_id
LEFT JOIN sys.columns AS c ON c.object_id = ic.object_id AND c.column_id = ic.column_id
LEFT JOIN sys.partition_schemes ps ON i.data_space_id = ps.data_space_id
LEFT JOIN sys.partition_functions pf ON pf.function_id = ps.function_id
WHERE s.name='[your schema]' AND t.name = '[your table name]'
Jeśli tabela ma partycję fizyczną, zostanie wyświetlona wartość "HasPartition" jako "tak", jak pokazano poniżej.
Właściwości działania wyszukiwania
Aby dowiedzieć się więcej o właściwościach, sprawdź działanie Wyszukiwania.
Właściwości działania GetMetadata
Aby dowiedzieć się więcej o właściwościach, sprawdź działanie GetMetadata
Korzystanie z funkcji Always Encrypted
Podczas kopiowania danych z usługi Amazon RDS dla programu SQL Server z funkcją Always Encrypted wykonaj następujące kroki:
Przechowywanie klucza głównego kolumny (CMK) w usłudze Azure Key Vault. Dowiedz się więcej na temat konfigurowania funkcji Always Encrypted przy użyciu usługi Azure Key Vault
Upewnij się, że udzielono dostępu do magazynu kluczy, w którym jest przechowywany klucz główny kolumny (CMK ). Zapoznaj się z tym artykułem , aby uzyskać wymagane uprawnienia.
Utwórz połączoną usługę w celu nawiązania połączenia z bazą danych SQL i włącz funkcję "Always Encrypted" przy użyciu tożsamości zarządzanej lub jednostki usługi.
Rozwiązywanie problemów z połączeniem
Skonfiguruj usługę Amazon RDS dla wystąpienia programu SQL Server w celu akceptowania połączeń zdalnych. Uruchom usługę Amazon RDS dla programu SQL Server Management Studio, kliknij prawym przyciskiem myszy serwer i wybierz polecenie Właściwości. Wybierz pozycję Połączenia z listy, a następnie zaznacz pole wyboru Zezwalaj na połączenia zdalne z tym serwerem .
Aby uzyskać szczegółowe instrukcje, zobacz Konfigurowanie opcji konfiguracji serwera dostępu zdalnego.
Uruchom usługę Amazon RDS dla programu SQL Server Configuration Manager. Rozwiń węzeł Amazon RDS dla konfiguracji sieci programu SQL Server dla żądanego wystąpienia i wybierz pozycję Protokoły dla serwera MSSQLSERVER. Protokoły są wyświetlane w okienku po prawej stronie. Włącz protokół TCP/IP, klikając prawym przyciskiem myszy tcp /IP i wybierając pozycję Włącz.
Aby uzyskać więcej informacji i alternatywne sposoby włączania protokołu TCP/IP, zobacz Włączanie lub wyłączanie protokołu sieciowego serwera.
W tym samym oknie kliknij dwukrotnie tcp /IP , aby uruchomić okno Właściwości protokołu TCP/IP.
Przejdź do karty Adresy IP. Przewiń w dół, aby wyświetlić sekcję IPAll . Zapisz port TCP. Wartość domyślna to 1433.
Utwórz regułę zapory systemu Windows na maszynie, aby zezwolić na ruch przychodzący przez ten port.
Sprawdź połączenie: aby nawiązać połączenie z usługą Amazon RDS dla programu SQL Server przy użyciu w pełni kwalifikowanej nazwy, użyj usługi Amazon RDS dla programu SQL Server Management Studio z innej maszyny. Może to być na przykład
"<machine>.<domain>.corp.<company>.com,1433"
.
Uaktualnianie usługi Amazon RDS dla wersji programu SQL Server
Aby uaktualnić usługę Amazon RDS dla wersji programu SQL Server, na stronie Edytuj połączoną usługę wybierz pozycję Zalecane w obszarze Wersja i skonfiguruj połączoną usługę, odwołując się do właściwości połączonej usługi dla zalecanej wersji.
Różnice między zalecaną i starszą wersją
W poniższej tabeli przedstawiono różnice między usługą Amazon RDS dla programu SQL Server przy użyciu zalecanej i starszej wersji.
Zalecana wersja | Starsza wersja |
---|---|
Obsługa protokołu TLS 1.3 za pośrednictwem encrypt jako strict . |
Protokół TLS 1.3 nie jest obsługiwany. |
Powiązana zawartość
Aby uzyskać listę magazynów danych obsługiwanych jako źródła i ujścia działania kopiowania, zobacz Obsługiwane magazyny danych.