Am recent a anunțat sprijin pentru Formația lacului AWS politici detaliate de control al accesului în Amazon Atena interogări pentru datele stocate în orice format de fișier acceptat folosind formate de tabel precum Apache Iceberg, Apache Hudi și Apache Hive. AWS Lake Formation vă permite să definiți și să aplicați politici de acces la nivel de baze de date, tabel și coloană pentru a interoga tabelele Iceberg stocate în Amazon S3. Lake Formation oferă un nivel de autorizare și guvernare pentru datele stocate în Amazon S3. Această capacitate necesită să faceți upgrade la Motorul Athena versiunea 3.
Organizațiile mari au adesea linii de afaceri (LoB) care operează cu autonomie în gestionarea datelor lor de afaceri. Face ca partajarea datelor între LoB să nu fie banală. Aceste organizații au adoptat un model federat, fiecare LoB având autonomie de a lua decizii cu privire la datele lor. Ei folosesc modelul editor/consumator cu un nivel de guvernanță centralizat care este utilizat pentru a impune controalele de acces. Dacă sunteți interesat să aflați mai multe despre arhitectura rețelei de date, vizitați Proiectați o arhitectură de rețea de date folosind AWS Lake Formation și AWS Glue. Cu versiunea 3 a motorului Athena, clienții pot folosi aceleași controale fine pentru cadrele de date deschise, cum ar fi Apache Iceberg, Apache Hudi și Apache Hive.
În această postare, ne aprofundăm într-un caz de utilizare în care aveți un model de producător/consumator cu partajarea datelor activată pentru a oferi acces restricționat la un tabel Apache Iceberg pe care consumatorul îl poate interoga. Vom discuta despre filtrarea coloanelor pentru a restricționa anumite rânduri, filtrarea pentru a restricționa accesul la nivel de coloană, evoluția schemei și călătoria în timp.
Prezentare generală a soluțiilor
Pentru a ilustra funcționalitatea permisiunilor cu granulație fină pentru tabelele Apache Iceberg cu Athena și Lake Formation, am configurat următoarele componente:
- În contul de producător:
- An AWS Adeziv Data Catalog pentru a înregistra schema unui tabel în format Apache Iceberg
- Lake Formation pentru a oferi acces precis la contul de consumator
- Athena pentru a verifica datele din contul de producător
- În contul de consumator:
- Manager de acces la resurse AWS (AWS RAM) pentru a crea o strângere de mână între catalogul de date producător și consumator
- Lake Formation pentru a oferi acces precis la contul de consumator
- Athena pentru a verifica datele din contul de producător
Următoarea diagramă ilustrează arhitectura.
Cerințe preliminare
Înainte de a începe, asigurați-vă că aveți următoarele:
Configurarea producătorului de date
În această secțiune, vă prezentăm pașii pentru configurarea producătorului de date.
Creați o găleată S3 pentru a stoca datele din tabel
Creăm un nou bucket S3 pentru a salva datele pentru tabel:
- Pe consola Amazon S3, creați o cupă S3 cu nume unic (pentru această postare, folosim
iceberg-athena-lakeformation-blog
). - Creați folderul producător în interiorul găleții pentru a-l folosi pentru tabel.
Înregistrați calea S3 care stochează tabelul folosind Lake Formation
Înregistrăm traseul complet S3 în Lake Formation:
- Navigați la consola Lake Formation.
- Dacă vă conectați pentru prima dată, vi se solicită să creați un utilizator administrator.
- În panoul de navigare, sub Înregistrați și ingerați, alege Locațiile lacului de date.
- Alege Înregistrați locațiași furnizați calea compartimentului S3 pe care ați creat-o mai devreme.
- Alege
AWSServiceRoleForLakeFormationDataAccess
pentru Rolul IAM.
Pentru informații suplimentare despre roluri, consultați Cerințe pentru rolurile utilizate pentru înregistrarea locațiilor.
Dacă ați activat criptarea compartimentului dvs. S3, trebuie să oferiți permisiuni pentru Lake Formation pentru a efectua operațiuni de criptare și decriptare. A se referi la Înregistrarea unei locații Amazon S3 criptate pentru îndrumare.
- Alege Înregistrați locația.
Creați un tabel Iceberg folosind Athena
Acum să creăm tabelul folosind Athena susținut de formatul Apache Iceberg:
- Pe consola Athena, alegeți Editor de interogări în panoul de navigare.
- Dacă utilizați Athena pentru prima dată, sub setări cont, alege Administrare și introduceți locația compartimentului S3 pe care ați creat-o mai devreme (
iceberg-athena-lakeformation-blog/producer
). - Alege Economisiți.
- În editorul de interogări, introduceți următoarea interogare (înlocuiți locația cu găleata S3 pe care ați înregistrat-o la Lake Formation). Rețineți că folosim baza de date implicită, dar puteți utiliza orice altă bază de date.
- Alege Alerga.
Partajați masa cu contul de consumator
Pentru a ilustra funcționalitatea, implementăm următoarele scenarii:
- Oferiți acces la coloanele selectate
- Oferiți acces la rândurile selectate pe baza unui filtru
Urmați pașii următori:
- Pe consola Lake Formation, în panoul de navigare de sub Catalog de date, alege Filtre de date.
- Alege Creați un filtru nou.
- Pentru Numele filtrului de date, introduce
blog_data_filter
. - Pentru Baza de date țintă, introduce
lf-demo-db
. - Pentru Tabel țintă, introduce
consumer_iceberg
. - Pentru Acces la nivel de coloană, Selectați Includeți coloane.
- Alegeți coloanele pe care să le distribuiți consumatorului:
country, address, contactfirstname, city, customerid,
șicustomername
. - Pentru Expresie filtru rând, introduceți filtrul
country='France'
. - Alege Creați filtru.
Acum să acordăm acces la contul de consumator pe consumer_iceberg
tabel.
- În panoul de navigare, alegeți Mese.
- Selectați tabelul consumer_iceberg și alegeți Grant pe Acţiuni meniu.
- Selectați Conturi externe.
- Introduceți ID-ul contului extern.
- Selectați Resurse de catalog de date denumite.
- Alegeți baza de date și tabelul dvs.
- Pentru Filtre de date, alegeți filtrul de date pe care l-ați creat.
- Pentru Permisiuni de filtrare a datelor și Permisiuni acordabile, Selectați Selectați.
- Alege Grant.
Configurarea consumatorului de date
Pentru a configura consumatorul de date, acceptăm partajarea resurselor și creăm un tabel utilizând AWS RAM și Lake Formation. Parcurgeți următorii pași:
- Conectați-vă la contul de consumator și navigați la consola AWS RAM.
- În Împărțit cu mine în panoul de navigare, alegeți Distribuirea resurselor.
- Alegeți cota de resurse.
- Alege Acceptați partajarea resurselor.
- Notați numele partajării resurselor de utilizat în pașii următori.
- Navigați la consola Lake Formation.
- Dacă vă conectați pentru prima dată, vi se solicită să creați un utilizator administrator.
- Alege Baze de date în panoul de navigare, apoi alegeți baza de date.
- Pe Acţiuni meniu, alegeți Creați un link de resursă.
- Pentru Numele linkului resurselor, introduceți numele linkului de resurse (de exemplu,
consumer_iceberg
). - Alegeți baza de date și tabelul partajat.
- Alege Crea.
Validați soluția
Acum putem rula diferite operațiuni pe tabele pentru a valida controalele de acces cu granulație fină.
Operațiunea de inserare
Să introducem date în consumer_iceberg
tabel în contul de producător și validați lucrările de filtrare a datelor așa cum era de așteptat în contul de consumator.
- Conectați-vă la contul de producător.
- Pe consola Athena, alegeți Editor de interogări în panoul de navigare.
- Utilizați următorul SQL pentru a scrie și a insera date în tabelul Iceberg. Utilizați editorul de interogări pentru a rula o interogare la un moment dat. Puteți evidenția/selecta o interogare la un moment dat și faceți clic pe „Run”/„Run again:
- Utilizați următorul SQL pentru a citi și selecta datele din tabelul Iceberg:
- Conectați-vă la contul de consumator.
- În editorul de interogări Athena, rulați următoarea interogare SELECT pe tabelul partajat:
Pe baza filtrelor, consumatorul are vizibilitate la un subset de coloane și rânduri în care țara este Franța.
Operațiuni de actualizare/ștergere
Acum să actualizăm unul dintre rânduri și să ștergem unul din setul de date partajat cu consumatorul.
- Conectați-vă la contul de producător.
- Actualizează
city='Paris' WHERE city='Reims'
și ștergeți rândulcustomerid = 3;
- Verificați setul de date actualizat și șters:
- Conectați-vă la contul de consumator.
- În editorul de interogări Athena, rulați următoarea interogare SELECT pe tabelul partajat:
Putem observa că un singur rând este disponibil și orașul este actualizat la Paris.
Evoluția schemei: adăugați o nouă coloană
Să actualizăm unul dintre rânduri și să ștergem unul din setul de date partajat cu consumatorul.
- Conectați-vă la contul de producător.
- Adăugați o nouă coloană numită
geo_loc
în tabelul Iceberg. Utilizați editorul de interogări pentru a rula o interogare la un moment dat. Puteți evidenția/selecta o interogare la un moment dat și faceți clic pe „Run”/„Run again:
Pentru a oferi vizibilitate noului adăugat geo_loc
coloana, trebuie să actualizăm filtrul de date Lake Formation.
- Pe consola Lake Formation, alegeți Filtre de date în panoul de navigare.
- Selectați filtrul de date și alegeți Editati.
- În Acces la nivel de coloană, adăugați noua coloană (
geo_loc
). - Alege Economisiți.
- Conectați-vă la contul de consumator.
- În editorul de interogări Athena, rulați următoarele
SELECT
interogare pe tabelul partajat:
Noua coloană geo_loc
este vizibil și un rând suplimentar.
Evoluția schemei: Ștergeți coloana
Să actualizăm unul dintre rânduri și să ștergem unul din setul de date partajat cu consumatorul.
- Conectați-vă la contul de producător.
- Modificați tabelul pentru a elimina coloana cu adrese din tabelul Iceberg. Utilizați editorul de interogări pentru a rula o interogare la un moment dat. Puteți evidenția/selecta o interogare la un moment dat și faceți clic pe „Run”/„Run again:
Putem observa că adresa coloanei nu este prezentă în tabel.
- Conectați-vă la contul de consumator.
- În editorul de interogări Athena, rulați următoarea interogare SELECT pe tabelul partajat:
Adresa coloanei nu este prezentă în tabel.
Calatorie in timp
Acum am schimbat tabelul Iceberg de mai multe ori. Tabelul Iceberg ține evidența instantaneelor. Parcurgeți următorii pași pentru a explora funcționalitatea călătoriei în timp:
- Conectați-vă la contul de producător.
- Interogați tabelul de sistem:
Putem observa că am generat mai multe instantanee.
- Notați unul dintre
committed_at
valori de utilizat în următorii pași (pentru acest exemplu,2023-01-29 21:35:02.176 UTC
). - Utilizați călătoria în timp pentru a găsi instantaneul tabelului. Utilizați editorul de interogări pentru a rula o interogare la un moment dat. Puteți evidenția/selecta o interogare la un moment dat și faceți clic pe „Run”/„Run again:
A curăța
Parcurgeți următorii pași pentru a evita costurile viitoare:
- Pe consola Amazon S3, ștergeți găleata de stocare a mesei (pentru această postare, iceberg-athena-lakeformation-blog).
- În contul de producător de pe consola Athena, rulați următoarele comenzi pentru a șterge tabelele pe care le-ați creat:
- În contul de producător de pe consola Lake Formation, revocați permisiunile pentru contul de consumator.
- Ștergeți grupul S3 utilizat pentru locația rezultatului interogării Athena din contul de consumator.
Concluzie
Cu suportul pentru politici de control al accesului cu granulație fină în mai multe conturi pentru formate precum Iceberg, aveți flexibilitatea de a lucra cu orice format acceptat de Athena. Capacitatea de a efectua operațiuni CRUD împotriva datelor din lacul dvs. de date S3, combinată cu controalele de acces cu granulație fină Lake Formation pentru toate tabelele și formatele acceptate de Athena oferă oportunități de a inova și de a simplifica strategia de date. Ne-ar plăcea să auzim feedback-ul dvs.!
Despre autori
Kishore Dhamodaran este arhitect senior de soluții la AWS. Kishore ajută clienții strategici cu strategia lor de întreprindere în cloud și călătoria de migrare, valorificând anii de experiență în industrie și cloud.
Jack Ye este inginer software al echipei Athena Data Lake and Storage de la AWS. El este Apache Iceberg Committer și membru PMC.
Chris Olson este inginer de dezvoltare software la AWS.
Xiaoxuan Li este inginer de dezvoltare software la AWS.
Rahul Sonawane este arhitect principal de soluții de analiză la AWS, având ca domeniu de specialitate AI/ML și Analytics.
- Distribuție de conținut bazat pe SEO și PR. Amplifică-te astăzi.
- Platoblockchain. Web3 Metaverse Intelligence. Cunoștințe amplificate. Accesați Aici.
- Sursa: 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/
- :este
- $UP
- 1
- 10
- 100
- 7
- a
- capacitate
- Despre Noi
- Accept
- acces
- Cont
- peste
- adăugat
- Suplimentar
- informatii suplimentare
- adresa
- admin
- adoptată
- împotriva
- AI / ML
- TOATE
- permite
- Amazon
- Amazon Atena
- Google Analytics
- și
- Apache
- arhitectură
- SUNT
- ZONĂ
- Artă
- AS
- At
- autorizare
- disponibil
- evita
- AWS
- Formația lacului AWS
- sprijinit
- bazat
- între
- afaceri
- întreprinderi
- by
- denumit
- CAN
- catalog
- centralizat
- sigur
- Schimbare
- taxe
- Alege
- Oraș
- clic
- Cloud
- Coloană
- Coloane
- COM
- combinate
- Completă
- componente
- Consoleze
- consumator
- Control
- controale
- ţară
- crea
- a creat
- Crearea
- creaţie
- Trece
- clienţii care
- de date
- Lacul de date
- schimbul de date
- strategie de date
- Baza de date
- Deciziile
- adânc
- scufundare adâncă
- Mod implicit
- Dezvoltare
- diferit
- discuta
- jos
- Picătură
- fiecare
- Mai devreme
- editor
- EMEA
- activat
- criptate
- criptare
- Motor
- inginer
- Intrați
- Afacere
- Eter (ETH)
- evoluţie
- exemplu
- de aşteptat
- experienţă
- explora
- extern
- Fișier
- filtru
- filtrare
- Filtre
- Găsi
- First
- prima dată
- Flexibilitate
- următor
- Pentru
- format
- formare
- cadre
- Franţa
- din
- Complet
- funcționalitate
- viitor
- generată
- obține
- Da
- guvernare
- acordarea
- îndrumare
- Avea
- având în
- auzi
- ajută
- Stup
- HTML
- http
- HTTPS
- ID
- punerea în aplicare a
- in
- Inc
- industrie
- informații
- inova
- interacţiona
- interesat
- IT
- călătorie
- jpg
- lac
- Țară
- strat
- învăţare
- Nivel
- efectului de pârghie
- LIMITĂ
- linii
- LINK
- locaţie
- dragoste
- Lyon
- face
- FACE
- de conducere
- membru
- Meniu
- migrațiune
- model
- mai mult
- multiplu
- nume
- Navigaţi
- Navigare
- Nevoie
- Nou
- următor
- NYC
- observa
- of
- on
- ONE
- deschide
- de date deschise
- funcionar
- Operațiuni
- Oportunităţi
- organizații
- Altele
- pâine
- Paris
- cale
- efectua
- permisiuni
- Plato
- Informații despre date Platon
- PlatoData
- Politicile
- Post
- prezenta
- Principal
- producător
- furniza
- furnizează
- RAM
- Citeste
- recent
- reflectat
- Inregistreaza-te
- înregistrată
- înlocui
- Necesită
- resursă
- restrânge
- limitat
- rezultat
- Rol
- rolurile
- RÂND
- Alerga
- acelaşi
- Economisiți
- scenarii
- Secțiune
- selectate
- senior
- set
- Distribuie
- comun
- partajarea
- simplifica
- Instantaneu
- Software
- de dezvoltare de software
- Inginer Software
- soluţii
- Specialitate
- SQL
- început
- paşi
- depozitare
- stoca
- stocate
- Strategic
- Strategie
- Şir
- astfel de
- a sustine
- Suportat
- sistem
- tabel
- echipă
- acea
- lor
- Acestea
- timp
- timp de călătorie
- ori
- timestamp-ul
- la
- urmări
- călătorie
- în
- unic
- Actualizează
- actualizat
- upgrade-ul
- Statele Unite ale Americii
- utilizare
- Utilizator
- UTC
- VALIDA
- Valori
- verifica
- versiune
- vizibilitate
- vizibil
- Vizita
- cu
- Apartamente
- fabrică
- scrie
- ani
- Ta
- zephyrnet