Aracılığıyla paylaş


Transact-SQL kullanarak Verileri Ambarınıza alma

Şunlar için geçerlidir:✅ Microsoft Fabric'te Ambar

Transact-SQL dili, lakehouse ve ambarınızdaki mevcut tablolardan ambarınızdaki yeni tablolara büyük ölçekte veri yüklemek için kullanabileceğiniz seçenekler sunar. Bir tablonun toplanmış verilerle yeni sürümlerini, satırların alt kümesine sahip tabloların sürümlerini oluşturmanız veya karmaşık bir sorgunun sonucu olarak tablo oluşturmanız gerekiyorsa bu seçenekler kullanışlıdır. Şimdi bazı örnekleri inceleyelim.

CREATE TABLE AS SELECT (CTAS) kullanarak sorgu sonucuyla yeni bir tablo oluşturma

CREATE TABLE AS SELECT (CTAS) deyimi, bir deyiminin çıktısından ambarınızda yeni bir SELECT tablo oluşturmanıza olanak tanır. Veri dönüştürme ve çalışma alanınızda yeni tablolar oluşturma için son derece verimli hale getirerek yeni tabloya alma işlemini paralel olarak çalıştırır.

Not

Bu makaledeki örneklerde Bing COVID-19 örnek veri kümesi kullanılmıştır. Örnek veri kümesini yüklemek için COPY deyimini kullanarak verileri Ambarınıza alma bölümünde yer alan adımları izleyerek örnek verileri ambarınıza oluşturun.

İlk örnekte, mevcut dbo.[bing_covid-19_data_2023] tablonun bir kopyası olan ancak yalnızca 2023 yılına ait verilere filtrelenmiş yeni bir tablonun nasıl oluşturulacağı gösterilmektedir:

CREATE TABLE [dbo].[bing_covid-19_data_2023]
AS
SELECT * 
FROM [dbo].[bing_covid-19_data] 
WHERE DATEPART(YEAR,[updated]) = '2023';

Ayrıca, kaynak tablodaki sütundan updated alınan değerlerle yeni , month, dayofmonth sütunları içeren yeni yearbir tablo da oluşturabilirsiniz. Bu, enfeksiyon verilerini yıla göre görselleştirmeye çalışıyorsanız veya en çok COVID-19 vakasının gözlemlendiği ayları görmek için yararlı olabilir:

CREATE TABLE [dbo].[bing_covid-19_data_with_year_month_day]
AS
SELECT DATEPART(YEAR,[updated]) [year], DATEPART(MONTH,[updated]) [month], DATEPART(DAY,[updated]) [dayofmonth], * 
FROM [dbo].[bing_covid-19_data];

Başka bir örnek olarak, mevsimselliğin belirli bir ülkede/bölgede nasıl yayıldığını değerlendirmek için yıldan bağımsız olarak her ay gözlemlenen vaka sayısını özetleyen yeni bir tablo oluşturabilirsiniz. Önceki örnekte month oluşturulan tabloyu yeni sütun kaynak olarak kullanır:

CREATE TABLE [dbo].[infections_by_month]
AS
SELECT [country_region],[month], SUM(CAST(confirmed as bigint)) [confirmed_sum]
FROM [dbo].[bing_covid-19_data_with_year_month_day]
GROUP BY [country_region],[month];

Bu yeni tabloya dayanarak, Birleşik Devletler ile ve ayını Januaryizleyen December Octobertüm yıllarda daha doğrulanmış vakalar gözlemlediğini görebiliriz. April , genel olarak en düşük vaka sayısının olduğu aydır:

SELECT * FROM [dbo].[infections_by_month]
WHERE [country_region] = 'United States'
ORDER BY [confirmed_sum] DESC;

Birleşik Devletler aya göre, aya göre azalan sırada sıralanmış bulaşma sayısını gösteren sorgu sonuçlarının ekran görüntüsü. 1. ay en üstte gösterilir.

Daha fazla örnek ve söz dizimi başvurusu için bkz . CREATE TABLE AS SELECT (Transact-SQL).

T-SQL sorguları ile mevcut tablolara veri alma

Önceki örneklerde bir sorgunun sonucuna göre yeni tablolar oluşturulur. Örnekleri var olan tablolarda çoğaltmak için INSERT... SELECT deseni kullanılabilir. Örneğin, aşağıdaki kod yeni verileri mevcut bir tabloya alır:

INSERT INTO [dbo].[bing_covid-19_data_2023]
SELECT * FROM [dbo].[bing_covid-19_data] 
WHERE [updated] > '2023-02-28';

Sonuçta elde edilen sorgu sütun türleri hedef tablodaki SELECT sütunlarla uyumlu olduğu sürece deyiminin sorgu ölçütleri geçerli herhangi bir sorgu olabilir. Sütun adları belirtilirse ve hedef tablodaki sütunların yalnızca bir alt kümesini içerirse, diğer tüm sütunlar olarak NULLyüklenir. Daha fazla bilgi için bkz . INSERT INTO kullanma... Select to Bulk Import data with minimal logging and parallelism.

Farklı ambarlardaki ve göllerdeki tablolardan veri alma

HEM CREATE TABLE AS SELECT hem de INSERT... SELECT deyimi, SELECT çapraz ambar sorgularını kullanarak hedef tablonuzun depolandığı ambardan farklı olan ambarlardaki tablolara da başvurabilir. Bu, üç bölümlü adlandırma kuralı [warehouse_or_lakehouse_name.][schema_name.]table_namekullanılarak elde edilebilir. Örneğin, aşağıdaki çalışma alanı varlıklarına sahip olduğunuzu varsayalım:

  • Adlı ve en son olay verilerine sahip bir lakehouse cases_lakehouse .
  • Başvuru verileri için kullanılan tablolarla adlı reference_warehouse bir ambar.
  • Hedef tablonun oluşturulduğu yer adlı research_warehouse bir ambar.

Bu çalışma alanı varlıklarındaki tablolardaki verileri birleştirmek için üç bölümlü adlandırma kullanan yeni bir tablo oluşturulabilir:

CREATE TABLE [research_warehouse].[dbo].[cases_by_continent]
AS
SELECT 
FROM [cases_lakehouse].[dbo].[bing_covid-19_data] cases
INNER JOIN [reference_warehouse].[dbo].[bing_covid-19_data] reference
ON cases.[iso3] = reference.[countrycode];

Çapraz ambar sorguları hakkında daha fazla bilgi edinmek için bkz . Veritabanları arası SQL Sorgusu yazma.