Uruchamianie zapytań federacyjnych w usłudze Amazon Redshift
Ważne
Ta funkcja jest dostępna w publicznej wersji zapoznawczej.
W tym artykule opisano sposób konfigurowania federacji lakehouse w celu uruchamiania zapytań federacyjnych w przypadku uruchamiania zapytań dotyczących danych amazon Redshift, które nie są zarządzane przez usługę Azure Databricks. Aby dowiedzieć się więcej o federacji Lakehouse, zobacz Co to jest Federacja Lakehouse.
Aby nawiązać połączenie z aplikacją Run queries on Amazon Redshift database using Lakehouse Federation (Uruchamianie zapytań w bazie danych Amazon Redshift przy użyciu federacji lakehouse), należy utworzyć następujące elementy w magazynie metadanych wykazu aparatu Unity usługi Azure Databricks:
- Połączenie z zapytaniami Uruchom w bazie danych Amazon Redshift.
- Wykaz obcy, który odzwierciedla zapytania Uruchom w bazie danych Amazon Redshift w katalogu aparatu Unity, dzięki czemu można użyć składni zapytań wykazu aparatu Unity i narzędzi do zapewniania ładu danych w celu zarządzania dostępem użytkowników usługi Azure Databricks do bazy danych.
Zanim rozpoczniesz
Wymagania dotyczące obszaru roboczego:
- Obszar roboczy włączony dla wykazu aparatu Unity.
Wymagania dotyczące obliczeń:
- Łączność sieciowa z klastra środowiska Databricks Runtime lub usługi SQL Warehouse z docelowymi systemami baz danych. Zobacz Zalecenia dotyczące sieci dla usługi Lakehouse Federation.
- Klastry usługi Azure Databricks muszą używać środowiska Databricks Runtime 13.3 LTS lub nowszego oraz trybu dostępu współużytkowanego lub pojedynczego użytkownika.
- Magazyny SQL muszą mieć wartość Pro lub Bezserwerową i muszą używać wersji 2023.40 lub nowszej.
Wymagane uprawnienia:
- Aby utworzyć połączenie, musisz być administratorem magazynu metadanych lub użytkownikiem z
CREATE CONNECTION
uprawnieniami w magazynie metadanych wykazu aparatu Unity dołączonym do obszaru roboczego. - Aby utworzyć wykaz obcy, musisz mieć
CREATE CATALOG
uprawnienia do magazynu metadanych i być właścicielem połączenia lub miećCREATE FOREIGN CATALOG
uprawnienia do połączenia.
Dodatkowe wymagania dotyczące uprawnień są określone w każdej sekcji opartej na zadaniach.
Tworzenie połączenia
Połączenie określa ścieżkę i poświadczenia dostępu do zewnętrznego systemu bazy danych. Aby utworzyć połączenie, możesz użyć Eksploratora wykazu lub CREATE CONNECTION
polecenia SQL w notesie usługi Azure Databricks lub edytorze zapytań SQL usługi Databricks.
Wymagane uprawnienia: administrator magazynu metadanych lub użytkownik z uprawnieniami CREATE CONNECTION
.
Eksplorator wykazu
W obszarze roboczym usługi Azure Databricks kliknij pozycję Wykaz.
W górnej części okienka Wykaz kliknij ikonę Dodaj i wybierz pozycję Dodaj połączenie z menu.
Alternatywnie na stronie Szybki dostęp kliknij przycisk Dane >zewnętrzne, przejdź do karty Połączenia, a następnie kliknij pozycję Utwórz połączenie.
Wprowadź przyjazną dla użytkownika nazwę połączenia.
Wybierz typ połączenia Redshift.
Wprowadź następujące właściwości połączenia dla wystąpienia usługi Redshift.
- Host: na przykład
redshift-demo.us-west-2.redshift.amazonaws.com
- Port: na przykład
5439
- Użytkownik: na przykład
redshift_user
- Hasło: na przykład
password123
- Host: na przykład
(Opcjonalnie) Kliknij pozycję Testuj połączenie , aby potwierdzić, że działa.
(Opcjonalnie) Dodaj komentarz.
Kliknij pozycję Utwórz.
SQL
Uruchom następujące polecenie w notesie lub edytorze zapytań SQL usługi Databricks.
CREATE CONNECTION <connection-name> TYPE redshift
OPTIONS (
host '<hostname>',
port '<port>',
user '<user>',
password '<password>'
);
Zalecamy używanie wpisów tajnych usługi Azure Databricks zamiast ciągów w postaci zwykłego tekstu dla poufnych wartości, takich jak poświadczenia. Na przykład:
CREATE CONNECTION <connection-name> TYPE redshift
OPTIONS (
host '<hostname>',
port '<port>',
user secret ('<secret-scope>','<secret-key-user>'),
password secret ('<secret-scope>','<secret-key-password>')
)
Aby uzyskać informacje na temat konfigurowania wpisów tajnych, zobacz Zarządzanie wpisami tajnymi.
Tworzenie wykazu obcego
Wykaz obcy odzwierciedla bazę danych w zewnętrznym systemie danych, dzięki czemu można wykonywać zapytania o dostęp do danych w tej bazie danych i zarządzać nimi przy użyciu usług Azure Databricks i Unity Catalog. Aby utworzyć wykaz obcy, należy użyć połączenia ze źródłem danych, które zostało już zdefiniowane.
Aby utworzyć wykaz obcy, możesz użyć Eksploratora wykazu lub CREATE FOREIGN CATALOG
polecenia SQL w notesie usługi Azure Databricks lub edytorze zapytań SQL.
Wymagane uprawnienia: CREATE CATALOG
uprawnienie do magazynu metadanych i własność połączenia lub CREATE FOREIGN CATALOG
uprawnienia do połączenia.
Eksplorator wykazu
W obszarze roboczym usługi Azure Databricks kliknij pozycję Wykaz , aby otworzyć Eksploratora wykazu.
W górnej części okienka Wykaz kliknij ikonę Dodaj i wybierz pozycję Dodaj wykaz z menu.
Alternatywnie na stronie Szybki dostęp kliknij przycisk Wykazy , a następnie kliknij przycisk Utwórz wykaz .
Postępuj zgodnie z instrukcjami dotyczącymi tworzenia katalogów obcych w temacie Tworzenie katalogów.
SQL
Uruchom następujące polecenie SQL w notesie lub edytorze zapytań SQL. Elementy w nawiasach kwadratowych są opcjonalne. Zastąp wartości symboli zastępczych:
<catalog-name>
: nazwa wykazu w usłudze Azure Databricks.<connection-name>
: obiekt połączenia określający źródło danych, ścieżkę i poświadczenia dostępu.<database-name>
: nazwa bazy danych, którą chcesz dublować jako wykaz w usłudze Azure Databricks.
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name> USING CONNECTION <connection-name>
OPTIONS (database '<database-name>');
Obsługiwane wypychania
Obsługiwane są następujące wypychania:
- Filtry
- Projekcje
- Limit
- Sprzężenia
- Agregacje (Average, Count, Max, Min, StddevPop, StddevSamp, Sum, VarianceSamp)
- Funkcje (funkcje string i inne różne funkcje, takie jak Alias, Cast, SortOrder)
- Sortowanie
Następujące wypychania nie są obsługiwane:
- Funkcje systemu Windows
Mapowanie typu danych
Podczas odczytywania z narzędzia Redshift do platformy Spark typy danych są mapowe w następujący sposób:
Typ redshift | Typ platformy Spark |
---|---|
numeryczne | Typ dziesiętny |
int2, int4 | Typ liczby całkowitej |
int8, oid, xid | LongType |
float4 | FloatType |
podwójna precyzja, float8, pieniądze | DoubleType |
bpchar, char, znak różny, nazwa, super, tekst, tid, varchar | StringType |
bytea, geometria, varbyte | BinaryType |
bit, bool | Typ logiczny |
data | Typ daty |
tabstime, time, time with time zone, timetz, timetz, time without time zone, timestamp with time zone, timestamp, timestamptz, timestamp* | TimestampType/TimestampNTZType |
*Podczas odczytywania z narzędzia Redshift narzędzie Redshift Timestamp
jest mapowane na platformę Spark TimestampType
, jeśli infer_timestamp_ntz_type = false
(wartość domyślna). Narzędzie Redshift Timestamp
jest mapowane na TimestampNTZType
wartość if infer_timestamp_ntz_type = true
.