Gedeelde Azure Synapse Analytics-metagegevens
met Azure Synapse Analytics kunnen de verschillende rekenkundige engines voor werkruimten databases en tabellen delen tussen Apache Spark-pools en serverloze SQL-pools.
Het delen ondersteunt het zogenaamde moderne datawarehousepatroon en biedt de werkruimte-SQL-engines toegang tot databases en tabellen die zijn gemaakt met Spark. Ook kunnen de SQL-engines hun eigen objecten maken die niet worden gedeeld met de andere engines.
Het moderne datawarehouse ondersteunen
Het gedeelde metagegevensmodel ondersteunt het moderne datawarehousepatroon op de volgende manier:
Gegevens van de Data Lake worden op efficiënte wijze voorbereid en gestructureerd met Spark door de voorbereide gegevens op te slaan in (mogelijk gepartitioneerde) door Parquet ondersteunde tabellen die zijn opgenomen in mogelijk verschillende databases.
De door Spark gemaakte databases en alle tabellen worden zichtbaar in een Azure Synapse-werkruimte met Spark-poolexemplaren en kunnen worden gebruikt vanuit elke Spark-taak. Deze mogelijkheid is onderhevig aan machtigingen, aangezien alle Spark-pools in een werkruimte dezelfde onderliggende catalogusmeta-opslagplaats delen.
De door Spark gemaakte databases en de tabellen met parquet- of CSV-ondersteuning worden zichtbaar in de serverloze SQL-pool van de werkruimte. Databases worden automatisch gemaakt in de metagegevens van de serverloze SQL-pool en de externe en beheerde tabellen die zijn gemaakt door een Apache Spark-taak, worden toegankelijk gemaakt als externe tabellen in de metagegevens van de serverloze SQL-pool in het
dbo
-schema van de bijbehorende database.
Objectsynchronisatie vindt asynchroon plaats. Er is een lichte vertraging van enkele seconden tot objecten worden weergegeven in de SQL-context. Zodra ze worden weergegeven, kunnen er query's op worden uitgevoerd. Ze kunnen echter niet worden bijgewerkt of gewijzigd door de SQL-engines die er toegang toe hebben.
Gedeelde metagegevensobjecten
Met Spark kunt u databases, externe tabellen, beheerde tabellen en weergaven maken. Omdat Spark-weergaven een Spark-engine vereisen voor het verwerken van de definiërende Spark SQL-instructie en niet kunnen worden verwerkt door een SQL-engine, worden alleen databases en de bijbehorende externe en beheerde tabellen die gebruikmaken van de Parquet- of CSV-opslagindeling gedeeld met de SQL-engine van de werkruimte. Spark-weergaven worden alleen gedeeld tussen exemplaren van de Spark-pool.
Beveiligingsmodel in één oogopslag
De Spark-databases en -tabellen en hun gesynchroniseerde weergaven in de SQL-engines worden beveiligd op het onderliggende opslagniveau. Wanneer een query wordt uitgevoerd op de tabel waarvoor de inzender van de query gebruiksrechten heeft, wordt de beveiligingsprincipal van de query-inzender doorgegeven aan de onderliggende bestanden. Machtigingen worden gecontroleerd op het niveau van het bestandssysteem.
Zie Gedeelde database van Azure Synapse Analytics voor meer informatie.
Onderhoud wijzigen
Als een metagegevensobject wordt verwijderd of gewijzigd met Spark, worden de wijzigingen opgehaald en doorgegeven aan de serverloze SQL-pool. Synchronisatie is asynchroon en wijzigingen worden na enige vertraging weergegeven in de SQL-engine.