Overzicht van elastische query's Azure SQL Database (preview-versie)Azure SQL Database elastic query overview (preview)

VAN TOEPASSING OP: jaAzure SQL Database APPLIES TO: yesAzure SQL Database

Met de functie elastische query's (in Preview) kunt u een Transact-SQL-query uitvoeren die meerdere data bases in Azure SQL Database omspant.The elastic query feature (in preview) enables you to run a Transact-SQL query that spans multiple databases in Azure SQL Database. Hiermee kunt u query's uitvoeren voor meerdere data bases voor toegang tot externe tabellen en kunt u micro soft en hulpprogram ma's van derden (Excel, Power BI, tableau, enzovoort) verbinden om een query uit te voeren voor gegevens lagen met meerdere data bases.It allows you to perform cross-database queries to access remote tables, and to connect Microsoft and third-party tools (Excel, Power BI, Tableau, etc.) to query across data tiers with multiple databases. Met deze functie kunt u query's uitschalen naar grote gegevens lagen en de resultaten visualiseren in business intelligence-rapporten (BI).Using this feature, you can scale out queries to large data tiers and visualize the results in business intelligence (BI) reports.

Waarom elastische query's gebruiken?Why use elastic queries

Azure SQL DatabaseAzure SQL Database

Query's uitvoeren op data bases in Azure SQL Database volledig in T-SQL.Query across databases in Azure SQL Database completely in T-SQL. Hiermee kunnen alleen-lezen query's van externe data bases worden uitgevoerd en biedt de huidige SQL Server klanten de mogelijkheid om toepassingen te migreren met behulp van drie-en vier deel namen of een gekoppelde server naar SQL Database.This allows for read-only querying of remote databases and provides an option for current SQL Server customers to migrate applications using three- and four-part names or linked server to SQL Database.

Beschikbaar in de laag standaardAvailable on standard tier

Elastische query's worden ondersteund in de service lagen Standard en Premium.Elastic query is supported on both the Standard and Premium service tiers. Zie de sectie over de beperkingen van de voor beelden over prestatie beperkingen voor lagere service lagen.See the section on Preview Limitations below on performance limitations for lower service tiers.

Push para meters naar externe data basesPush parameters to remote databases

Elastische query's kunnen nu SQL-para meters naar de externe data base pushen om uit te voeren.Elastic queries can now push SQL parameters to the remote databases for execution.

Uitvoering van opgeslagen procedureStored procedure execution

Voer externe opgeslagen procedure aanroepen of externe functies uit met behulp van _ extern uitvoeren op _ afstand.Execute remote stored procedure calls or remote functions using sp_execute _remote.

FlexibiliteitFlexibility

Externe tabellen met elastische query's kunnen verwijzen naar externe tabellen met een andere schema-of tabel naam.External tables with elastic query can refer to remote tables with a different schema or table name.

Elastische query scenario'sElastic query scenarios

Het doel is het vergemakkelijken van het uitvoeren van query's waarbij meerdere data bases rijen in een enkel geheel resultaat bijdragen.The goal is to facilitate querying scenarios where multiple databases contribute rows into a single overall result. De query kan rechtstreeks worden samengesteld door de gebruiker of toepassing, of indirect via hulpprogram ma's die zijn verbonden met de data base.The query can either be composed by the user or application directly, or indirectly through tools that are connected to the database. Dit is vooral handig bij het maken van rapporten, het gebruik van hulpprogram ma's voor commerciële BI of gegevens integratie, of een toepassing die niet kan worden gewijzigd.This is especially useful when creating reports, using commercial BI or data integration tools, or any application that cannot be changed. Met een elastische query kunt u een query uitvoeren op verschillende data bases met behulp van de vertrouwde SQL Server connectiviteits ervaring in hulpprogram ma's zoals Excel, Power BI, tableau of Cognos.With an elastic query, you can query across several databases using the familiar SQL Server connectivity experience in tools such as Excel, Power BI, Tableau, or Cognos. Een elastische query biedt eenvoudige toegang tot een volledige verzameling data bases via query's die zijn uitgegeven door SQL Server Management Studio of Visual Studio, en vereenvoudigt query's voor meerdere data bases vanuit Entity Framework of andere ORM-omgevingen.An elastic query allows easy access to an entire collection of databases through queries issued by SQL Server Management Studio or Visual Studio, and facilitates cross-database querying from Entity Framework or other ORM environments. In afbeelding 1 ziet u een scenario waarin een bestaande Cloud toepassing (die gebruikmaakt van de client bibliotheek voor Elastic data base), is gebaseerd op een uitgeschaalde gegevenslaag en een elastische query wordt gebruikt voor rapportage over meerdere data bases.Figure 1 shows a scenario where an existing cloud application (which uses the elastic database client library) builds on a scaled-out data tier, and an elastic query is used for cross-database reporting.

