Niedawno ogłosił wsparcie dla Formacja AWS Lake szczegółowe zasady kontroli dostępu w Amazonka Atena zapytania o dane przechowywane w dowolnym obsługiwanym formacie plików przy użyciu formatów tabel, takich jak Apache Iceberg, Apache Hudi i Apache Hive. AWS Lake Formation umożliwia definiowanie i egzekwowanie zasad dostępu na poziomie bazy danych, tabeli i kolumny w celu wykonywania zapytań o tabele Iceberg przechowywane w Amazon S3. Lake Formation zapewnia warstwę autoryzacji i zarządzania danymi przechowywanymi w Amazon S3. Ta możliwość wymaga uaktualnienia do Silnik Athena w wersji 3.
Duże organizacje często mają linie biznesowe (LoB), które działają autonomicznie w zarządzaniu swoimi danymi biznesowymi. Sprawia, że udostępnianie danych między LoB nie jest trywialne. Organizacje te przyjęły model federacyjny, w którym każdy LoB ma autonomię w podejmowaniu decyzji dotyczących ich danych. Korzystają z modelu wydawca/konsument ze scentralizowaną warstwą zarządzania, która służy do egzekwowania kontroli dostępu. Jeśli chcesz dowiedzieć się więcej o architekturze siatki danych, odwiedź stronę Zaprojektuj architekturę siatki danych przy użyciu AWS Lake Formation i AWS Glue. Dzięki silnikowi Athena w wersji 3 klienci mogą korzystać z tych samych precyzyjnych elementów sterujących dla platform otwartych danych, takich jak Apache Iceberg, Apache Hudi i Apache Hive.
W tym poście zagłębimy się w przypadek użycia, w którym masz model producent/konsument z włączonym udostępnianiem danych, aby zapewnić ograniczony dostęp do tabeli Apache Iceberg, o którą konsument może zapytać. Omówimy filtrowanie kolumn w celu ograniczenia niektórych wierszy, filtrowanie w celu ograniczenia dostępu na poziomie kolumny, ewolucję schematu i podróże w czasie.
Omówienie rozwiązania
Aby zilustrować funkcjonalność szczegółowych uprawnień dla tabel Apache Iceberg z Athena i Lake Formation, skonfigurowaliśmy następujące komponenty:
- Na koncie producenta:
- An Klej AWS Data Catalog do rejestracji schematu tabeli w formacie Apache Iceberg
- Lake Formation w celu zapewnienia precyzyjnego dostępu do konta konsumenta
- Athena do weryfikacji danych z konta producenta
- Na koncie konsumenta:
- Menedżer dostępu do zasobów AWS (AWS RAM), aby utworzyć uścisk dłoni między producentem Data Catalog a konsumentem
- Lake Formation w celu zapewnienia precyzyjnego dostępu do konta konsumenta
- Athena do weryfikacji danych z konta producenta
Poniższy schemat ilustruje architekturę.
Wymagania wstępne
Zanim zaczniesz, upewnij się, że masz:
Konfiguracja producenta danych
W tej sekcji przedstawiamy kroki konfiguracji producenta danych.
Utwórz zasobnik S3 do przechowywania danych tabeli
Tworzymy nowy wiadro S3, aby zapisać dane do tabeli:
- Na konsoli Amazon S3, utwórz wiadro S3 z unikalną nazwą (w tym poście używamy
iceberg-athena-lakeformation-blog
). - Utwórz folder producenta wewnątrz zasobnika, aby użyć go dla tabeli.
Zarejestruj ścieżkę S3 przechowującą tabelę za pomocą Lake Formation
Rejestrujemy pełną ścieżkę S3 w Lake Formation:
- Przejdź do konsoli Lake Formation.
- Jeśli logujesz się po raz pierwszy, zostaniesz poproszony o utworzenie konta administratora.
- W okienku nawigacji w obszarze Zarejestruj się i zbierzwybierz Lokalizacje jeziora danych.
- Dodaj Zarejestruj lokalizacjęi podaj utworzoną wcześniej ścieżkę zasobnika S3.
- Dodaj
AWSServiceRoleForLakeFormationDataAccess
dla rola JA.
Aby uzyskać dodatkowe informacje na temat ról, zobacz Wymagania dotyczące ról używanych do rejestrowania lokalizacji.
Jeśli włączyłeś szyfrowanie swojego zasobnika S3, musisz nadać Lake Formation uprawnienia do wykonywania operacji szyfrowania i odszyfrowywania. Odnosić się do Rejestracja zaszyfrowanej lokalizacji Amazon S3 w celu uzyskania pomocy.
- Dodaj Zarejestruj lokalizację.
Utwórz tabelę góry lodowej za pomocą Ateny
Teraz utwórzmy tabelę przy użyciu Atheny wspieranej przez format Apache Iceberg:
- Na konsoli Athena wybierz Edytor zapytań w okienku nawigacji.
- Jeśli używasz Ateny po raz pierwszy, poniżej Ustawieniawybierz zarządzanie i wprowadź utworzoną wcześniej lokalizację zasobnika S3 (
iceberg-athena-lakeformation-blog/producer
). - Dodaj Zapisz.
- W edytorze zapytań wprowadź następujące zapytanie (zastąp lokalizację zasobnikiem S3 zarejestrowanym w Lake Formation). Pamiętaj, że używamy domyślnej bazy danych, ale możesz użyć dowolnej innej bazy danych.
- Dodaj run.
Udostępnij tabelę kontu konsumenta
Aby zilustrować funkcjonalność, wdrażamy następujące scenariusze:
- Zapewnij dostęp do wybranych kolumn
- Zapewnij dostęp do wybranych wierszy na podstawie filtra
Wykonaj następujące kroki:
- W konsoli Lake Formation w okienku nawigacji poniżej Katalog danychwybierz Filtry danych.
- Dodaj Utwórz nowy filtr.
- W razie zamówieenia projektu Nazwa filtra danych, wchodzić
blog_data_filter
. - W razie zamówieenia projektu Docelowa baza danych, wchodzić
lf-demo-db
. - W razie zamówieenia projektu Tabela docelowa, wchodzić
consumer_iceberg
. - W razie zamówieenia projektu Dostęp na poziomie kolumny, Wybierz Uwzględnij kolumny.
- Wybierz kolumny, które chcesz udostępnić konsumentowi:
country, address, contactfirstname, city, customerid,
icustomername
. - W razie zamówieenia projektu Wyrażenie filtra wierszy, wprowadź filtr
country='France'
. - Dodaj Utwórz filtr.
Teraz przyznajmy dostęp do konta konsumenta na consumer_iceberg
tabela.
- W okienku nawigacji wybierz Stoły.
- Wybierz tabelę consumer_iceberg i wybierz Dotacja na Akcje menu.
- Wybierz Konta zewnętrzne.
- Wprowadź identyfikator konta zewnętrznego.
- Wybierz Nazwane zasoby katalogu danych.
- Wybierz swoją bazę danych i tabelę.
- W razie zamówieenia projektu Filtry danych, wybierz utworzony przez siebie filtr danych.
- W razie zamówieenia projektu Uprawnienia do filtrowania danych i Uprawnienia do przyznania, Wybierz Wybierz.
- Dodaj Dotacja.
Konfiguracja konsumenta danych
Aby skonfigurować konsumenta danych, akceptujemy udział zasobów i tworzymy tabelę przy użyciu AWS RAM i Lake Formation. Wykonaj następujące kroki:
- Zaloguj się na konto konsumenta i przejdź do konsoli AWS RAM.
- Pod Podziel sie ze mna w okienku nawigacji wybierz Udziały zasobów.
- Wybierz swój udział w zasobach.
- Dodaj Zaakceptuj udział zasobów.
- Zanotuj nazwę udziału zasobów do użycia w następnych krokach.
- Przejdź do konsoli Lake Formation.
- Jeśli logujesz się po raz pierwszy, zostaniesz poproszony o utworzenie konta administratora.
- Dodaj Bazy danych w okienku nawigacji, a następnie wybierz swoją bazę danych.
- Na Akcje menu, wybierz Utwórz łącze do zasobów.
- W razie zamówieenia projektu Nazwa łącza do zasobu, wprowadź nazwę łącza do zasobu (np.
consumer_iceberg
). - Wybierz swoją bazę danych i udostępnioną tabelę.
- Dodaj Stwórz.
Sprawdź rozwiązanie
Teraz możemy przeprowadzać różne operacje na tabelach, aby zweryfikować szczegółową kontrolę dostępu.
Wstaw operację
Wstawmy dane do consumer_iceberg
table na koncie producenta i sprawdź, czy filtrowanie danych działa zgodnie z oczekiwaniami na koncie konsumenta.
- Zaloguj się na konto producenta.
- Na konsoli Athena wybierz Edytor zapytań w okienku nawigacji.
- Użyj następującego kodu SQL, aby zapisać i wstawić dane do tabeli Iceberg. Użyj edytora zapytań, aby uruchamiać jedno zapytanie naraz. Możesz zaznaczyć/wybrać jedno zapytanie na raz i kliknąć „Uruchom”/„Uruchom ponownie:
- Użyj następującego kodu SQL, aby odczytać i wybrać dane w tabeli Iceberg:
- Zaloguj się do konta konsumenta.
- W edytorze zapytań Athena uruchom następujące zapytanie SELECT w udostępnionej tabeli:
W oparciu o filtry konsument ma wgląd w podzbiór kolumn i wierszy, w których krajem jest Francja.
Operacje aktualizacji/usuwania
Teraz zaktualizujmy jeden z wierszy i usuń jeden z zestawu danych udostępnionego konsumentowi.
- Zaloguj się na konto producenta.
- Aktualizacja
city='Paris' WHERE city='Reims'
i usuń wierszcustomerid = 3;
- Sprawdź zaktualizowany i usunięty zestaw danych:
- Zaloguj się do konta konsumenta.
- W edytorze zapytań Athena uruchom następujące zapytanie SELECT w udostępnionej tabeli:
Możemy zauważyć, że dostępny jest tylko jeden wiersz, a miasto jest aktualizowane na Paryż.
Ewolucja schematu: Dodaj nową kolumnę
Zaktualizujmy jeden z wierszy i usuńmy jeden z zestawu danych udostępnionego konsumentowi.
- Zaloguj się na konto producenta.
- Dodaj nową kolumnę o nazwie
geo_loc
w tabeli góry lodowej. Użyj edytora zapytań, aby uruchamiać jedno zapytanie na raz. Możesz zaznaczyć/wybrać jedno zapytanie na raz i kliknąć „Uruchom”/„Uruchom ponownie:
Aby zapewnić widoczność nowo dodanym geo_loc
kolumnie, musimy zaktualizować filtr danych formacji jeziora.
- W konsoli Lake Formation wybierz Filtry danych w okienku nawigacji.
- Wybierz swój filtr danych i wybierz Edytuj.
- Pod Dostęp na poziomie kolumny, dodaj nową kolumnę (
geo_loc
). - Dodaj Zapisz.
- Zaloguj się do konta konsumenta.
- W edytorze zapytań Athena uruchom następujące polecenie
SELECT
zapytanie w udostępnionej tabeli:
Nowa kolumna geo_loc
jest widoczny i dodatkowy wiersz.
Ewolucja schematu: Usuń kolumnę
Zaktualizujmy jeden z wierszy i usuńmy jeden z zestawu danych udostępnionego konsumentowi.
- Zaloguj się na konto producenta.
- Zmień tabelę, aby usunąć kolumnę adresu z tabeli Góra lodowa. Użyj edytora zapytań, aby uruchamiać jedno zapytanie na raz. Możesz zaznaczyć/wybrać jedno zapytanie na raz i kliknąć „Uruchom”/„Uruchom ponownie:
Możemy zauważyć, że adres kolumny nie występuje w tabeli.
- Zaloguj się do konta konsumenta.
- W edytorze zapytań Athena uruchom następujące zapytanie SELECT w udostępnionej tabeli:
Adres kolumny nie występuje w tabeli.
Podróż w czasie
Teraz wielokrotnie zmienialiśmy tabelę Iceberg. Tabela Iceberg śledzi migawki. Wykonaj następujące kroki, aby poznać funkcję podróży w czasie:
- Zaloguj się na konto producenta.
- Zapytanie w tabeli systemowej:
Możemy zaobserwować, że wygenerowaliśmy wiele migawek.
- Zanotuj jeden z
committed_at
wartości do wykorzystania w kolejnych krokach (w tym przykładzie2023-01-29 21:35:02.176 UTC
). - Użyj podróży w czasie, aby znaleźć migawkę tabeli. Użyj edytora zapytań, aby uruchamiać jedno zapytanie na raz. Możesz zaznaczyć/wybrać jedno zapytanie na raz i kliknąć „Uruchom”/„Uruchom ponownie:
Sprzątać
Wykonaj następujące czynności, aby uniknąć przyszłych opłat:
- Na konsoli Amazon S3 usuń wiadro do przechowywania tabeli (dla tego postu, iceberg-athena-lakeformation-blog).
- Na koncie producenta w konsoli Athena uruchom następujące polecenia, aby usunąć utworzone tabele:
- Na koncie producenta w konsoli Lake Formation odwołaj uprawnienia do konta konsumenta.
- Usuń zasobnik S3 używany do lokalizacji wyników zapytania Athena z konta konsumenta.
Wnioski
Dzięki obsłudze wielokontowych, precyzyjnych zasad kontroli dostępu dla formatów takich jak Iceberg masz swobodę pracy z dowolnym formatem obsługiwanym przez Athena. Możliwość wykonywania operacji CRUD na danych w jeziorze danych S3 w połączeniu z precyzyjnymi mechanizmami kontroli dostępu Lake Formation dla wszystkich tabel i formatów obsługiwanych przez Athena daje możliwości wprowadzania innowacji i uproszczenia strategii danych. Chcielibyśmy usłyszeć Twoją opinię!
O autorach
Kishore Dhamodaran jest starszym architektem rozwiązań w AWS. Kishore pomaga strategicznym klientom w ich strategii korporacyjnej w chmurze i podróży migracyjnej, wykorzystując jego wieloletnie doświadczenie w branży i chmurze.
Jack Tak jest inżynierem oprogramowania w zespole Athena Data Lake and Storage w AWS. Jest członkiem Apache Iceberg Committer i PMC.
Chris Olson jest inżynierem rozwoju oprogramowania w AWS.
Xiaoxuan Li jest inżynierem rozwoju oprogramowania w AWS.
Rahula Sonawane jest głównym architektem rozwiązań analitycznych w AWS ze specjalizacją AI/ML i Analytics.
- Dystrybucja treści i PR oparta na SEO. Uzyskaj wzmocnienie już dziś.
- Platoblockchain. Web3 Inteligencja Metaverse. Wzmocniona wiedza. Dostęp tutaj.
- Źródło: https://aws.amazon.com/blogs/big-data/interact-with-apache-iceberg-tables-using-amazon-athena-and-cross-account-fine-grained-permissions-using-aws-lake-formation/
- :Jest
- $W GÓRĘ
- 1
- 10
- 100
- 7
- a
- zdolność
- O nas
- Akceptuj
- dostęp
- Konto
- w poprzek
- w dodatku
- Dodatkowy
- Dodatkowe informacje
- adres
- Admin
- przyjęty
- przed
- AI / ML
- Wszystkie kategorie
- pozwala
- Amazonka
- Amazonka Atena
- analityka
- i
- Apache
- architektura
- SĄ
- POWIERZCHNIA
- Sztuka
- AS
- At
- autoryzacja
- dostępny
- uniknąć
- AWS
- Formacja AWS Lake
- poparła
- na podstawie
- pomiędzy
- biznes
- biznes
- by
- nazywa
- CAN
- katalog
- scentralizowane
- pewien
- zmiana
- Opłaty
- Dodaj
- Miasto
- kliknij
- Chmura
- Kolumna
- kolumny
- COM
- połączony
- kompletny
- składniki
- Konsola
- konsument
- kontrola
- kontroli
- kraj
- Stwórz
- stworzony
- Tworzenie
- tworzenie
- Krzyż
- Klientów
- dane
- Jezioro danych
- udostępnianie danych
- strategia danych
- Baza danych
- Decyzje
- głęboko
- głębokie nurkowanie
- Domyślnie
- oprogramowania
- różne
- dyskutować
- na dół
- Spadek
- każdy
- Wcześniej
- redaktor
- EMEA
- włączony
- szyfrowane
- szyfrowanie
- silnik
- inżynier
- Wchodzę
- Enterprise
- Eter (ETH)
- ewolucja
- przykład
- spodziewany
- doświadczenie
- odkryj
- zewnętrzny
- filet
- filtrować
- filtracja
- filtry
- Znajdź
- i terminów, a
- pierwszy raz
- Elastyczność
- następujący
- W razie zamówieenia projektu
- format
- formacja
- Ramy
- Francja
- od
- pełny
- Funkcjonalność
- przyszłość
- wygenerowane
- otrzymać
- Dać
- zarządzanie
- przyznać
- poradnictwo
- Have
- mający
- słyszeć
- pomaga
- Ul
- HTML
- http
- HTTPS
- ID
- wdrożenia
- in
- Inc
- przemysł
- Informacja
- wprowadzać innowacje
- interakcji
- zainteresowany
- IT
- podróż
- jpg
- jezioro
- Kraj
- warstwa
- nauka
- poziom
- lewarowanie
- LIMIT
- linie
- LINK
- lokalizacja
- miłość
- Lyon
- robić
- WYKONUJE
- zarządzający
- członek
- Menu
- migracja
- model
- jeszcze
- wielokrotność
- Nazwa
- Nawigacja
- Nawigacja
- Potrzebować
- Nowości
- Następny
- NYC
- obserwować
- of
- on
- ONE
- koncepcja
- otwarte danych
- działać
- operacje
- Szanse
- organizacji
- Inne
- chleb
- Paryż
- ścieżka
- wykonać
- uprawnienia
- plato
- Analiza danych Platona
- PlatoDane
- polityka
- Post
- teraźniejszość
- Główny
- producent
- zapewniać
- zapewnia
- RAM
- Czytaj
- niedawno
- odzwierciedlenie
- zarejestrować
- zarejestrowany
- obsługi produkcji rolnej, która zastąpiła
- Wymaga
- Zasób
- ograniczać
- ograniczony
- dalsze
- Rola
- role
- RZĄD
- run
- taki sam
- Zapisz
- scenariusze
- Sekcja
- wybrany
- senior
- zestaw
- Share
- shared
- dzielenie
- upraszczać
- Migawka
- Tworzenie
- rozwoju oprogramowania
- Software Engineer
- Rozwiązania
- Specjalność
- SQL
- rozpoczęty
- Cel
- przechowywanie
- sklep
- przechowywany
- Strategiczny
- Strategia
- sznur
- taki
- wsparcie
- Utrzymany
- system
- stół
- zespół
- że
- Połączenia
- ich
- Te
- czas
- podróż w czasie
- czasy
- znak czasu
- do
- śledzić
- podróżować
- dla
- wyjątkowy
- Aktualizacja
- zaktualizowane
- uaktualnienie
- USA
- posługiwać się
- Użytkownik
- UTC
- UPRAWOMOCNIĆ
- Wartości
- zweryfikować
- wersja
- widoczność
- widoczny
- Odwiedzić
- w
- Praca
- działa
- napisać
- lat
- Twój
- zefirnet