Azure SQL Database elastische query overzicht (preview)Azure SQL Database elastic query overview (preview)

De functie elastische query's (in preview) kunt u een Transact-SQL-query die meerdere databases in Azure SQL Database omvat uit te voeren.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 die databaseoverschrijdend voor toegang tot externe tabellen, en verbinding maken met Microsoft en hulpprogramma's van derden (Excel, Power BI, Tableau, enzovoort) om op te vragen voor de gegevenslagen met meerdere databases.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 uitschalen van query's voor de lagen van grote hoeveelheden gegevens in SQL-Database en de resultaten in business intelligence (BI)-rapporten weergeven.Using this feature, you can scale out queries to large data tiers in SQL Database and visualize the results in business intelligence (BI) reports.

Waarom zou ik elastische query's gebruikenWhy use elastic queries

Azure SQL DatabaseAzure SQL Database

Query's op Azure SQL-databases volledig in T-SQL.Query across Azure SQL databases completely in T-SQL. Hiermee voor alleen-lezen query's naar externe databases en biedt een optie voor het huidige on-premises SQL Server-klanten voor het migreren van toepassingen die gebruikmaken van drie en vierkleuren part namen of gekoppelde server aan de SQL-database.This allows for read-only querying of remote databases and provides an option for current on-premises SQL Server customers to migrate applications using three- and four-part names or linked server to SQL DB.

Beschikbaar in standard-laagAvailable on standard tier

Elastische query's wordt ondersteund op de Standard- en Premium-Servicelagen.Elastic query is supported on both the Standard and Premium service tiers. Zie de sectie over de beperkingen van Preview hieronder op presteert voor lagere service-lagen.See the section on Preview Limitations below on performance limitations for lower service tiers.

Push-parameters met externe databasesPush parameters to remote databases

Elastische query's kunnen nu SQL-parameters pushen met de externe databases voor uitvoering.Elastic queries can now push SQL parameters to the remote databases for execution.

Uitvoering van opgeslagen procedureStored procedure execution

Aanroepen van externe opgeslagen procedure of externe functies met sp_uitvoeren _externe.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 ander schema of de tabelnaam.External tables with elastic query can refer to remote tables with a different schema or table name.

Scenario's voor elastische query 'sElastic query scenarios

Het doel is om een query uitvoeren op scenario's waarbij meerdere databases rijen in één algemene resultaat bijdragen mogelijk te maken.The goal is to facilitate querying scenarios where multiple databases contribute rows into a single overall result. De query kan ofwel worden samengesteld door de gebruiker of toepassing direct of indirect via hulpprogramma's die zijn verbonden met de database.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, met behulp van commerciële BI of gegevens integratiehulpprogramma's, of een toepassing die kan niet 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's, kunt u een query uitvoeren voor meerdere databases met behulp van de vertrouwde SQL Server-connectiviteit-ervaring in hulpprogramma's zoals Excel, Power BI, Tableau of Hiermee.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's kunt eenvoudig toegang tot een hele verzameling-databases via query's dat is uitgegeven door SQL Server Management Studio of Visual Studio en vereenvoudigt het uitvoeren van meerdere databases uitvoeren van query's van Entity Framework of andere omgevingen ORM.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. Afbeelding 1 toont een scenario waarbij een bestaande cloud-toepassing (welke toepassingen de clientbibliotheek voor elastic database) bouwt voort op de gegevens van een scale-out-laag en een elastische query wordt gebruikt voor het melden van meerdere databases.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 die wordt gebruikt voor uitgeschaalde gegevenslaagFigure 1 Elastic query used on scaled-out data tier

Elastische query die wordt gebruikt voor uitgeschaalde gegevenslaag

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

  • Verticale partitionering - query's die databaseoverschrijdend (topologie 1): De gegevens zijn verticaal gepartitioneerd tussen een aantal databases in een gegevenslaag.Vertical partitioning - Cross-database queries (Topology 1): The data is partitioned vertically between a number of databases in a data tier. Normaal gesproken verschillende sets van tabellen bevinden zich op verschillende databases.Typically, different sets of tables reside on different databases. Dit betekent dat het schema verschilt voor verschillende databases.That means that the schema is different on different databases. Alle tabellen voor de voorraad zijn bijvoorbeeld op de ene database terwijl alle accounting-gerelateerde tabellen op een tweede database zijn.For instance, all tables for inventory are on one database while all accounting-related tables are on a second database. Algemene scenario's met deze topologie vereisen een op query's uitvoeren voor of op het samenstellen van rapporten in tabellen in verschillende databases.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 zijn horizontaal gepartitioneerd voor het distribueren van rijen in een uitgeschaalde gegevens laag.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 zijn op alle deelnemende databases.With this approach, the schema is identical on all participating databases. Deze aanpak wordt ook 'sharding' genoemd.This approach is also called “sharding”. Sharding kan worden uitgevoerd en beheerd met behulp van (1) de elastische database-hulpmiddelen bibliotheken 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 om een query of rapporten in veel shards tegelijk worden gecompileerd.An elastic query is used to query or compile reports across many shards.