Afbeelding 1 Elastische query gebruikt op uitgeschaalde gegevenslaagFigure 1 Elastic query used on scaled-out data tier

Elastische query gebruikt op uitgeschaalde gegevenslaag

Klant scenario's voor elastische query's worden gekenmerkt door de volgende topologieën:Customer scenarios for elastic query are characterized by the following topologies:

  • Verticaal partitioneren-query's voor meerdere data bases (topologie 1): de gegevens worden verticaal gepartitioneerd tussen een aantal data bases in een gegevenslaag.Vertical partitioning - Cross-database queries (Topology 1): The data is partitioned vertically between a number of databases in a data tier. Doorgaans bevinden verschillende sets tabellen zich op verschillende data bases.Typically, different sets of tables reside on different databases. Dit betekent dat het schema afwijkt van verschillende data bases.That means that the schema is different on different databases. Zo bevinden alle tabellen voor de inventarisatie zich op één data base, terwijl alle aan de administratie gerelateerde tabellen zich in een tweede data base bevinden.For instance, all tables for inventory are on one database while all accounting-related tables are on a second database. Voor veelvoorkomende use-cases met deze topologie moet er een worden doorzocht op of voor het compileren van rapporten tussen tabellen in verschillende data bases.Common use cases with this topology require one to query across or to compile reports across tables in several databases.
  • Horizontale partitionering-sharding (topologie 2): gegevens worden horizon taal gepartitioneerd om rijen te verdelen over een uitgeschaalde gegevenslaag.Horizontal Partitioning - Sharding (Topology 2): Data is partitioned horizontally to distribute rows across a scaled out data tier. Met deze methode is het schema identiek voor alle deelnemende data bases.With this approach, the schema is identical on all participating databases. Deze methode wordt ook wel ' sharding ' genoemd.This approach is also called “sharding”. Sharding kan worden uitgevoerd en beheerd met behulp van (1) de Elastic data base tools libraries of (2) Self-sharding.Sharding can be performed and managed using (1) the elastic database tools libraries or (2) self-sharding. Een elastische query wordt gebruikt voor het opvragen of compileren van rapporten in veel Shards.An elastic query is used to query or compile reports across many shards. Shards zijn doorgaans data bases binnen een elastische pool.Shards are typically databases within an elastic pool. U kunt een elastische query beschouwen als een efficiënte manier voor het opvragen van alle data bases van elastische pool tegelijk, zolang data bases het gemeen schappelijke schema delen.You can think of elastic query as an efficient way for querying all databases of elastic pool at once, as long as databases share the common schema.

Notitie

Elastische query's werken het beste voor rapportage scenario's waarbij de meeste verwerking (filteren, aggregatie) op de externe bron zijde kan worden uitgevoerd.Elastic query works best for reporting scenarios where most of the processing (filtering, aggregation) can be performed on the external source side. Het is niet geschikt voor ETL-bewerkingen waarbij een grote hoeveelheid gegevens worden overgebracht van externe data base (s).It is not suitable for ETL operations where large amount of data is being transferred from remote database(s). Overweeg het gebruik van Azure Synapse Analyticsvoor zware rapporten van werk belastingen of scenario's voor gegevens opslag met complexere query's.For heavy reporting workloads or data warehousing scenarios with more complex queries, also consider using Azure Synapse Analytics.

Verticale partitionering-query's voor meerdere data basesVertical partitioning - cross-database queries

