Geçici tablolar ve kalıcı tablolar, sorguları kolaylaştırmanıza yardımcı olarak sorguların daha kolay anlaşılmasını ve korunmasını sağlar. Yeniden kullanabileceğiniz ara sonuçlar oluşturarak geçici verileri toplanmamış hâlde tutabilirsiniz. Aynı zamanda, sorguları yürütmek için gereken kaynakları azaltarak performansı artırabilirsiniz.
Oluşturulan tablolar, Ads Data Hub genelinde uygulanan statik gizlilik kontrollerine, izin verilen işlevlere ve alan birleştirme sınırlamalarına tabidir. Standart gizlilik kontrolleri, nihai SELECT
ifadesinden elde edilen veriler BigQuery'ye aktarıldığında uygulanır.
Tablo oluşturmak için şu BigQuery söz dizimini uygulayın:
CREATE [OR REPLACE] [TEMP | TEMPORARY] TABLE TABLE_NAME
[OPTIONS(privacy_checked_export=<true | false>)] AS query_statement;
Şu ifadeler desteklenmez:
IF NOT EXISTS
PARTITION BY
CLUSTER BY
Geçici tablolar
Geçici tablolar sorgu okunabilirliğini artırır ve toplama veya diferansiyel gizlilik şartlarına tabi olmayan ara sonuçlar oluşturmanıza olanak tanır.
Geçici tablolar:
- Yalnızca oturum düzeyinde mevcuttur ve sorgu yürütüldükten sonra bu tabloların süresi dolar.
- Yalnızca, oluşturulduğu sorgunun içinde kullanılabilir.
- Toplama veya diferansiyel gizlilik şartlarına tabi değildir.
- İsteğe bağlı
tmp
ad alanını destekler.
Geçici tablo oluşturmak için CREATE TEMP TABLE
ifadesini kullanın. Şu örnek, sorgunun sonuçlarını kaydedecek bir geçici tablo oluşturur ve daha sonra bu geçici tabloyu alt sorgularda kullanır:
-- Get a list of creative IDs and store in a temporary table called creative_list:
CREATE TEMP TABLE creative_list AS (
SELECT
adgroup_id,
advertiser_id,
creative_id
FROM
adh.dv360_youtube_impressions
);
-- Return creatives with a count of impressions greater than 100
SELECT
creative_id,
COUNT(*) AS imps
FROM
creative_list -- Alternative: tmp.creative_list
WHERE
imps > 100
GROUP BY
creative_id;
Kalıcı tablolar
Başka sorgularda kullanmak üzere ara tablo oluşturmak istiyorsanız kalıcı tablo oluşturun. Söz dizimi, TEMP
ifadesi dışında, geçici tablolarla aynıdır. Kalıcı tablolar önceden filtrelenir. Yani, toplama kontrolleri uygulanmaz ve bu tabloların süresi 72 saattir. Seçili ada sahip bir tablo zaten varsa bu tablonun üzerine yazılır.
Kalıcı tablolar:
- 72 saat sonra sona erer.
- Oluşturulduğu sorgunun dışında kullanılabilir.
- Toplama şartlarına tabidir.
- Yalnızca tabloya sonraki bir sorgudan erişildiğinde
tmp
ad alanını gerektirir.
Kalıcı tablo oluşturmak için CREATE TABLE
ifadesini kullanın. Şu örnek, sorgunun sonuçlarını kaydedecek bir kalıcı tablo oluşturur ve daha sonra bu kalıcı tabloyu sonraki sorgularda kullanır.
Sorgu 1
-- Get a list of creative IDs and store in a persistent table called creative_list:
CREATE TABLE creative_list AS (
SELECT
adgroup_id,
advertiser_id,
creative_id
FROM
adh.dv360_youtube_impressions
);
Sorgu 2
-- Return creatives which had more than 100 impressions
SELECT
creative_id,
COUNT(*) AS imps
FROM
tmp.creative_list
WHERE
imps > 100;
Gizlilik kontrollerini uygulama
Ads Data Hub, gizlilik kontrollerine tabi kalıcı sonuç tabloları oluşturmak için SQL söz dizimini de destekler.
Gizlilik kontrollerine tabi bir tablo oluşturmak için sorgunuza OPTIONS
ifadesini ekleyin.
OPTIONS(privacy_checked_export=true)
Şu örnek, oturum düzeyinde bir geçici tablo oluşturur ve gizlilik kontrollerini uygular:
-- Get a list of creative IDs and store in a temporary table called creative_list:
CREATE TEMP TABLE creative_list OPTIONS(privacy_checked_export=true) AS (
SELECT
adgroup_id,
advertiser_id,
creative_id
FROM
adh.dv360_youtube_impressions
);
Şu örnek, kalıcı tablo oluşturur, gizlilik kontrollerini uygular ve tabloyu Google Cloud projenize aktarır:
-- Get a list of creative IDs and store in a persistent table called creative_list:
CREATE TABLE `myproject.mydataset.creative_list` OPTIONS(privacy_checked_export=true) AS (
SELECT
adgroup_id,
advertiser_id,
creative_id
FROM
adh.dv360_youtube_impressions
);
Aynı sorguyu kullanarak birden çok tabloyu dışa aktarma
Sorgu başına bir tablo yeterli olmadığında, Ads Data Hub görüntülenebilir sonuç tablolarını dışa aktarmak için esnek bir SQL söz dizimini destekler. Bu tablolar, Ads Data Hub'da uygulanan aynı gizlilik kontrollerine tabidir.
Bir tabloyu ana SQL ifadesiyle birlikte dışa aktarmak için kullanılacak söz dizimi şöyledir:
CREATE TABLE <project_name.dataset_name.table_name>
OPTIONS(privacy_checked_export=true) AS query_statement;
Örneğin, bir tabloyu adh.google_ads_impressions
tablosundaki her kampanya kimliği için satır sayısını içeren BigQuery myproject.mydataset.mytable
hedefine aktarmak için:
CREATE TABLE `myproject.mydataset.mytable` OPTIONS(privacy_checked_export=true) AS
SELECT campaign_id, COUNT(*) AS ct
FROM adh.google_ads_impressions
GROUP BY campaign_id;
Tablolara, oluşturuldukları sorguda da referans verilebilir. Örneğin, şu sorgu:
CREATE TABLE `myproject.mydataset.mytable` OPTIONS(privacy_checked_export=true) AS
SELECT campaign_id, COUNT(*) AS ct
FROM adh.google_ads_impressions
GROUP BY campaign_id;
SELECT ct FROM `myproject.mydataset.mytable`;
İki tablo çıktısı verir:
- Birincisi,
campaign_id
vect
sütunlarıylamyproject.mydataset.mytable
konumunda bulunur. - Diğeri,
ct
sütunuyla iş bağımsız değişkenlerinin Hedef tablo alanında belirtilen konumda bulunur.
Bu tablolara, filtrelenmiş satır özeti de eklenebilir. Filtrelenmiş satır özetleri hakkında bilgi edinin.