Notitie

Elastische query's het beste werkt voor het melden van scenario's waar de meeste van de verwerking (filteren, aggregatie) aan de externe bron 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 grote hoeveelheden gegevens worden overgebracht van de externe database (s).It is not suitable for ETL operations where large amount of data is being transferred from remote database(s). Voor rapportage werkbelastingen of voor datawarehousescenario's met meer complexe query's, ook kunt u overwegen Azure SQL Data Warehouse.For heavy reporting workloads or data warehousing scenarios with more complex queries, also consider using Azure SQL Data Warehouse.

Verticale partitionering - query's tussen databasesVertical partitioning - cross-database queries

Als u wilt coderen, Zie aan de slag met query van meerdere databases (verticale partitionering).To begin coding, see Getting started with cross-database query (vertical partitioning).

Een elastische query kan worden gebruikt om gegevens die zich in een SQL-database die beschikbaar zijn voor andere SQL-databases te maken.An elastic query can be used to make data located in a SQL database available to other SQL databases. Hiermee kunt query's van de ene database om te verwijzen naar tabellen in een andere externe SQL-database.This allows queries from one database to refer to tables in any other remote SQL database. De eerste stap is het een externe gegevensbron definiëren voor elke externe database.The first step is to define an external data source for each remote database. De externe gegevensbron is gedefinieerd in de lokale database waaruit u wilt toegang te krijgen tot tabellen die zich op de externe database.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 nodig op de externe database.No changes are necessary on the remote database. Voor typische verticale partitionering scenario's waarbij verschillende databases verschillende schema's hebben, kunnen elastische query's worden gebruikt om algemene scenario's zoals toegang tot de referentiegegevens te implementeren en uitvoeren van query's tussen databases.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 beschikken over machtigingen voor een externe gegevensbron niet wijzigen.You must possess ALTER ANY EXTERNAL DATA SOURCE permission. Deze machtiging is opgenomen in de machtiging ALTER DATABASE.This permission is included with the ALTER DATABASE permission. EEN externe gegevensbron ALTER machtigingen nodig om te verwijzen naar de onderliggende gegevensbron.ALTER ANY EXTERNAL DATA SOURCE permissions are needed to refer to the underlying data source.

Verwijzen naar gegevens: De topologie wordt gebruikt voor beheer van verwijzing.Reference data: The topology is used for reference data management. In de afbeelding hieronder worden twee tabellen (T1 en T2) met referentiegegevens bewaard op een specifieke database.In the figure below, two tables (T1 and T2) with reference data are kept on a dedicated database. Met behulp van een elastische query's, u kunt nu toegang tot tabellen T1 en T2 op afstand van andere databases, zoals weergegeven in de afbeelding.Using an elastic query, you can now access tables T1 and T2 remotely from other databases, as shown in the figure. Gebruik topologie 1 als tabellen met kleine of externe query's in de verwijzingstabel selectief predicaten hebben.Use topology 1 if reference tables are small or remote queries into reference table have selective predicates.

Afbeelding 2 verticale partitionering: met behulp van referentiegegevens elastische query-queryFigure 2 Vertical partitioning - Using elastic query to query reference data

Verticale partitionering: met behulp van referentiegegevens elastische query-query