Zie aan de slag met query's tussen data bases (verticaal partitioneren)om te beginnen met de code ring.To begin coding, see Getting started with cross-database query (vertical partitioning).

Een elastische query kan worden gebruikt om gegevens in een data base in SQL Database beschikbaar te maken voor andere data bases in SQL Database.An elastic query can be used to make data located in a database in SQL Database available to other databases in SQL Database. Hiermee kunnen query's van de ene data base verwijzen naar tabellen in een andere externe data base in SQL Database.This allows queries from one database to refer to tables in any other remote database in SQL Database. De eerste stap is het definiëren van een externe gegevens bron voor elke externe data base.The first step is to define an external data source for each remote database. De externe gegevens bron wordt gedefinieerd in de lokale data base van waaruit u toegang wilt krijgen tot de tabellen die zich op de externe data base bevinden.The external data source is defined in the local database from which you want to gain access to tables located on the remote database. Er zijn geen wijzigingen vereist voor de externe data base.No changes are necessary on the remote database. Voor typische scenario's voor verticale partitionering waarbij verschillende data bases verschillende schema's hebben, kunnen elastische query's worden gebruikt voor het implementeren van algemene gebruiks voorbeelden, zoals toegang tot referentie gegevens en query's tussen data bases.For typical vertical partitioning scenarios where different databases have different schemas, elastic queries can be used to implement common use cases such as access to reference data and cross-database querying.

Belangrijk

U moet een machtiging hebben om een externe gegevens bron te wijzigen.You must possess ALTER ANY EXTERNAL DATA SOURCE permission. Deze machtiging is opgenomen in de machtiging ALTER data base.This permission is included with the ALTER DATABASE permission. Machtigingen voor externe gegevens bronnen wijzigen is nodig om te verwijzen naar de onderliggende gegevens bron.ALTER ANY EXTERNAL DATA SOURCE permissions are needed to refer to the underlying data source.

Referentie gegevens: de topologie wordt gebruikt voor het beheer van referentie gegevens.Reference data: The topology is used for reference data management. In de onderstaande afbeelding worden twee tabellen (T1 en T2) met referentie gegevens bewaard op een speciale data base.In the figure below, two tables (T1 and T2) with reference data are kept on a dedicated database. Met behulp van een elastische query hebt u nu toegang tot de tabellen T1 en T2 op afstand van andere data bases, zoals wordt weer gegeven in de afbeelding.Using an elastic query, you can now access tables T1 and T2 remotely from other databases, as shown in the figure. Topologie 1 gebruiken als verwijzings tabellen kleine of externe query's in verwijzings tabel zijn, zijn selectieve predikaten.Use topology 1 if reference tables are small or remote queries into reference table have selective predicates.

Afbeelding 2 Verticaal partitioneren-een elastische query gebruiken om referentie gegevens op te vragenFigure 2 Vertical partitioning - Using elastic query to query reference data

Verticaal partitioneren-een elastische query gebruiken om referentie gegevens op te vragen

Query's voor meerdere data bases: elastische query's maken gebruik van aanvragen waarvoor query's moeten worden uitgevoerd in meerdere data bases in SQL database.Cross-database querying: Elastic queries enable use cases that require querying across several databases in SQL Database. In afbeelding 3 ziet u vier verschillende data bases: CRM, inventaris, HR en Products.Figure 3 shows four different databases: CRM, Inventory, HR, and Products. Query's die in een van de data bases worden uitgevoerd, hebben ook toegang nodig tot een of alle andere data bases.Queries performed in one of the databases also need access to one or all the other databases. Met behulp van een elastische query kunt u uw Data Base voor deze case configureren door een paar eenvoudige DDL-instructies uit te voeren op elk van de vier data bases.Using an elastic query, you can configure your database for this case by running a few simple DDL statements on each of the four databases. Na deze eenmalige configuratie is toegang tot een externe tabel net zo eenvoudig als verwijzingen naar een lokale tabel van uw T-SQL-query's of vanuit uw BI-hulpprogram ma's.After this one-time configuration, access to a remote table is as simple as referring to a local table from your T-SQL queries or from your BI tools. Deze methode wordt aanbevolen als de externe query's geen grote resultaten retour neren.This approach is recommended if the remote queries do not return large results.

