Tablo oluşturma

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 ve ct sütunlarıyla myproject.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.