Uitvoeren van query's tussen databases: Elastische query's inschakelen van use cases die nodig hebt voor het uitvoeren van query's voor verschillende SQL-databases.Cross-database querying: Elastic queries enable use cases that require querying across several SQL databases. Afbeelding 3 ziet u vier verschillende databases: CRM, voorraad, HR en producten.Figure 3 shows four different databases: CRM, Inventory, HR, and Products. Query's uitgevoerd in een van de databases moeten ook toegang tot een of alle andere databases.Queries performed in one of the databases also need access to one or all the other databases. Met behulp van een elastische query's, kunt u uw database in dit geval door het uitvoeren van een paar eenvoudige DDL-componenten op elk van de vier databases configureren.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. Toegang tot een externe tabel is na deze eenmalige configuratie, net zo eenvoudig als die verwijst naar een lokale tabel van de T-SQL-query's of van uw BI-hulpprogramma'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 aanpak wordt aanbevolen als de externe query's niet veel resultaten retourneren.This approach is recommended if the remote queries do not return large results.

Afbeelding 3 verticale partitionering: gebruik elastische query-query voor verschillende databasesFigure 3 Vertical partitioning - Using elastic query to query across various databases

Verticale partitionering: gebruik elastische query-query voor verschillende databases

De volgende stappen uit configureren elastische databasequery's voor verticale partitionering scenario's waarvoor toegang tot een tabel die zich op de externe SQL-databases met hetzelfde schema:The following steps configure elastic database queries for vertical partitioning scenarios that require access to a table located on remote SQL databases with the same schema:

U kunt toegang tot de externe tabel "mytable" alsof het een lokale tabel na het uitvoeren van de DDL-componenten.After running the DDL statements, you can access the remote table “mytable” as though it were a local table. Azure SQL Database automatisch een verbinding met de externe database wordt geopend, verwerkt de aanvraag op de externe database en worden de resultaten geretourneerd.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

Met elastische query's voor het uitvoeren van rapportage taken via een shard, dat wil zeggen, horizontaal gepartitioneerd, gegevenslaag vereist een shard-toewijzing voor elastische database om weer te geven van de databases 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 gesproken alleen een enkele shard-toewijzing wordt gebruikt in dit scenario en een specifieke database met elastische query-mogelijkheden (hoofdknooppunt) fungeert als het toegangspunt voor het melden van 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 specifieke database moet toegang hebben tot de shard-toewijzing.Only this dedicated database needs access to the shard map. Afbeelding 4 ziet u deze topologie en de configuratie met de query's in elastic database en de shard-kaart.Figure 4 illustrates this topology and its configuration with the elastic query database and shard map. De databases in de gegevenslaag kunnen van een Azure SQL Database versie of editie zijn.The databases in the data tier can be of any Azure SQL Database version or edition. Zie voor meer informatie over de clientbibliotheek voor elastic database en het maken van de shard-toewijzingen Shard-Toewijzingsbeheer.For more information about the elastic database client library and creating shard maps, see Shard map management.

Afbeelding 4 horizontale partitionering: met elastische query's voor rapportage over de lagen van gedeelde gegevensFigure 4 Horizontal partitioning - Using elastic query for reporting over sharded data tiers

Horizontale partitionering: met elastische query's voor rapportage over de lagen van gedeelde gegevens

Notitie

Elastische query uitvoeren op Database (hoofdknooppunt) is een afzonderlijke database of kan de dezelfde database die als host fungeert voor de shard-toewijzing.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 serviceniveau en compute van de grootte van de database is hoog genoeg is voor het afhandelen van de verwachte hoeveelheid aanmelding/queryaanvragen.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.

De volgende stappen uit configureren elastische databasequery's voor horizontale partitionering scenario's waarvoor toegang tot een set met tabellen die zich op (meestal) verschillende externe SQL-databases:The following steps configure elastic database queries for horizontal partitioning scenarios that require access to a set of tables located on (typically) several remote SQL databases:

Nadat u deze stappen hebt uitgevoerd, kunt u de horizontaal gepartitioneerde tabel 'mytable' toegang tot alsof het een lokale tabel.Once you have performed these steps, you can access the horizontally partitioned table “mytable” as though it were a local table. Azure SQL Database automatisch geopend van meerdere parallelle verbindingen met de externe databases waarin de tabellen fysiek worden opgeslagen, verwerkt de aanvragen voor de externe databases, en worden de resultaten geretourneerd.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 nodig zijn voor de horizontale partitionering 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.

Als u wilt coderen, Zie aan de slag met elastische query's voor horizontale partitionering (sharding).To begin coding, see Getting started with elastic query for horizontal partitioning (sharding).

T-SQL-query 'sT-SQL querying