Afbeelding 3 Verticaal partitioneren-elastische query's gebruiken om query's uit te zoeken in verschillende data basesFigure 3 Vertical partitioning - Using elastic query to query across various databases

Verticaal partitioneren-elastische query's gebruiken om query's uit te zoeken in verschillende data bases

Met de volgende stappen worden Elastic data base-query's voor verticale partitionatie scenario's geconfigureerd die toegang nodig hebben tot een tabel op externe data bases in SQL Database met hetzelfde schema:The following steps configure elastic database queries for vertical partitioning scenarios that require access to a table located on remote databases in SQL Database with the same schema:

Na het uitvoeren van de DDL-instructies, hebt u toegang tot de externe tabel ' mytable ', alsof het een lokale tabel is.After running the DDL statements, you can access the remote table “mytable” as though it were a local table. Azure SQL Database opent automatisch een verbinding met de externe data base, verwerkt uw aanvraag op de externe data base en retourneert de resultaten.Azure SQL Database automatically opens a connection to the remote database, processes your request on the remote database, and returns the results.

Horizontale partitionering-shardingHorizontal partitioning - sharding

Door gebruik te maken van elastische query's voor het uitvoeren van rapportage taken via een Shard, dat wil zeggen horizon taal gepartitioneerd, is voor een gegevenslaag een elastische-database Shard-toewijzing vereist voor de data bases van de gegevenslaag.Using elastic query to perform reporting tasks over a sharded, that is, horizontally partitioned, data tier requires an elastic database shard map to represent the databases of the data tier. Normaal gesp roken wordt slechts één Shard-kaart gebruikt in dit scenario en een speciale data base met elastische query mogelijkheden (hoofd knooppunt) fungeert als het toegangs punt voor rapportage query's.Typically, only a single shard map is used in this scenario and a dedicated database with elastic query capabilities (head node) serves as the entry point for reporting queries. Alleen deze speciale data base moet toegang hebben tot de Shard-kaart.Only this dedicated database needs access to the shard map. Afbeelding 4 illustreert deze topologie en de configuratie ervan met de elastische query database en de Shard-kaart.Figure 4 illustrates this topology and its configuration with the elastic query database and shard map. Zie Shard map Management(Engelstalig) voor meer informatie over de client bibliotheek voor Elastic data base en het maken van Shard Maps.For more information about the elastic database client library and creating shard maps, see Shard map management.

Afbeelding 4 Horizon taal partitioneren-een elastische query gebruiken voor rapportage over Shard-gegevens lagenFigure 4 Horizontal partitioning - Using elastic query for reporting over sharded data tiers

Horizon taal partitioneren-een elastische query gebruiken voor rapportage over Shard-gegevens lagen

Notitie

Elastic query-data base (hoofd knooppunt) kan afzonderlijke data bases zijn, of kan dezelfde data base zijn die de Shard-toewijzing host.Elastic Query Database (head node) can be separate database, or it can be the same database that hosts the shard map. Welke configuratie u kiest, zorg ervoor dat de servicelaag en de reken grootte van die data base hoog genoeg zijn om de verwachte hoeveelheid aanmeldings-en query aanvragen af te handelen.Whatever configuration you choose, make sure that service tier and compute size of that database is high enough to handle the expected amount of login/query requests.

In de volgende stappen worden Elastic data base-query's voor horizontale partitionering-scenario's geconfigureerd die toegang nodig hebben tot een set tabellen op (meestal) diverse externe data bases in SQL Database:The following steps configure elastic database queries for horizontal partitioning scenarios that require access to a set of tables located on (typically) several remote databases in SQL Database:

