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 year
bir 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ı January
izleyen December
October
tü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;
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 NULL
yü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_name
kullanı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.