Nadat u uw externe gegevensbronnen en uw externe tabellen hebt gedefinieerd, kunt u normale SQL Server-verbindingsreeksen verbinding maken met de databases waar u uw 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 via uw externe tabellen uitvoeren 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. U vindt meer informatie over en voorbeelden van T-SQL-query's 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 hulpprogramma 'sConnectivity for tools

Verbindingsreeksen voor normale SQL Server kunt u verbinding maken met uw toepassingen en hulpprogramma's voor BI of gegevens integratie met databases die u externe tabellen hebt.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 een gegevensbron voor het hulpprogramma.Make sure that SQL Server is supported as a data source for your tool. Eenmaal verbinding hebben, raadpleegt u de query's in elastic database en de externe tabellen in de database net zoals u zou doen met een andere SQL Server-database waarmee u verbinding met uw hulpprogramma maken.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 is momenteel niet ondersteund.Authentication using Azure Active Directory with elastic queries is not currently supported.

KostenCost

Elastische query's is opgenomen in de kosten van Azure SQL Database-databases.Elastic query is included into the cost of Azure SQL Database databases. Houd er rekening mee dat topologieën waar uw externe databases zich in een ander datacenter dan het eindpunt van de elastische query's bevinden worden ondersteund, maar de uitgaande gegevens uit externe databases wordt in rekening gebracht regelmatig Azure-tarieven.Note 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

  • Uw eerste elastische query uit te voeren met een paar minuten op het serviceniveau Standard kan duren.Running your first elastic query can take up to a few minutes on the Standard service tier. Deze tijd is noodzakelijk om te laden van de functionaliteit van elastische query's; het laden van de prestaties worden verbeterd met hogere service-lagen en compute-grootten.This time is necessary to load the elastic query functionality; loading performance improves with higher service tiers and compute sizes.
  • Scripts van externe gegevensbronnen of externe tabellen van SSMS of SSDT is nog niet ondersteund.Scripting of external data sources or external tables from SSMS or SSDT is not yet supported.
  • Import/Export voor SQL DB ondersteunt nog geen externe gegevensbronnen en externe tabellen.Import/Export for SQL DB does not yet support external data sources and external tables. Als u gebruiken voor importeren/exporteren wilt, deze objecten verwijderen voordat u exporteert en vervolgens opnieuw maken na het importeren.If you need to use Import/Export, drop these objects before exporting and then re-create them after importing.
  • Elastische query's ondersteunt momenteel alleen alleen-lezen toegang tot externe tabellen.Elastic query currently only supports read-only access to external tables. U kunt volledige T-SQL-functionaliteit echter gebruiken voor de database 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 bij, zoals tijdelijke resultaten met, bijvoorbeeld voordoen, < column_list > in < local_table > Selecteer of voor het definiëren van opgeslagen procedures op de database elastische query's die verwijzen naar externe tabellen zijn.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 uitzondering van nvarchar(max), worden LOB-typen (met inbegrip van ruimtelijke typen) niet ondersteund in de definities van de externe tabel.Except for nvarchar(max), LOB types (including spatial types) are not supported in external table definitions. Als tijdelijke oplossing, kunt u een weergave op de externe database die het type LOB in nvarchar(max) geworpen maken, uw externe tabel over de weergave in plaats van de basistabel definiëren en vervolgens geconverteerd naar 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 gegevenstype nvarchar(max) in resultaat set uitschakelen geavanceerde batchverwerking technics gebruikt in een elastische Query-implementatie en kunnen invloed hebben op prestaties van query voor een orde van grootte, of zelfs twee orde van grootte in niet-standaard use-cases waar grote hoeveelheid niet-samengevoegde gegevens worden overgebracht als gevolg 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.
  • Kolomstatistieken over externe tabellen worden momenteel niet ondersteund.Column statistics over external tables are currently not supported. Tabelstatistieken worden ondersteund, maar moeten handmatig worden gemaakt.Table statistics are supported, but need to be created manually.
  • Elastische query werkt alleen met Azure SQL Database.Elastic query works with Azure SQL Database only. U kunt deze niet gebruiken voor het uitvoeren van query's on-premises SQL Server of SQL Server in een virtuele machine.You cannot use it for querying on-premises SQL Server, or SQL Server in a VM.

FeedbackFeedback

Feedback over uw ervaring delen 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 allerlei soorten feedback over de service (defecten, ruwe randen, functiehiaten).We are interested in all kinds of feedback about the service (defects, rough edges, feature gaps).

Volgende stappenNext steps