Wanneer u deze stappen hebt uitgevoerd, hebt u toegang tot de horizon taal gepartitioneerde tabel ' mytable ', alsof het een lokale tabel is.Once you have performed these steps, you can access the horizontally partitioned table “mytable” as though it were a local table. Azure SQL Database opent automatisch meerdere parallelle verbindingen met de externe data bases waarin de tabellen fysiek zijn opgeslagen, verwerkt de aanvragen op de externe data bases en retourneert de resultaten.Azure SQL Database automatically opens multiple parallel connections to the remote databases where the tables are physically stored, processes the requests on the remote databases, and returns the results. Meer informatie over de stappen die vereist zijn voor het horizontale partitie scenario kunt u vinden in elastische query's voor horizontale partitionering.More information on the steps required for the horizontal partitioning scenario can be found in elastic query for horizontal partitioning.

Zie aan de slag met elastische query's voor horizontale partitionering (sharding)om te beginnen met de code ring.To begin coding, see Getting started with elastic query for horizontal partitioning (sharding).

Belangrijk

Geslaagde uitvoering van elastische query's over een grote set data bases is sterk afhankelijk van de beschik baarheid van elk van de data bases tijdens de uitvoering van de query.Successful execution of elastic query over a large set of databases relies heavily on the availability of each of databases during the query execution. Als een van de data bases niet beschikbaar is, mislukt de volledige query.If one of databases is not available, entire query will fail. Als u van plan bent om op honderden of duizenden data bases tegelijk een query uit te voeren, moet u ervoor zorgen dat uw client toepassing de logica voor opnieuw proberen insluit of u kunt Elastic database taken (preview) gebruiken en een query uitvoeren op kleinere subsets van data bases, waarbij u de resultaten van elke query samenvoegt in één bestemming.If you plan to query hundreds or thousands of databases at once, make sure your client application has retry logic embedded, or consider leveraging Elastic Database Jobs (preview) and querying smaller subsets of databases, consolidating results of each query into a single destination.

T-SQL-query's uitvoerenT-SQL querying

Wanneer u uw externe gegevens bronnen en uw externe tabellen hebt gedefinieerd, kunt u reguliere SQL Server verbindings reeksen gebruiken om verbinding te maken met de data bases waarin u de externe tabellen hebt gedefinieerd.Once you have defined your external data sources and your external tables, you can use regular SQL Server connection strings to connect to the databases where you defined your external tables. U kunt vervolgens T-SQL-instructies uitvoeren voor uw externe tabellen op die verbinding met de beperkingen die hieronder worden beschreven.You can then run T-SQL statements over your external tables on that connection with the limitations outlined below. Meer informatie en voor beelden van T-SQL-query's vindt u in de documentatie onderwerpen voor horizontale partitionering en verticale partitionering.You can find more information and examples of T-SQL queries in the documentation topics for horizontal partitioning and vertical partitioning.

Connectiviteit voor hulpprogram ma'sConnectivity for tools

U kunt gewone SQL Server verbindings reeksen gebruiken om uw toepassingen en BI-of gegevens integratie hulpprogramma's te koppelen aan data bases die externe tabellen hebben.You can use regular SQL Server connection strings to connect your applications and BI or data integration tools to databases that have external tables. Zorg ervoor dat SQL Server wordt ondersteund als gegevens bron voor uw hulp programma.Make sure that SQL Server is supported as a data source for your tool. Als de verbinding tot stand is gebracht, raadpleegt u de elastische query database en de externe tabellen in die data base net zoals u zou doen met andere SQL Server Data Base waarmee u verbinding maakt met uw hulp programma.Once connected, refer to the elastic query database and the external tables in that database just like you would do with any other SQL Server database that you connect to with your tool.

Belangrijk

Verificatie met behulp van Azure Active Directory met elastische query's wordt momenteel niet ondersteund.Authentication using Azure Active Directory with elastic queries is not currently supported.

KostenCost

Elastische query's zijn opgenomen in de kosten van Azure SQL Database.Elastic query is included in the cost of Azure SQL Database. Houd er rekening mee dat topologieën waarbij uw externe data bases zich in een ander Data Center bevinden dan het elastische query-eind punt worden ondersteund, maar dat de gegevens die worden uitgeschreven door externe data bases regel matigworden berekendNote that topologies where your remote databases are in a different data center than the elastic query endpoint are supported, but data egress from remote databases is charged regularly Azure rates.

