Veri bilimcilerin büyük veri analizleri gerçekleştirmeleri için pek çok araç var. Ancak nihayetinde bu sonuçları yönetime gerekçelendirmek zorunda kalmıyor musunuz? Kağıt üzerinde veya veritabanındaki çok sayıda rakam, önemli paydaşlar için neredeyse hiç göze çarpmıyor. Bu orta düzey Google Apps Komut Dosyası codelab'i, bir veya daha fazla Google uygulaması geliştirici platformu olan G Suite ve Google Cloud Platform'dan (GCP) yararlanarak bu süreci sonuna kadar tamamlamanıza yardımcı olur.
Google Cloud'un geliştirici araçları, derin veri analizi gerçekleştirmenize ve ardından bu sonuçları bir e-tabloya eklemenize, ardından bu verilerle bir slayt sunumu oluşturmanıza olanak tanıyarak sonuçların yönetime sunulması için daha uygun bir aşama sunar. Bu codelab, GCP'nin BigQuery API'sini (Apps Komut Dosyası gelişmiş hizmeti olarak) ve Google E-Tablolar ile Google Slaytlar'ın yerleşik Apps Komut Dosyası hizmetlerini kapsar.
Motivasyon/önceki sanat
Bu codelab'deki örnek uygulama, aşağıdaki diğer kod örneklerinden esinlenmiştir...
- Google Apps Komut Dosyası BigQuery Hizmeti örnek uygulaması ve GitHub'da açık kaynak
- E-tablo verilerinden slayt oluşturma geliştirici videosunda yer alan ve bu blog yayınında yayınlanan örnek uygulama
- Google Slaytlar API codelab'inde yer alan örnek uygulama
Slaytlar API'si codelab örnek uygulaması BigQuery ve Slaytlar'a sahip olsa da, bu codelab örnek uygulamasından birkaç şekilde farklıdır:
- Node.js uygulaması ve Apps Komut Dosyası uygulamamız
- Apps Komut Dosyası hizmetlerini kullanırken REST API'lerini kullanma
- Google Drive kullanır ancak Google E-Tablolar kullanmaz, bu uygulama Drive'ı kullanmaz ancak Drive'ı kullanır
Bu codelab'de, Google Cloud'daki özellikleri ve API'leri gerçek hayattaki kullanım alanına daha iyi benzeyecek şekilde sergilemek için birçok teknolojiyi tek bir uygulamada bir araya getirmek istedik. Amaç, hayal gücünüzü kullanma konusunda ilham kaynağı olmakla birlikte kuruluşunuz veya müşterileriniz için zorlu sorunları çözmek amacıyla GCP ve G Suite'ten yararlanmaktır.
Neler öğreneceksiniz?
- Google Apps Komut Dosyası'nı birden fazla Google (GCP & G Suite) hizmetiyle kullanma
- Büyük veri analizi yapmak için Google BigQuery'yi kullanma
- Google E-Tablosu oluşturup verileri e-tabloya doldurma
- E-Tablolar'da yeni bir grafik oluşturma
- E-Tablolar'daki grafikleri ve verileri Google Slaytlar sunusuna aktarma
Gerekenler
- İnternete ve web tarayıcısına erişim
- Google hesabı (G Suite hesapları için yönetici onayı gerekebilir)
- Temel JavaScript becerileri
- Apps Komut Dosyası geliştirme konusunda bilgi sahibi olmak faydalı olabilir, ancak gerekli değildir
Bu codelab/eğitim videosunu nasıl kullanacaksınız?
G Suite geliştirici araçları ve API'leriyle ilgili deneyiminizi nasıl değerlendirirsiniz?
Apps Komut Dosyası deneyiminizi özellikle nasıl değerlendirirsiniz?
GCP geliştirici araçları ve API'leriyle ilgili deneyiminizi nasıl değerlendirirsiniz?
Bu codelab'in neyle ilgili olduğunu öğrendiğinize göre, tam olarak ne yapacaksınız?
- Mevcut bir Apps Komut Dosyası BigQuery örneği alın ve örneği çalıştırın
- Bu örnekten, BigQuery'ye nasıl sorgu gönderip sonuçları alacağınızı öğrenin
- Google E-Tablosu oluşturup sonuçları BigQuery'ye girin
- Döndürülen ve E-Tabloya eklenen verileri biraz değiştirmek için kodu biraz değiştirin
- BigQuery'deki veriler için grafik oluşturmak üzere Apps Komut Dosyası'ndaki E-Tablolar hizmetini kullanın
- Yeni bir sunu oluşturmak için Slaytlar hizmetini kullanın
- Tüm yeni slaytlar için otomatik olarak oluşturulan varsayılan başlık slaytına başlık ve alt başlık ekleyin
- Veri tablosuyla yeni bir slayt oluşturun, ardından E-tablonun veri hücrelerini veri tablosuna aktarın
- Yeni bir slayt daha ekleyip e-tablo grafiğini ona ekleyin
Apps Komut Dosyası, BigQuery, E-Tablolar ve Slaytlar'la ilgili bazı arka plan bilgileriyle başlayalım.
Google Apps Komut Dosyası ve BigQuery
Google Apps Komut Dosyası, Google REST API'lerden daha üst düzeyde çalışan bir G Suite geliştirme platformudur. Pek çok farklı beceri düzeyindeki geliştirici tarafından kullanılabilen sunucusuz bir geliştirme ve uygulama barındırma ortamıdır. Tek bir cümle halinde özetlemek gerekirse "Apps Komut Dosyası; G Suite otomasyonu, uzantısı ve entegrasyonu için sunucusuz bir JavaScript çalışma zamanıdır."
Node.js'ye benzer şekilde sunucu taraflı bir JavaScript'tir. Ancak hızlı, eşzamansız ve etkinliğe dayalı uygulama barındırma yerine G Suite ile diğer Google hizmetleriyle sıkı entegrasyon elde etmeye odaklanır. Üstelik sunduğu geliştirme ortamı, alışkın olduğunuz ortamdan tamamen farklı olabilir. Apps Komut Dosyası size şu olanakları tanır:
- Tarayıcı tabanlı bir kod düzenleyicide geliştirme yapın ancak Apps Komut Dosyası için komut satırı dağıtım aracı olan
clasp
kullanıyorsanız yerel olarak uygulama geliştirmeyi tercih edebilirsiniz - G Suite'e ve diğer Google veya harici hizmetlere (Apps Komut Dosyası
URLfetch
veyaJdbc
hizmetleri üzerinden) erişmek için özelleştirilmiş JavaScript sürümünün kodu - Apps Komut Dosyası bu işlemi sizin yerinize yaptığından, yetkilendirme kodu yazılmasından kaçınabilirsiniz
- Uygulamanızı barındırmamayı tercih edebilirsiniz. Uygulamanız, buluttaki Google sunucularında barındırılır ve çalışır.
NOT: Çoğunlukla bu codelab'in kapsamı dışında size Apps Komut Dosyası öğretir. Size bu konuda yardımcı olabilecek birçok online kaynak mevcut. Resmi dokümanlarda da hızlı başlangıç kılavuzları, eğitimler ve videolar içeren bir genel bakış yer alır. Son olarak, bunu başlatmadan önce tamamlanması gereken Apps Komut Dosyası giriş codelab'i aracını unutmayın.
Apps Komut Dosyası, diğer Google teknolojileriyle arayüz oluşturmak için iki yöntemden yararlanır:
- yerleşik/yerel hizmet
- gelişmiş hizmet
Yerleşik hizmet, G Suite veya Google ürün verilerine veya diğer yararlı yardımcı yöntemlere erişmek için kullanabileceğiniz üst düzey yöntemler sunar. Gelişmiş hizmetler yalnızca G Suite veya Google REST API'si için düşük etkili bir sarmalayıcıdır. Gelişmiş hizmetler, REST API için eksiksiz kapsam sunar. Genellikle yerleşik hizmetlerden daha fazlasını gerçekleştirebilse de bu hizmetler daha karmaşık kodların kullanılması gerekli kılar (yine de REST API'yi kullanmaktan daha kolaydır). Ayrıca gelişmiş hizmetlerin kullanılmadan önce komut dosyası projesi için etkinleştirilmesi gerekir.
Mümkün olduğunda, geliştiriciler yerleşik bir hizmet tercih etmelidir çünkü bu hizmetler gelişmiş hizmetlere göre daha kolaydır ve daha ağır hizmetler sunar. Ancak bazı Google API'lerinde yerleşik hizmet olmadığından, gelişmiş hizmetler tek seçenek olabilir. Google BigQuery buna örnek verilebilir. Yerleşik hizmet yoktur, ancak BigQuery gelişmiş hizmeti mevcuttur. (Hizmet sunulmamasından iyidir, değil mi?) BigQuery'de yeniyseniz çok büyük veri topluluklarında (örneğin, birden fazla terabayt cinsinden) basit (veya karmaşık) sorgularda basit (ya da karmaşık) sorgular gerçekleştirmenizi sağlayan, ancak saniyeler içinde sonuç veren bir GCP hizmeti.
Apps Komut Dosyası'ndan Google E-Tablolar ve Slaytlara Erişme
BigQuery'nin aksine, Google E-Tablolar ve Slaytlar'da yerleşik hizmetler (ve yalnızca API'de bulunan özelliklere erişmek için kullandığınız gelişmiş hizmetler) bulunmaktadır. Koda başlamadan önce yerleşik E-Tablolar ve Slaytlar hizmetlerine ilişkin belgeleri inceleyin. Elbette gelişmiş hizmetlerle ilgili dokümanlar da vardır. Bunlar sırasıyla E-Tablolar ve Slaytlar'dır.
Giriş
Bu ilk görevle bu codelab'den önemli ölçüde bahsedeceğiz. Aslında, burada işiniz bittikten sonra codelab'in neredeyse tamamı tamamlanmıştır. Birkaç alt bölüme ayrılmış durumda tüm bunları yapacaksınız:
- Yeni bir Google Apps Komut Dosyası projesi oluşturma
- BigQuery gelişmiş hizmetine erişimi etkinleştirme
- Geliştirme düzenleyicisine gitme ve uygulama kaynak kodunu girme
- Uygulama yetkilendirme sürecini (OAuth2) tamamlama
- BigQuery'ye istek gönderen uygulamayı çalıştırma
- BigQuery'deki sonuçlarla oluşturulan yepyeni bir Google E-Tablosunu görüntüleme
Kurulum
- a)
script.google.com
adresine giderek yeni bir Apps Komut Dosyası projesi oluşturun . Farklı G Suite ürün hatları vardır ve yeni bir projeyi nasıl oluşturacağınız, kullandığınız sürüme bağlı olarak farklılık gösterebilir. Yalnızca Gmail hesabınızı kullanıyorsanız ve proje geliştirme konusunda yeniyseniz ilk projenizi oluşturmak için bir düğmeyle birlikte boş bir ekran görürsünüz:
b) Sol üstte tüm projelerinizi ve büyük bir +Yeni düğmesini görebilirsiniz. Bu nedenle düğmeyi tıklayın.
c) Yukarıdakilerin ikisi de yoksa ekranınız aşağıdaki gibi görünebilir. Cevabınız evetse sol üst köşede bir hamburger menü simgesi olup olmadığına bakın ve +Yeni komut dosyası'nı seçin.
d) Komut satırını tercih edenler için bu seçeneği kullanın. Aracınız clasp
, özellikle de clasp create
komutunu çalıştıracaksınız.
e) Yeni bir komut dosyası projesi oluşturmanın son yolu, https://script.google.com/create kısayol bağlantısına gitmektir.
- Yeni bir projeyi başlatmak için kullandığınız teknikten bağımsız olarak, en iyi sonucu şu şekilde görünecek bir ekran olan Apps Komut Dosyası kod düzenleyiciye geçmeniz gerekir:
- Dosya &Kaydet; Kaydet'i tıklayın ve projenize bir ad verin.
- Sonrasında BigQuery sorgularını çalıştırabilmek için bir Google Cloud Console projesi oluşturmanız gerekir.
- Yeni bir proje oluşturun, buna bir ad verin, Faturalandırma Hesabı seçin ve OLUŞTUR'u tıklayın.
- Proje oluşturma işlemi tamamlandığında sayfanın sağ üst kısmında bir bildirim görünür. Projeyi açmak için Proje Oluştur: <Proje Adı> girişini tıklayın.
- Sol üst taraftaki menü simgesini
tıklayın ve APIs & Services > Kimlik Bilgileri'ne gidin. OAuth izin ekranı sekmesini tıklayın (doğrudan bağlantı).
- Application name (Uygulama adı) alanına "Büyük Veri Kodu Laboratuvarı" yazın ve alttaki Save (Kaydet) düğmesini tıklayın.
- Menüyü genişletmek için sağ üstteki üç nokta simgesini
tıklayıp Proje ayarları'nı (doğrudan bağlantı) seçin.
- Proje numarası bölümünde listelenen değeri kopyalayın. (Daha sonra codelab'de kullanacağımız ayrı bir Ürün Kimliği alanı vardır.)
- App Script Editor'a dönüp Kaynaklar > Cloud Platform projesi'ni tıklayın.
- Metin kutusuna proje numarasını girin ve Projeyi Ayarla'yı tıklayın. İstendiğinde Onayla'yı tıklayın.
- Tamamlandığında iletişim kutusunu kapatmak için Kapat düğmesini tıklayın.
- Artık yeni bir proje kurulumunuz olduğuna göre BigQuery gelişmiş hizmetini etkinleştirmeniz gerekir. Bu nedenle, Kaynaklar -> Gelişmiş Google Hizmetleri'ni açın ve BigQuery API'yi açın.
- Alttaki bir notta "Google Cloud Platform API Kontrol Paneli"'nde bu hizmetler de etkinleştirilmiş olmalıdır. Bu nedenle, geliştirici konsoluna başka bir tarayıcı sekmesi açan veya kısaca "yeni konsol" bağlantısını tıklayın.
- Geliştirici konsolunda, en üstteki +API'leri ve Hizmetleri Etkinleştir düğmesini tıklayın, "bigquery"'yı arayın, BigQuery API Aktarım'ı değil, BigQuery API'yi seçin ve etkinleştirmek için etkinleştir'i tıklayın. Bu tarayıcı sekmesini açık bırakın.
NOT: API etkinleştirildikten sonra bu sayfada "Bu API'yi kullanmak için kimlik bilgileri oluşturmanız gerekir..." şeklinde bir not görebilirsiniz. - Kod düzenleyicinizin tarayıcı sekmesine döndüğünüzde hâlâ Gelişmiş Google Hizmetleri menüsündesiniz. Bu nedenle iletişim kutusunu kapatmak için Tamam'ı tıklayarak kod düzenleyicide kalırsınız. Sayfanın üst tarafındaki proje adını tıklayın ve istediğiniz şekilde adlandırın. "BigQuery demosu" adını veriyoruz.
Artık uygulama kodunu girmeye, yetkilendirme sürecini tamamlamaya ve bu uygulamayı çalıştırmak için ilk adımları atmaya hazırsınız.
Uygulamayı yükleyip çalıştırın
- Aşağıdaki kutuda yer alan kodu kopyalayıp kod düzenleyicide bulunan her şeyin üzerine yapıştırın:
// Filename for data results
var QUERY_NAME = "Most common words in all of Shakespeare's works";
// Replace this value with your Google Cloud API project ID
var PROJECT_ID = '';
if (!PROJECT_ID) throw Error('Project ID is required in setup');
/**
* Runs a BigQuery query; puts results into Sheet. You must enable
* the BigQuery advanced service before you can run this code.
* @see http://developers.google.com/apps-script/advanced/bigquery#run_query
* @see http://github.com/googleworkspace/apps-script-samples/blob/main/advanced/bigquery.gs
*
* @returns {Spreadsheet} Returns a spreadsheet with BigQuery results
* @see http://developers.google.com/apps-script/reference/spreadsheet/spreadsheet
*/
function runQuery() {
// Replace sample with your own BigQuery query.
var request = {
query:
'SELECT ' +
'LOWER(word) AS word, ' +
'SUM(word_count) AS count ' +
'FROM [bigquery-public-data:samples.shakespeare] ' +
'GROUP BY word ' +
'ORDER BY count ' +
'DESC LIMIT 10'
};
var queryResults = BigQuery.Jobs.query(request, PROJECT_ID);
var jobId = queryResults.jobReference.jobId;
// Wait for BQ job completion (with exponential backoff).
var sleepTimeMs = 500;
while (!queryResults.jobComplete) {
Utilities.sleep(sleepTimeMs);
sleepTimeMs *= 2;
queryResults = BigQuery.Jobs.getQueryResults(PROJECT_ID, jobId);
}
// Get all results from BigQuery.
var rows = queryResults.rows;
while (queryResults.pageToken) {
queryResults = BigQuery.Jobs.getQueryResults(PROJECT_ID, jobId, {
pageToken: queryResults.pageToken
});
rows = rows.concat(queryResults.rows);
}
// Return null if no data returned.
if (!rows) {
return Logger.log('No rows returned.');
}
// Create the new results spreadsheet.
var spreadsheet = SpreadsheetApp.create(QUERY_NAME);
var sheet = spreadsheet.getActiveSheet();
// Add headers to Sheet.
var headers = queryResults.schema.fields.map(function(field) {
return field.name.toUpperCase();
});
sheet.appendRow(headers);
// Append the results.
var data = new Array(rows.length);
for (var i = 0; i < rows.length; i++) {
var cols = rows[i].f;
data[i] = new Array(cols.length);
for (var j = 0; j < cols.length; j++) {
data[i][j] = cols[j].v;
}
}
// Start storing data in row 2, col 1
var START_ROW = 2; // skip header row
var START_COL = 1;
sheet.getRange(START_ROW, START_COL, rows.length, headers.length).setValues(data);
Logger.log('Results spreadsheet created: %s', spreadsheet.getUrl());
}
Şimdi az önce oluşturduğunuz dosyayı kaydedin, ancak Code.gs
olan dosyayı bq-sheets-slides.js
olarak yeniden adlandırın. Bu kod ne işe yarar? BigQuery'yi sorgulayıp sonuçları yeni bir Google E-tablosuna yazdığını zaten söylemiştik, ancak bu sorgu nedir? Sütunu, runQuery()
adlı sayfanın üst kısmına yakın bir yerde görebilirsiniz:
SELECT
LOWER(word) AS word,
SUM(word_count) AS count
FROM [bigquery-public-data:samples.shakespeare]
GROUP BY word
ORDER BY count
DESC LIMIT 10
Bu sorgu, BigQuery'nin herkese açık veri kümesinin bir parçası olan Shakespeare'in eserlerine bakar ve tüm eserlerinde en popüler olan 10 kelimeyi, kullanım sayısına göre sıralayarak yayınlar. Söz konusu işlemi elle yapmanın ne kadar zor olacağını tahmin edebilirsiniz. Bu örneğin, size BigQuery'nin ne kadar yararlı olduğu hakkında bir ipucu vereceğini düşünüyoruz.
- Neredeyse denemek istiyoruz ama denemeye hazır değiliz. Bu kod snippet'inin üst kısmında gördüğünüz gibi, geçerli bir proje kimliği gereklidir. Bu nedenle, kodu uygulama koduna eklememiz gerekir. Bunu almak için geliştirici konsolu sayfasının bulunduğu tarayıcı penceresine veya sekmesine geri dönün. (Kanalı açık bırakmanızı istedik. Hatırlıyor musunuz?)
- Google hesabı avatarınızın sol üst tarafındaki açılır menü seçici (
)dir. Bu simgeyi tıklayın ve Proje ayarları'nı seçin. Proje adını, kimliğini ve numarasını görürsünüz. Proje kimliğini kopyalayın ve
bq-sheets-slides.js
üst kısmındakiPROJECT_ID
değişkenini geliştirici konsolundan aldığınız değere ayarlayın. NOT: Menü seçicisi sabitlenir ve çalışmazsa sayfayı yeniden yükleyin. if
ifadesi, uygulamanın bir proje kimliği olmadan devam etmesini önlemek amacıyla kullanılır. Kendi tarayıcınızı ekledikten sonra dosyayı kaydedin, ardından menü çubuğuna gidip &&t; Run fonksiyonu > RunQuery'yi seçerek İzinleri İncele iletişim kutusunu tıklayın. Bu uygulama doğrulanmamıştır ve aşağıda gösterilen, aşağıdaki birkaç adımı gösteren animasyonlu bir GIF (başka bir uygulama için) bulunmaktadır:- İzinleri incelemeniz için istekte bulunduğunuzda size yukarıda gösterildiği gibi yeni bir iletişim kutusu gösterilir. Komut dosyasını çalıştıracak doğru Google hesabını seçin, Gelişmiş'i seçin, aşağı doğru ilerleyin ve OAuth2 uygulama yetkilendirme ekranına ulaşmak için && projektörünüzün adı > güvenli değil"i tıklayın. (Bu ekranın sizin ve aşağıdaki OAuth2 yetkilendirme iletişim kutusu arasında neden kaldığını öğrenmek için doğrulama işlemi hakkında daha fazla bilgi edinin.)
NOT: Uygulamayı yetkilendirdikten sonra bu işlemi her yürütmede tekrarlamanız gerekmez. Bu eğitimde 3. Göreve ilerleyene kadar tekrar bu iletişim kutusunu göreceksiniz. Bu ekranda, Google Slaytlar sunularını oluşturmak ve yönetmek için kullanıcıdan izin istenir. - OAuth2 iletişim penceresinde İzin ver'i tıkladıktan sonra komut dosyası çalışmaya başlar... En üstte sarı renkli sarı bir iletişim kutusu görürsünüz. Oldukça hızlı çalıştığı için uygulamanın çalıştığını veya yürütme işleminin tamamlandığını fark etmeyebilirsiniz.
- Bu iletişim kutusu tamamlandıktan sonra kaybolur. Bu nedenle, muhtemelen görmüyorsanız muhtemelen Drive'ınıza (
drive.google.com
) gidip Shakespeare'in tüm eserlerinde en sık kullanılan kelimeler veyaQUERY_NAME
değişkenine atadığınız yeni bir Google E-Tablosu bulun: - E-tabloyu açtığınızda 10 kelimelik kelimeler ve toplam sayıları azalan düzende sıralanır:
1. Görev özeti
Az önce neler olduğunu anlayın... Shakespeare'in tüm eserlerini sorgulayan bir kod çalıştırdınız (BÜYÜK bir miktar veri yok, ancak her oyunda her kelimeye kolayca göz atabileceğiniz, bu tür kelimelerin sayısını yönetebildiğiniz ve bunları görüntüleme sayılarına göre sıralayabileceğinizden daha fazla metin var). BigQuery'den bunu sizin adınıza yapmasını istemenin yanı sıra Google E-Tablolar için Apps Komut Dosyası'ndaki yerleşik hizmeti kullanarak bu verileri kolayca kullanabilirsiniz.
Yukarıda yapıştırdığınız bq-sheets-slides.js
(seçtiğimiz dosya adı) kodunu (gerçek bir proje kimliğine sahip olması gereken PROJECT_ID
dışında) bu codelab' şirketinin GitHub deposundaki github.com/googlecodelabs/bigquery-sheets-slides adresinde bulabilirsiniz. Bu kod, BigQuery gelişmiş hizmetler sayfasındaki orijinal örnekte büyük ölçüde ilham almıştır. Bu örnekte, biraz farklı bir sorgu çalıştırılmıştır. Shakespeare tarafından 10 veya daha fazla karakter içeren en popüler kelimeler hangileridir? Bu örneği GitHub deposunda da görebilirsiniz.
Shakespeare'in eserlerinde veya diğer herkese açık veri tablolarında deneyebileceğiniz diğer sorgularla ilgileniyorsanız bu web sayfasının yanı sıra bu sayfayı da inceleyin. Hangi sorguyu kullandığınıza bakılmaksızın, sorguyu Apps Komut Dosyası'nda çalıştırmadan önce BigQuery konsolunda test edebilirsiniz. BigQuery'nin kullanıcı arayüzü, bigquery.cloud.google.com adresinden geliştiriciler tarafından kullanılabilir. Örneğin, BigQuery kullanıcı arayüzü kullanıldığında sorgumuz bu şekilde görünür:
Yukarıdaki adımlar Apps Komut Dosyası'nın kod düzenleyicisinden yararlansa da komut satırı aracılığıyla yerel olarak geliştirmeyi de seçebilirsiniz. İsterseniz bq-sheets-slides.js
adında bir komut dosyası oluşturun, yukarıdaki kodu buraya yapıştırın ve clasp push
komutuyla Google'a yükleyin. (Kaçırdıysanız clasp
bağlantısını ve nasıl kullanılacağını burada tekrar görebilirsiniz.)
runQuery()
hizmetinin amacı, BigQuery ile konuşarak sonuçlarını E-Tabloya göndermektir. Şimdi verilerle bir grafik hazırlamamız gerekiyor. Bunu yapmak için E-Tablolar newChart()
yöntemini çağıran createColumnChart()
adında yeni bir işlev yapalım.
- Grafik oluşturun. Aşağıda yer alan
createColumnChart()
gövdesinirunQuery()
tarihinden hemen sonrabq-sheets-slides.js
hedefine ekleyin. Verileri içeren sayfayı alır ve tüm verilerin bulunduğu bir sütunsal grafik ister. İlk satır veri değil sütun başlıkları içerdiği için veri aralığı A2 hücresinden başlar.
/**
* Uses spreadsheet data to create columnar chart.
* @param {Spreadsheet} Spreadsheet containing results data
* @returns {EmbeddedChart} visualizing the results
* @see http://developers.google.com/apps-script/reference/spreadsheet/embedded-chart
*/
function createColumnChart(spreadsheet) {
// Retrieve the populated (first and only) Sheet.
var sheet = spreadsheet.getSheets()[0];
// Data range in Sheet is from cell A2 to B11
var START_CELL = 'A2'; // skip header row
var END_CELL = 'B11';
// Place chart on Sheet starting on cell E5.
var START_ROW = 5; // row 5
var START_COL = 5; // col E
var OFFSET = 0;
// Create & place chart on the Sheet using above params.
var chart = sheet.newChart()
.setChartType(Charts.ChartType.COLUMN)
.addRange(sheet.getRange(START_CELL + ':' + END_CELL))
.setPosition(START_ROW, START_COL, OFFSET, OFFSET)
.build();
sheet.insertChart(chart);
}
- E-tabloyu iade et. Yukarıda,
createColumnChart()
e-tablo nesnesinin bulunması gerekiyor. Bu nedenle,createColumnChart()
nesnesine iletebilmemiz içinrunQuery()
nesnesinispreadsheet
nesnesini döndürecek şekilde güncellememiz gerekiyor. Google E-Tablosunun başarıyla oluşturulmasını günlüğe kaydettikten sonrarunQuery()
nesnesinin sonunda, günlük satırından hemen sonraspreadsheet
nesnesini döndürün:
Logger.log('Results spreadsheet created: %s', spreadsheet.getUrl());
// NEW: Return the spreadsheet object for later use.
return spreadsheet;
}
- Sürüş
createBigQueryPresentation()
işlevi. BigQuery ve grafik oluşturma işlevini mantıksal olarak ayırmak muhteşem bir fikirdir. Şimdi uygulamayı (runQuery()
vecreateColumnChart()
) çağırarakcreateBigQueryPresentation()
işlevini oluşturalım. Eklediğiniz kod şu şekilde görünmelidir:
/**
* Runs a BigQuery query, adds data and a chart in a Sheet.
*/
function createBigQueryPresentation() {
var spreadsheet = runQuery();
createColumnChart(spreadsheet);
}
- Kodu yeniden kullanılabilir hale getirin. Yukarıda 2 önemli adım attınız: e-tablo nesnesini döndürme ve bir sürüş işlevi oluşturma. Bir iş arkadaşı
runQuery()
ürününü yeniden kullanmak istiyorsa ve URL'nin günlüğe kaydedilmesini istemiyorsa ne olur?runQuery()
ürününün genel kullanım için daha anlaşılır olmasını sağlamak amacıyla bu günlük satırını taşımamız gerekiyor. Günlük satırını taşıyabileceğiniz en uygun yer neresidir?createBigQueryPresentation()
tahmininiz doğruydu. Günlük satırı taşındıktan sonra şu şekilde görünmelidir:
/**
* Runs a BigQuery query, adds data and a chart in a Sheet.
*/
function createBigQueryPresentation() {
var spreadsheet = runQuery();
Logger.log('Results spreadsheet created: %s', spreadsheet.getUrl()); // MOVED HERE
createColumnChart(spreadsheet);
}
Yukarıdaki bu değişiklikler (PROJECT_ID
hariç olmak üzere) sayesinde bq-sheets-slides.js
öğeniz artık aşağıdaki gibi görünür (ve GitHub deposunun step2
klasöründe de bulunur):
// Filename for data results
var QUERY_NAME = "Most common words in all of Shakespeare's works";
// Replace this value with your Google Cloud API project ID
var PROJECT_ID = '';
if (!PROJECT_ID) throw Error('Project ID is required in setup');
/**
* Runs a BigQuery query; puts results into Sheet. You must enable
* the BigQuery advanced service before you can run this code.
* @see http://developers.google.com/apps-script/advanced/bigquery#run_query
* @see http://github.com/googleworkspace/apps-script-samples/blob/main/advanced/bigquery.gs
*
* @returns {Sheet} Returns a sheet with results
* @see http://developers.google.com/apps-script/reference/spreadsheet/sheet
*/
function runQuery() {
// Replace sample with your own BigQuery query.
var request = {
query:
'SELECT ' +
'LOWER(word) AS word, ' +
'SUM(word_count) AS count ' +
'FROM [bigquery-public-data:samples.shakespeare] ' +
'GROUP BY word ' +
'ORDER BY count ' +
'DESC LIMIT 10'
};
var queryResults = BigQuery.Jobs.query(request, PROJECT_ID);
var jobId = queryResults.jobReference.jobId;
// Wait for BQ job completion (with exponential backoff).
var sleepTimeMs = 500;
while (!queryResults.jobComplete) {
Utilities.sleep(sleepTimeMs);
sleepTimeMs *= 2;
queryResults = BigQuery.Jobs.getQueryResults(PROJECT_ID, jobId);
}
// Get all results from BigQuery.
var rows = queryResults.rows;
while (queryResults.pageToken) {
queryResults = BigQuery.Jobs.getQueryResults(PROJECT_ID, jobId, {
pageToken: queryResults.pageToken
});
rows = rows.concat(queryResults.rows);
}
// Return null if no data returned.
if (!rows) {
return Logger.log('No rows returned.');
}
// Create the new results spreadsheet.
var spreadsheet = SpreadsheetApp.create(QUERY_NAME);
var sheet = spreadsheet.getActiveSheet();
// Add headers to Sheet.
var headers = queryResults.schema.fields.map(function(field) {
return field.name.toUpperCase();
});
sheet.appendRow(headers);
// Append the results.
var data = new Array(rows.length);
for (var i = 0; i < rows.length; i++) {
var cols = rows[i].f;
data[i] = new Array(cols.length);
for (var j = 0; j < cols.length; j++) {
data[i][j] = cols[j].v;
}
}
// Start storing data in row 2, col 1
var START_ROW = 2; // skip header row
var START_COL = 1;
sheet.getRange(START_ROW, START_COL, rows.length, headers.length).setValues(data);
// Return the spreadsheet object for later use.
return spreadsheet;
}
/**
* Uses spreadsheet data to create columnar chart.
* @param {Spreadsheet} Spreadsheet containing results data
* @returns {EmbeddedChart} visualizing the results
* @see http://developers.google.com/apps-script/reference/spreadsheet/embedded-chart
*/
function createColumnChart(spreadsheet) {
// Retrieve the populated (first and only) Sheet.
var sheet = spreadsheet.getSheets()[0];
// Data range in Sheet is from cell A2 to B11
var START_CELL = 'A2'; // skip header row
var END_CELL = 'B11';
// Place chart on Sheet starting on cell E5.
var START_ROW = 5; // row 5
var START_COL = 5; // col E
var OFFSET = 0;
// Create & place chart on the Sheet using above params.
var chart = sheet.newChart()
.setChartType(Charts.ChartType.COLUMN)
.addRange(sheet.getRange(START_CELL + ':' + END_CELL))
.setPosition(START_ROW, START_COL, OFFSET, OFFSET)
.build();
sheet.insertChart(chart);
}
/**
* Runs a BigQuery query, adds data and a chart in a Sheet.
*/
function createBigQueryPresentation() {
var spreadsheet = runQuery();
Logger.log('Results spreadsheet created: %s', spreadsheet.getUrl());
createColumnChart(spreadsheet);
}
Dosyayı kaydedin, ardından kod düzenleyicinin en üstüne gidip runQuery()
yerine createBigQueryPresentation()
öğesini yürütmeye geçin. Çalıştırdıktan sonra başka bir Google E-Tablosu alırsınız, ancak bu kez E-Tabloda verilerin yanında bir grafik görünür:
Codelab'in son bölümünde, yeni bir Google Slaytlar sunusu oluşturulması, başlık slaytındaki başlığın ve alt başlığın doldurulması ve ardından veri hücrelerinin her biri ve grafik için birer tane olmak üzere iki yeni slaytın eklenmesi yer alır.
- Slayt grubu oluşturun. Slayt gösterisindeki tüm çalışmalar
createSlidePresentation()
saniye içinde gerçekleşecek vecreateColumnChart()
tarihinden hemen sonrabq-sheets-slides.js
bölümüne ekleyeceğiz. Yeni bir slayt kümesi oluşturmakla başlayalım ve ardından tüm yeni sunularla aldığımız varsayılan başlık slaytına bir başlık ve alt başlık ekleyelim.
/**
* Create presentation with spreadsheet data & chart
* @param {Spreadsheet} Spreadsheet with results data
* @param {EmbeddedChart} Sheets chart to embed on slide
* @returns {Presentation} Slide deck with results
*/
function createSlidePresentation(spreadsheet, chart) {
// Create the new presentation.
var deck = SlidesApp.create(QUERY_NAME);
// Populate the title slide.
var [title, subtitle] = deck.getSlides()[0].getPageElements();
title.asShape().getText().setText(QUERY_NAME);
subtitle.asShape().getText().setText('via GCP and G Suite APIs:\n' +
'Google Apps Script, BigQuery, Sheets, Slides');
- Veri tablosu ekleyin.
createSlidePresentation()
uygulamasındaki bir sonraki adım, Google E-Tablolar'daki hücre verilerini yeni slayt grubumuza aktarmaktır. Bu kod snippet'ini işleve ekleyin:
// Data range to copy is from cell A1 to B11
var START_CELL = 'A1'; // include header row
var END_CELL = 'B11';
// Add the table slide and insert an empty table on it of
// the dimensions of the data range; fails if Sheet empty.
var tableSlide = deck.appendSlide(SlidesApp.PredefinedLayout.BLANK);
var sheetValues = spreadsheet.getSheets()[0].getRange(
START_CELL + ':' + END_CELL).getValues();
var table = tableSlide.insertTable(sheetValues.length, sheetValues[0].length);
// Populate the table with spreadsheet data.
for (var i = 0; i < sheetValues.length; i++) {
for (var j = 0; j < sheetValues[0].length; j++) {
table.getCell(i, j).getText().setText(String(sheetValues[i][j]));
}
}
- Grafiği içe aktar.
createSlidePresentation()
içindeki son adım, bir slayt daha oluşturmak, grafiği e-tablonuzdan içe aktarmak vePresentation
nesnesini döndürmektir. Bu son snippet'i işleve ekleyin:
// Add a chart slide and insert the chart on it.
var chartSlide = deck.appendSlide(SlidesApp.PredefinedLayout.BLANK);
chartSlide.insertSheetsChart(chart);
// Return the presentation object for later use.
return deck;
}
- İade grafiği. Son işlevimiz artık tamamlandığına göre, imzasına bir kez daha göz atın. Evet,
createSlidePresentation()
için hem e-tablo hem de grafik nesnesi gerekir.Spreadsheet
nesnesini döndürmek içinrunQuery()
öğesini zaten ayarladık ancak şimdi grafik (EmbeddedChart
) nesnesini döndürmek içincreateColumnChart()
öğesinde benzer bir değişiklik yapmamız gerekiyor. Bunu yapmak içincreateColumnChart()
uygulamasına kodun sonuna geri dönüp son satır ekleyin:
// NEW: Return chart object for later use
return chart;
}
- Güncelle
createBigQueryPresentation()
.createColumnChart()
grafiği döndürdüğünden, bu grafiği bir değişkene kaydetmemiz ve ardından hem e-tabloyu hem de grafiğicreateSlidePresentation()
adresine iletmemiz gerekir. Yeni oluşturulan e-tablonun URL'sini kaydettiğimizden yeni slayt sunusunun URL'sini de kaydedelim.createBigQueryPresentation()
cihazınızı şu şekilde güncelleyin:
/**
* Runs a BigQuery query, adds data and a chart in a Sheet,
* and adds the data and chart to a new slide presentation.
*/
function createBigQueryPresentation() {
var spreadsheet = runQuery();
Logger.log('Results spreadsheet created: %s', spreadsheet.getUrl());
var chart = createColumnChart(spreadsheet); // UPDATED
var deck = createSlidePresentation(spreadsheet, chart); // NEW
Logger.log('Results slide deck created: %s', deck.getUrl()); // NEW
}
createBigQueryPresentation()
kaydedin ve tekrar çalıştırın. Ancak çalıştırılmadan önce, uygulamanızın Google Slaytlar sunularınızı görüntülemek ve yönetmek için kullanıcı izninize bir kez daha ihtiyacı vardır. Bu izine izin verirseniz daha önce olduğu gibi çalışmaya devam eder.- Artık oluşturulan E-Tablolar'a ek olarak, aşağıda gösterildiği gibi 3 slayt (başlık, veri tablosu, veri grafiği) içeren yeni bir Slaytlar sunusu da alacaksınız:
Tebrikler! Herkese açık veri kümelerinden birini sorgulayan, sonuçları depolamak için yeni bir Google E-Tablosu oluşturan, yeni alınan verilere dayalı bir grafik ekleyen ve son olarak e-tabloda grafiğin yer aldığı bir Google Slaytlar sunusu oluşturan bir Google BigQuery isteği gerçekleştirerek Google Cloud'un iki açısından da yararlanan bir uygulama oluşturdunuz.
Teknik olarak bu işlemleri gerçekleştirdiniz. Daha kapsamlı bir açıklama yapmak gerekirse büyük veri analizinden yola çıkıp paydaşlara sunabileceğiniz bir sonuç elde ettiniz. Üstelik bunların hepsini kodlama yaparak tamamen otomatik şekilde gerçekleştirdiniz. Bu örneğin, bu örneği alıp kendi projelerinizde özelleştirmenize yardımcı olacağını umuyoruz. Bu codelab'in sonunda, bu örnek uygulamayı nasıl daha da geliştirebileceğinizle ilgili bazı öneriler sunacağız.
Son görevdeki değişikliklerle (PROJECT_ID
hariç, tekrar) bq-sheets-slides.js
cihazınız artık aşağıdaki gibi (ve GitHub deposundaki final
klasöründe) bulunmalıdır:
bq-sheets-slides.js
/**
* Copyright 2018 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at apache.org/licenses/LICENSE-2.0.
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// Filename for data results
var QUERY_NAME = "Most common words in all of Shakespeare's works";
// Replace this value with your Google Cloud API project ID
var PROJECT_ID = '';
if (!PROJECT_ID) throw Error('Project ID is required in setup');
/**
* Runs a BigQuery query; puts results into Sheet. You must enable
* the BigQuery advanced service before you can run this code.
* @see http://developers.google.com/apps-script/advanced/bigquery#run_query
* @see http://github.com/googleworkspace/apps-script-samples/blob/main/advanced/bigquery.gs
*
* @returns {Spreadsheet} Returns a spreadsheet with BigQuery results
* @see http://developers.google.com/apps-script/reference/spreadsheet/spreadsheet
*/
function runQuery() {
// Replace sample with your own BigQuery query.
var request = {
query:
'SELECT ' +
'LOWER(word) AS word, ' +
'SUM(word_count) AS count ' +
'FROM [bigquery-public-data:samples.shakespeare] ' +
'GROUP BY word ' +
'ORDER BY count ' +
'DESC LIMIT 10'
};
var queryResults = BigQuery.Jobs.query(request, PROJECT_ID);
var jobId = queryResults.jobReference.jobId;
// Wait for BQ job completion (with exponential backoff).
var sleepTimeMs = 500;
while (!queryResults.jobComplete) {
Utilities.sleep(sleepTimeMs);
sleepTimeMs *= 2;
queryResults = BigQuery.Jobs.getQueryResults(PROJECT_ID, jobId);
}
// Get all results from BigQuery.
var rows = queryResults.rows;
while (queryResults.pageToken) {
queryResults = BigQuery.Jobs.getQueryResults(PROJECT_ID, jobId, {
pageToken: queryResults.pageToken
});
rows = rows.concat(queryResults.rows);
}
// Return null if no data returned.
if (!rows) {
return Logger.log('No rows returned.');
}
// Create the new results spreadsheet.
var spreadsheet = SpreadsheetApp.create(QUERY_NAME);
var sheet = spreadsheet.getActiveSheet();
// Add headers to Sheet.
var headers = queryResults.schema.fields.map(function(field) {
return field.name.toUpperCase();
});
sheet.appendRow(headers);
// Append the results.
var data = new Array(rows.length);
for (var i = 0; i < rows.length; i++) {
var cols = rows[i].f;
data[i] = new Array(cols.length);
for (var j = 0; j < cols.length; j++) {
data[i][j] = cols[j].v;
}
}
// Start storing data in row 2, col 1
var START_ROW = 2; // skip header row
var START_COL = 1;
sheet.getRange(START_ROW, START_COL, rows.length, headers.length).setValues(data);
// Return the spreadsheet object for later use.
return spreadsheet;
}
/**
* Uses spreadsheet data to create columnar chart.
* @param {Spreadsheet} Spreadsheet containing results data
* @returns {EmbeddedChart} visualizing the results
* @see http://developers.google.com/apps-script/reference/spreadsheet/embedded-chart
*/
function createColumnChart(spreadsheet) {
// Retrieve the populated (first and only) Sheet.
var sheet = spreadsheet.getSheets()[0];
// Data range in Sheet is from cell A2 to B11
var START_CELL = 'A2'; // skip header row
var END_CELL = 'B11';
// Place chart on Sheet starting on cell E5.
var START_ROW = 5; // row 5
var START_COL = 5; // col E
var OFFSET = 0;
// Create & place chart on the Sheet using above params.
var chart = sheet.newChart()
.setChartType(Charts.ChartType.COLUMN)
.addRange(sheet.getRange(START_CELL + ':' + END_CELL))
.setPosition(START_ROW, START_COL, OFFSET, OFFSET)
.build();
sheet.insertChart(chart);
// Return the chart object for later use.
return chart;
}
/**
* Create presentation with spreadsheet data & chart
* @param {Spreadsheet} Spreadsheet with results data
* @param {EmbeddedChart} Sheets chart to embed on slide
* @returns {Presentation} Returns a slide deck with results
* @see http://developers.google.com/apps-script/reference/slides/presentation
*/
function createSlidePresentation(spreadsheet, chart) {
// Create the new presentation.
var deck = SlidesApp.create(QUERY_NAME);
// Populate the title slide.
var [title, subtitle] = deck.getSlides()[0].getPageElements();
title.asShape().getText().setText(QUERY_NAME);
subtitle.asShape().getText().setText('via GCP and G Suite APIs:\n' +
'Google Apps Script, BigQuery, Sheets, Slides');
// Data range to copy is from cell A1 to B11
var START_CELL = 'A1'; // include header row
var END_CELL = 'B11';
// Add the table slide and insert an empty table on it of
// the dimensions of the data range; fails if Sheet empty.
var tableSlide = deck.appendSlide(SlidesApp.PredefinedLayout.BLANK);
var sheetValues = spreadsheet.getSheets()[0].getRange(
START_CELL + ':' + END_CELL).getValues();
var table = tableSlide.insertTable(sheetValues.length, sheetValues[0].length);
// Populate the table with spreadsheet data.
for (var i = 0; i < sheetValues.length; i++) {
for (var j = 0; j < sheetValues[0].length; j++) {
table.getCell(i, j).getText().setText(String(sheetValues[i][j]));
}
}
// Add a chart slide and insert the chart on it.
var chartSlide = deck.appendSlide(SlidesApp.PredefinedLayout.BLANK);
chartSlide.insertSheetsChart(chart);
// Return the presentation object for later use.
return deck;
}
/**
* Runs a BigQuery query, adds data and a chart in a Sheet,
* and adds the data and chart to a new slide presentation.
*/
function createBigQueryPresentation() {
var spreadsheet = runQuery();
Logger.log('Results spreadsheet created: %s', spreadsheet.getUrl());
var chart = createColumnChart(spreadsheet);
var deck = createSlidePresentation(spreadsheet, chart);
Logger.log('Results slide deck created: %s', deck.getUrl());
}
Bu codelab'de hiçbir rol oynamamak, bu codelab'de Apps Komut Dosyası manifest dosyası olan appsscript.json
şeklindedir. Kod düzenleyicinin tarayıcı sekmesine gidip üstteki menüden &View dosyasını göster'i seçerek erişebilirsiniz. İçerik aşağıdaki gibi görünmelidir:
scriptscript.json
{
"timeZone": "America/Los_Angeles",
"dependencies": {
"enabledAdvancedServices": [{
"userSymbol": "BigQuery",
"serviceId": "bigquery",
"version": "v2"
}]
},
"exceptionLogging": "STACKDRIVER"
}
Manifest dosyası, Apps Komut Dosyası'nın uygulamanız için hangi yürütme ortamının kullanılabileceğini bilmek üzere kullandığı sistem düzeyinde bir yapılandırma dosyasıdır. Bir manifest dosyasının içeriğini kapsamak bu codelab'in kapsamı dışındadır, ancak ne yaptığı hakkında bir fikir edinebilirsiniz.
Bu codelab'de ele alınan materyalleri daha ayrıntılı olarak incelemenize ve Google geliştirici araçlarına programatik olarak erişmenin diğer yollarını keşfetmenize yardımcı olacak ek kaynaklar aşağıda verilmiştir. Bu codelab'i depoyla senkronize etmeyi amaçlıyoruz.
Bu uygulama için kaynaklar
- Bu codelab bağlantısı: g.co/codelabs/bigquery-sheets-slides
- Kaynak kodu repo
- Geliştirici video (ve) blog yayını
- Google Cloud Next '18 oturumu
Belgeler
- Google Apps Komut Dosyası doküman sitesi
- Apps Komut Dosyası E-tablo hizmeti
- Apps Komut Dosyası Slaytlar hizmeti
- Apps Komut Dosyası BigQuery gelişmiş hizmeti
Benzer ve genel amaçlı videolar
- Başka bir Google (Uygulama) sırrı mı var? (Apps Komut Dosyası'nın tanıtım videosu)
- Google Haritalar'a e-tablodan mı erişiyorsunuz??? (video)
- Google Apps Komut Dosyası video kitaplığı
- Launchpad Online video serisi (önceki...)
- G Suite Dev Show video serisi
Benzer ve genel amaçlı haberler ile güncellemeler
- BigQuery için Google E-Tablolar veri bağlayıcısı (duyuru)
- Google BigQuery, Google Drive ile entegre olur (link1, link2)
- Google Geliştiriciler blogu
- Google Cloud Platform blogu
- Google Cloud Big Data & Machine Learning blogu
- Google Developers Twitter hesabı (@GoogleDevs)
- G Suite geliştirici blogu
- G Suite geliştiricileri Twitter (@googleworkspace)
- G Suite geliştiricileri için aylık bülten
Diğer codelab'ler
Giriş
- [REST API'leri] G Suite & Google API'leri (Drive API)
- [App Maker] App Maker'da Veritabanı web uygulaması oluşturma
Orta düzey
- [Apps Komut Dosyası] CLASP Apps Script komut satırı aracı
- [Apps Komut Dosyası] Gmail Eklentileri
- [Apps Komut Dosyası] Dokümanlar Eklentisi ve AMP; GCP Natural Language API
- [Apps Komut Dosyası] Hangouts Chat bot çerçevesi
- [REST API'leri] Özel raporlama aracı (E-Tablolar API)
- [REST API'leri] Github lisansı BigQuery analizcisi için özel slayt oluşturma aracı (Slaytlar + BigQuery API'leri)
Referans uygulamalar
- Markdown-Google Slaytlar dönüştürücü (Slaytlar API)
Aşağıda, çeşitli codelab sorgulamaları ve bu codelab'de oluşturduğumuz örneği geliştirip zenginleştirmenin farklı yolları açıklanmıştır. Bu liste kesinlikle tam kapsamlı değildir, ancak bir sonraki adımı atabileceğiniz fikirler bulmanıza yardımcı olacaktır.
- Uygulama. JavaScript veya Apps Komut Dosyası tarafından getirilen kısıtlamalarla sınırlanmak istemiyor musunuz? Bu uygulamayı Google BigQuery, E-Tablolar ve Slaytlar için REST API'leri kullanan favori programlama dilinize taşıyın.
- BigQuery. Shakespeare veri kümesi için farklı bir sorgu deneyin... İlginizi çekebilecek bir sorgu bulabilir. Orijinal Apps Komut Dosyası BigQuery örnek uygulamasında başka bir örnek sorgu bulunabilir.
- BigQuery. BigQuery'nin diğer herkese açık veri kümelerinden bazılarıyla denemeler yaparak sizin için daha anlamlı olabilecek bir veri kümesi bulabilirsiniz.
- BigQuery. Daha önce, Shakespeare''un eserlerine veya diğer herkese açık veri tablolarına karşı deneyebileceğiniz diğer sorgulardan bahsettik ve bu web sayfasının yanı sıra bu sayfayı tekrar paylaşmak istedik.
- E-Tablolar. Diğer grafik türleriyle deneme yapın.
- E-Tablolar &. Tabloların yerini değiştirin... Belki bir yerdeki e-tablolarda büyük bir veri kümesi görebilirsiniz. 2016'da, BigQuery ekibi bu özelliği kullanıma sunarak geliştiricilerin veri kaynağı olarak bir E-Tablo kullanmalarına olanak tanımıştır (daha fazla bilgi için bir ve iki blog yayınına bakın).
- Slaytlar. Oluşturulan sunuya, büyük veri analizinize bağlı resimler veya diğer öğeler gibi başka slaytlar ekleyin. Başlamanıza yardımcı olacak Slaytlar'daki yerleşik hizmet rehberini burada bulabilirsiniz.
- G Suite. Apps Komut Dosyası'ndan diğer G Suite veya Google yerleşik hizmetleri için kullanım bulun (ör. Gmail, Google Drive, Takvim, Dokümanlar, Haritalar, Analytics, YouTube vb. hizmetler. Daha fazla bilgi için hem yerleşik hem de gelişmiş hizmetlere yönelik referansa genel bakış bölümünü inceleyin.