Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Önemli
Azure Data Lake Analytics 29 Şubat 2024'te kullanımdan kaldırıldı. Bu duyuruyla daha fazla bilgi edinin.
Veri analizi için kuruluşunuz Azure Synapse Analytics veya Microsoft Fabric kullanabilir.
TVF oluşturun
Önceki U-SQL betiğinde, aynı kaynak dosyadan okumak için EXTRACT kullanımını tekrarlamıştınız. U-SQL tablo değerli işlevi (TVF) ile verileri gelecekte yeniden kullanmak üzere kapsülleyebilirsiniz.
Aşağıdaki betik, varsayılan veritabanında ve şemada Searchlog() adlı bir TVF oluşturur:
DROP FUNCTION IF EXISTS Searchlog;
CREATE FUNCTION Searchlog()
RETURNS @searchlog TABLE
(
UserId int,
Start DateTime,
Region string,
Query string,
Duration int?,
Urls string,
ClickedUrls string
)
AS BEGIN
@searchlog =
EXTRACT UserId int,
Start DateTime,
Region string,
Query string,
Duration int?,
Urls string,
ClickedUrls string
FROM "/Samples/Data/SearchLog.tsv"
USING Extractors.Tsv();
RETURN;
END;
Aşağıdaki betik, önceki betikte tanımlanan TVF'yi nasıl kullanacağınızı gösterir:
@res =
SELECT
Region,
SUM(Duration) AS TotalDuration
FROM Searchlog() AS S
GROUP BY Region
HAVING SUM(Duration) > 200;
OUTPUT @res
TO "/output/SearchLog-use-tvf.csv"
ORDER BY TotalDuration DESC
USING Outputters.Csv();
Görünümler oluştur
Tek bir sorgu ifadeniz varsa, TVF yerine U-SQL VIEW kullanarak bu ifadeyi kapsülleyebilirsiniz.
Aşağıdaki betik, varsayılan veritabanında ve şemada SearchlogView adlı bir görünüm oluşturur:
DROP VIEW IF EXISTS SearchlogView;
CREATE VIEW SearchlogView AS
EXTRACT UserId int,
Start DateTime,
Region string,
Query string,
Duration int?,
Urls string,
ClickedUrls string
FROM "/Samples/Data/SearchLog.tsv"
USING Extractors.Tsv();
Aşağıdaki betik, tanımlı görünümün kullanımını gösterir:
@res =
SELECT
Region,
SUM(Duration) AS TotalDuration
FROM SearchlogView
GROUP BY Region
HAVING SUM(Duration) > 200;
OUTPUT @res
TO "/output/Searchlog-use-view.csv"
ORDER BY TotalDuration DESC
USING Outputters.Csv();
Tablo oluştur
İlişkisel veritabanı tablolarında olduğu gibi, U-SQL ile önceden tanımlanmış şemaya sahip bir tablo oluşturabilir veya tabloyu dolduran sorgudan şemayı çıkaran bir tablo oluşturabilirsiniz (SELECT veya CTAS OLARAK CREATE TABLE olarak da bilinir).
Aşağıdaki betiği kullanarak bir veritabanı ve iki tablo oluşturun:
DROP DATABASE IF EXISTS SearchLogDb;
CREATE DATABASE SearchLogDb;
USE DATABASE SearchLogDb;
DROP TABLE IF EXISTS SearchLog1;
DROP TABLE IF EXISTS SearchLog2;
CREATE TABLE SearchLog1 (
UserId int,
Start DateTime,
Region string,
Query string,
Duration int?,
Urls string,
ClickedUrls string,
INDEX sl_idx CLUSTERED (UserId ASC)
DISTRIBUTED BY HASH (UserId)
);
INSERT INTO SearchLog1 SELECT * FROM master.dbo.Searchlog() AS s;
CREATE TABLE SearchLog2(
INDEX sl_idx CLUSTERED (UserId ASC)
DISTRIBUTED BY HASH (UserId)
) AS SELECT * FROM master.dbo.Searchlog() AS S; // You can use EXTRACT or SELECT here
Sorgu tabloları
Önceki betikte oluşturulanlar gibi tabloları, veri dosyalarını sorguladığınız şekilde sorgulayabilirsiniz. EXTRACT kullanarak satır kümesi oluşturmak yerine artık tablo adına başvurabilirsiniz.
Tablolardan okumak için, daha önce kullandığınız dönüştürme betiğini değiştirin:
@rs1 =
SELECT
Region,
SUM(Duration) AS TotalDuration
FROM SearchLogDb.dbo.SearchLog2
GROUP BY Region;
@res =
SELECT *
FROM @rs1
ORDER BY TotalDuration DESC
FETCH 5 ROWS;
OUTPUT @res
TO "/output/Searchlog-query-table.csv"
ORDER BY TotalDuration DESC
USING Outputters.Csv();
Uyarı
Şu anda, bir tabloyu oluşturduğunuz betikle aynı betikte o tablo üzerinde SELECT işlemi yapamazsınız.