Preview-beperkingenPreview limitations

  • Het uitvoeren van uw eerste elastische query kan tot een paar minuten duren op de Standard-servicelaag.Running your first elastic query can take up to a few minutes on the Standard service tier. Deze tijd is nodig om de functionaliteit voor elastische query's te laden. het laden van prestaties verbetert met hogere service lagen en reken grootten.This time is necessary to load the elastic query functionality; loading performance improves with higher service tiers and compute sizes.
  • Het uitvoeren van scripts voor externe gegevens bronnen of externe tabellen vanuit SSMS of SSDT wordt nog niet ondersteund.Scripting of external data sources or external tables from SSMS or SSDT is not yet supported.
  • Import/export voor SQL Database biedt nog geen ondersteuning voor externe gegevens bronnen en externe tabellen.Import/Export for SQL Database does not yet support external data sources and external tables. Als u importeren/exporteren moet gebruiken, verwijdert u deze objecten voordat u deze exporteert en maakt u ze na het importeren opnieuw.If you need to use Import/Export, drop these objects before exporting and then re-create them after importing.
  • Elastische query's bieden momenteel alleen ondersteuning voor alleen-lezen toegang tot externe tabellen.Elastic query currently only supports read-only access to external tables. U kunt echter volledige T-SQL-functionaliteit gebruiken voor de Data Base waarin de externe tabel is gedefinieerd.You can, however, use full T-SQL functionality on the database where the external table is defined. Dit kan handig zijn om bijvoorbeeld tijdelijke resultaten te blijven gebruiken, bijvoorbeeld <column_list> te selecteren in <local_table>, of om opgeslagen procedures te definiëren voor de elastische query database die naar externe tabellen verwijzen.This can be useful to, e.g., persist temporary results using, for example, SELECT <column_list> INTO <local_table>, or to define stored procedures on the elastic query database that refer to external tables.
  • Met uitzonde ring van nvarchar (max) worden LOB-typen (met inbegrip van ruimtelijke typen) niet ondersteund in externe tabel definities.Except for nvarchar(max), LOB types (including spatial types) are not supported in external table definitions. Als tijdelijke oplossing kunt u een weer gave maken voor de externe data base waarmee het LOB-type wordt omgezet in nvarchar (max), uw externe tabel definiëren via de weer gave in plaats van de basis tabel en deze vervolgens weer omzetten in het oorspronkelijke LOB-type in uw query's.As a workaround, you can create a view on the remote database that casts the LOB type into nvarchar(max), define your external table over the view instead of the base table and then cast it back into the original LOB type in your queries.
  • Kolommen van het gegevens type nvarchar (max) in de resultatenset geavanceerde batch verwerking uitschakelen die wordt gebruikt in de implementatie van elastische Query's en kan invloed hebben op de prestaties van de query voor een orde van omvang, of zelfs twee bestellingen van grootte in niet-canonieke situaties waarbij een grote hoeveelheid niet-geaggregeerde gegevens worden overgedragen als resultaat van de query.Columns of nvarchar(max) data type in result set disable advanced batching technics used in Elastic Query implementation and may affect performance of query for an order of magnitude, or even two orders of magnitude in non-canonical use cases where large amount of non-aggregated data is being transferred as a result of query.
  • Kolom statistieken over externe tabellen worden momenteel niet ondersteund.Column statistics over external tables are currently not supported. Tabel statistieken worden ondersteund, maar moeten hand matig worden gemaakt.Table statistics are supported, but need to be created manually.
  • Elastische query's werken alleen met Azure SQL Database.Elastic query works with Azure SQL Database only. U kunt deze niet gebruiken voor het uitvoeren van een query op een SQL Server-exemplaar.You cannot use it for querying a SQL Server instance.

Uw feedback delenShare your Feedback

Deel uw feedback over uw ervaring met elastische query's met ons hieronder, op de MSDN-Forums of op Stack Overflow.Share feedback on your experience with elastic queries with us below, on the MSDN forums, or on Stack Overflow. We zijn geïnteresseerd in alle soorten feedback over de service (defecten, ruwe randen, hiaten in de functie).We are interested in all kinds of feedback about the service (defects, rough edges, feature gaps).

Volgende stappenNext steps