Veri bilimcilerin büyük veri analizleri yapabileceği birçok araç vardır. Ancak sonuçta bu sonuçları yönetime açıklamanız gerekmez mi? Kağıt üzerindeki veya bir veritabanındaki çok sayıda rakam, önemli paydaşlara sunulamaz. Bu orta düzey Google Apps Komut Dosyası codelab'i, son aşamayı tamamlamanıza yardımcı olmak için Google'ın iki geliştirici platformu olan G Suite ve Google Cloud Platform'dan (GCP) yararlanır.
Google Cloud'un geliştirici araçları, derinlemesine veri analizi yapmanıza, ardından bu sonuçları alıp bir e-tabloya yerleştirmenize ve bu verilerle bir slayt sunusu oluşturmanıza olanak tanır. Böylece, sonuçların yönetime sunulması için daha uygun bir ortam sağlanır. Bu codelab'de, GCP'nin BigQuery API'si (Apps Komut Dosyası gelişmiş hizmeti olarak) ile Google E-Tablolar ve Google Slaytlar için yerleşik Apps Komut Dosyası hizmetleri açıklanmaktadır.
Motivasyon/tekniğin bilinen durumu
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 kaynaklı
- E-tablo verilerinden slayt oluşturma başlıklı geliştirici videosunda yer alan ve bu blog yayınında yayınlanan örnek uygulama
- Google Slides API codelab'inde yer alan örnek uygulama
Slaytlar API'si codelab'indeki örnek uygulamada BigQuery ve Slaytlar da yer alsa da bu codelab'in örnek uygulamasından birkaç açıdan farklıdır:
- Node.js uygulaması ve Apps Komut Dosyası uygulamamız
- Biz Apps Komut Dosyası hizmetlerini kullanırken REST API'lerini kullanır.
- Google Drive'ı kullanır ancak Google E-Tablolar'ı kullanmaz. Bu uygulama ise E-Tablolar'ı kullanır ancak Drive'ı kullanmaz.
Bu codelab'de, Google Cloud genelindeki özellikleri ve API'leri gerçek hayattaki kullanım alanlarına daha çok benzeyecek şekilde gösterirken teknolojilerin çoğunu tek bir uygulamada bir araya getirmek istedik. Bu laboratuvarın amacı, hayal gücünüzü kullanmaya teşvik etmek ve kuruluşunuz veya müşterilerinizin karşılaşabileceği zorlukların üstesinden gelmek için hem GCP hem de G Suite'ten yararlanmayı düşünmenizi sağlamaktır.
Neler öğreneceksiniz?
- Birden fazla Google (GCP ve G Suite) hizmetiyle Google Apps Komut Dosyası'nı kullanma
- Büyük veri analizi yapmak için Google BigQuery'yi kullanma
- Google E-Tablosu oluşturma ve bu dosyaya veri girme
- E-Tablolar'da yeni grafik oluşturma
- E-Tablolar'daki grafikleri ve verileri Google Slaytlar sunusuna aktarma
İhtiyacınız olanlar
- İnternet erişimi ve web tarayıcısı
- Google Hesabı (G Suite hesapları için yönetici onayı gerekebilir)
- Temel JavaScript becerileri
- Apps Komut Dosyası geliştirme bilgisi yardımcı olabilir ancak gerekli değildir.
Bu codelab'i/eğitimi nasıl kullanacaksınız?
G Suite geliştirici araçları ve API'leriyle ilgili deneyiminizi nasıl değerlendirirsiniz?
Apps Komut Dosyası ile ilgili deneyiminizi nasıl değerlendirirsiniz?
GCP geliştirici araçları ve API'leriyle ilgili deneyiminizi nasıl değerlendirirsiniz?
Bu codelab'in ne hakkında olduğunu öğrendiğinize göre tam olarak ne yapacaksınız?
- Mevcut bir Apps Komut Dosyası-BigQuery örneğini alıp çalıştırma
- Bu örnekten, BigQuery'ye nasıl sorgu göndereceğinizi ve sonuçlarını nasıl alacağınızı öğrenin.
- Google E-Tablosu oluşturma ve BigQuery'deki sonuçları bu tabloya doldurma
- Döndürülen ve E-Tablo'ya 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ı'nda E-Tablolar hizmetini kullanma
- Yeni bir slayt sunusu oluşturmak için Slaytlar hizmetini kullanma
- Tüm yeni slayt desteleri için otomatik olarak oluşturulan varsayılan başlık slaytına başlık ve alt başlık ekleme
- Veri tablosu içeren yeni bir slayt oluşturun ve E-Tablo'nun veri hücrelerini bu slayta aktarın.
- Yeni bir slayt daha ekleyin ve e-tablo grafiğini bu slayda ekleyin.
Apps Komut Dosyası, BigQuery, E-Tablolar ve Slaytlar hakkında bazı temel bilgilerle başlayalım.
Google Apps Komut Dosyası ve BigQuery
Google Apps Komut Dosyası, Google REST API'lerin kullanımına kıyasla daha yüksek 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 yapabilirsiniz. Apps Komut Dosyası için kullanılan komut satırı dağıtım aracı
clasp
'i kullanıyorsanız yerel olarak da geliştirme işlemleri gerçekleştirebilirsiniz. - JavaScript'in, G Suite'e ve başka Google hizmetlerine veya harici hizmetlere erişmek (Apps Komut Dosyası,
URLfetch
ya daJdbc
hizmetleri üzerinden) için özelleştirilen bir sürümünde kodlama yapabilirsiniz. - Yetkilendirme kodu yazmanız zorunlu değildir. Apps Komut Dosyası bu işlemi sizin için yapar.
- Uygulamanızı barındırmamayı tercih edebilirsiniz. Uygulamanız, buluttaki Google sunucularında barındırılır ve çalışır.
NOT: Apps Komut Dosyası'nı öğretmek bu codelab'in kapsamı dışındadır. Bu konuda size yardımcı olacak birçok online kaynak bulunmaktadır. Resmi belgelerde hızlı başlangıç kılavuzlarının bulunduğu bir genel bakış bölümü, eğitimler ve videolar da yer almaktadır. Son olarak, bu codelab'e başlamadan önce tamamlanması gereken Apps Komut Dosyası'na giriş codelab'ini unutmayın.
Apps Komut Dosyası, diğer Google teknolojileriyle arayüz oluşturmak için iki yöntemden yararlanır:
- yerleşik/doğal hizmet
- gelişmiş hizmet
Yerleşik hizmet, G Suite veya Google ürün verilerine ya da diğer faydalı yardımcı program yöntemlerine erişmek için kullanabileceğiniz üst düzey yöntemler sunar. Gelişmiş hizmet, yalnızca G Suite veya Google REST API için ince 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ştirilmiş olması gerekir.
Daha kolay kullanılabilmesi ve gelişmiş hizmetlere göre daha ağır işleri yapabilmesi nedeniyle, mümkünse geliştiriciler yerleşik hizmeti tercih etmelidir. Ancak bazı Google API'lerinin yerleşik hizmetleri yoktur. Bu nedenle bazı durumlarda tek seçenek, gelişmiş hizmeti kullanmak olabilir. Google BigQuery bu duruma örnek olarak gösterilebilir. Yerleşik hizmet sunulmaz ancak BigQuery gelişmiş hizmeti mevcuttur. (Hizmet sunulmamasından iyidir, değil mi?) BigQuery'yi yeni kullanmaya başladıysanız bu hizmetin, çok büyük veri topluluklarında (ör. birkaç terabaytlık) basit (veya karmaşık) sorgular gerçekleştirmenize olanak tanıyan bir GCP hizmeti olduğunu bilmeniz gerekir. Bu hizmetle saniyeler içinde sonuç alabilirsiniz.
Apps Komut Dosyası'ndan Google E-Tablolar ve Slaytlar'a erişme
BigQuery'den farklı olarak hem Google E-Tablolar hem de Slaytlar, yerleşik hizmetlerin yanı sıra gelişmiş hizmetler de sunar. Gelişmiş hizmetler yalnızca API'de bulunan özelliklere erişmek için kullanılır. Koda geçmeden önce hem yerleşik E-Tablolar hem de Slaytlar hizmetleriyle ilgili dokümanları inceleyin. Elbette gelişmiş hizmetlerle ilgili dokümanlar da vardır. E-Tablolar ve Slaytlar ile ilgili dokümanları burada bulabilirsiniz.
Giriş
İlk görevimiz, bu codelab'in büyük bir kısmını oluşturuyor. Bu bölümü bitirdiğinizde codelab'in neredeyse yarısını tamamlamış olacaksınız. Birkaç alt bölüme ayrılmış olan bu bölümde şunları 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 grupları mevcuttur ve yeni projeleri oluşturma şekliniz, kullandığınız sürüme göre değişebilir. Yalnızca Gmail hesabınızı kullanıyorsanız ve proje geliştirme konusunda yeniyseniz ilk projenizi oluşturabileceğiniz bir düğmeyle birlikte boş bir ekran görürsünüz:
b) Aksi takdirde, tüm projelerinizi ve sol üstte büyük bir +Yeni düğmesini görebilirsiniz. Bu durumda düğmeyi tıklayın.
c) Yukarıdakilerden hiçbiri geçerli değilse ekranınız aşağıdaki gibi görünebilir. Bu durumda sol üst köşede hamburger menü simgesini bulun ve +Yeni komut dosyası'nı seçin.
d) Komut satırını tercih edenler için. Aracınız clasp
. Özellikle clasp create
komutunu çalıştıracaksınız.
e) Yeni bir komut dosyası projesi oluşturmanın son yolu, kısayol bağlantısı olan https://script.google.com/create adresine gitmektir.
- Yeni bir projeyi başlatmak için hangi tekniği kullandığınızdan bağımsız olarak, Apps Komut Dosyası kod düzenleyicisine yönlendirilirsiniz. Bu ekran aşağıdaki gibi görünür:
- Dosya > Kaydet'i tıklayın ve projenize bir ad verin.
- Ardından, BigQuery sorgularını çalıştırmak için bir Google Cloud Console projesi oluşturmanız gerekir.
- Yeni bir proje oluşturun, projeye bir ad verin, bir 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österilir. Projeyi açmak için Proje Oluştur: <Proje Adı> girişini tıklayın.
- Sol üstteki menü simgesini
tıklayın ve API'ler ve Hizmetler > Kimlik Bilgileri'ne gidin. OAuth izin ekranı sekmesini tıklayın (doğrudan bağlantı).
- Uygulama adı alanına "Big Data Codelab" yazın ve alttaki Kaydet düğmesini tıklayın.
- Menüyü genişletmek için sağ üstteki üç nokta simgesini
tıklayın ve Proje ayarları 'nı(doğrudan bağlantı) seçin.
- Proje numarası altında listelenen değeri kopyalayın. (Codelab'de daha sonra kullanacağımız ayrı bir Ürün Kimliği alanı vardır.)
- Apps Komut Dosyası Düzenleyicisi'ne geri dönüp Kaynaklar > Cloud Platform projesi'ni tıklayın.
- Proje numarasını metin kutusuna girin ve Projeyi Ayarla'yı tıklayın. İstendiğinde Onayla'yı tıklayın.
- İşlem tamamlandığında iletişim kutusunu kapatmak için Kapat düğmesini tıklayın.
- Yeni bir proje oluşturduğunuza göre BigQuery gelişmiş hizmetini etkinleştirmeniz gerekiyor. Bu nedenle, Kaynaklar -> Gelişmiş Google Hizmetleri'ni aşağı çekin ve BigQuery API'nin bitini açın.
- En alttaki notta, "Bu hizmetler "Google Cloud Platform API Kontrol Paneli"nde de etkinleştirilmelidir" ifadesi yer alıyor. Bu nedenle, geliştirici konsolunu veya kısaca "devconsole"u açan başka bir tarayıcı sekmesine yönlendiren bağlantıyı tıklayın.
- Geliştirici konsolunda üst kısımdaki +API'leri ve Hizmetleri Etkinleştir düğmesini tıklayın, "bigquery" araması yapın, BigQuery API'yi (BigQuery Data Transfer API değil) seçin ve etkinleştir'i tıklayarak API'yi etkinleştirin. 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..." gibi bir not görebilirsiniz ancak şimdilik bu konuda endişelenmeyin. Apps Komut Dosyası bu adımı sizin için halleder. - Kod düzenleyici tarayıcı sekmenize geri döndüğünüzde Gelişmiş Google Hizmetleri menüsünde kalırsınız. İletişim kutusunu kapatmak için Tamam'ı tıklayın. Bu işlem sizi kod düzenleyicide bırakır. En üstteki proje adını tıklayın ve projeye dilediğiniz adı verin. Örneğin, "BigQuery demo" veya benzeri bir ad kullanabilirsiniz. Biz projemize "son aşama" adını verdik.
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ırma
- Aşağıdaki kutuda yer alan kodu kopyalayıp kod düzenleyicideki tüm içeriğin ü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 yeni oluşturduğunuz dosyayı kaydedin ancak Code.gs
olan adını bq-sheets-slides.js
olarak değiştirin. Bu kod ne işe yarar? BigQuery'yi sorguladığını ve sonuçları yeni bir Google E-Tablosuna yazdığını zaten biliyorsunuz. Peki bu sorgunun işlevi nedir? Bu bilgiyi runQuery()
sayfasının üst kısmında 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, Shakespeare'in eserleri (BigQuery'nin herkese açık veri kümesinin bir parçasıdır) içinde arama yapar ve eserlerin tümünde en sık kullanılmış olan 10 kelimeyi, kullanım sayısına göre sıralayarak gösterir. 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.
- Bu özelliği denemeye neredeyse hazırız. Bu kod snippet'inin üst kısmında göreceğiniz gibi, geçerli bir proje kimliği gereklidir. Bu nedenle, sizinkini uygulama koduna eklememiz gerekir. Bu kodu almak için geliştirici konsolu sayfasının bulunduğu tarayıcı penceresine veya sekmesine geri dönün. (Açık bırakmanızı söylemiştik, hatırlıyor musunuz?)
- Google Hesabı avatarınızın solunda, en üstte açılır menü seçici (
) bulunur. Bu seçiciyi 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
PROJECT_ID
değişkeninibq-sheets-slides.js
dosyasının üst kısmında geliştirici konsolundan aldığınız değere ayarlayın. NOT: Menü seçicisi hareketsiz ve çalışamaz hale gelirse sayfayı yeniden yükleyin. if
ifadesi, proje kimliği kullanılmadığı zaman uygulamada daha fazla ilerleme kaydedilmemesi amacıyla eklenir. Kendi kodunuzu ekledikten sonra dosyayı kaydedin ve menü çubuğuna gidip Çalıştır > İşlevi çalıştır > runQuery'yi seçerek kodunuzu çalıştırın. İzinleri incele iletişim kutusunu tıklayın. Bu uygulama doğrulanmadı. Aşağıda, sonraki birkaç adımı gösteren animasyonlu bir GIF (başka bir uygulama için) yer almaktadır:- İzinlerin incelenmesini istediğinizde 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 belirleyin, aşağı kaydırın ve OAuth2 uygulama yetkilendirme ekranına ulaşmak için "<PROJE ADINIZ> (güvenli değil) sayfasına git"i tıklayın. (Bu ekranın neden sizinle aşağıdaki OAuth2 yetkilendirme iletişim kutusu arasında yer aldığı hakkında bilgi edinmek için doğrulama süreci hakkında daha fazla bilgi edinin.)
NOT: Uygulamayı yetkilendirdikten sonra bu işlemi her yürütmede tekrarlamanız gerekmez. Söz konusu iletişim kutusunu, bu eğitimin ilerleyen aşamalarındaki 3. göreve gelene kadar bir daha görmezsiniz. Burada, Google Slaytlar sunularını oluşturmak ve yönetmek için kullanıcı izni istenir. - OAuth2 iletişim penceresinde İzin ver'i tıkladığınızda komut dosyası çalışmaya başlar ve üst kısımda pastel sarı bir iletişim kutusu görürsünüz. Bu işlem oldukça hızlı bir şekilde gerçekleştiğinden, işlemin gerçekleştiğini veya tamamlandığını fark etmeyebilirsiniz.
- Bu iletişim kutusu tamamlandığında kaybolur. İletişim kutusunu görmüyorsanız işlem tamamlanmış demektir. Google Drive'ınıza (
drive.google.com
) gidip "Most common words in all of Shakespeare's works " (Shakespeare'in eserlerinde en sık kullanılan kelimeler) başlıklı veyaQUERY_NAME
değişkenine atadığınız ada sahip olan yeni Google E-Tablosu'nu bulun: - E-tabloyu açın. E-tabloda en sık kullanılan 10 kelime, kullanım sayısına göre çoktan aza doğru sıralanacak şekilde satırlarda gösterilir:
1. görev özeti
Ne olduğunu anlayın. Shakespeare'in tüm eserlerini sorgulayan bir kod çalıştırdınız. Sorgulanan verilerin miktarı ÇOK yüksek olmasa da yazarın tüm oyunlarındaki kelimeleri kendi başınıza incelemenin, kelimelerin sayısını tutmanın ve bunları kullanım sıklığına göre çoktan aza doğru sıralamanın pek de kolay bir görev olduğu söylenemez. Bu görevi sizin için tamamlaması amacıyla BigQuery'yi kullanmakla kalmayıp Google E-Tablolar için Apps Komut Dosyası'ndaki yerleşik hizmetten de yararlandınız. Bu hizmet, elinizdeki verileri kolayca kullanılabilecek şekilde düzenledi.
Yukarıya 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'in GitHub deposundaki github.com/googlecodelabs/bigquery-sheets-slides adresindeki step1
klasöründe de bulabilirsiniz. Bu kod, BigQuery gelişmiş hizmetler sayfasındaki orijinal örnekten esinlenmiştir. Bu örnekte, Shakespeare'in 10 veya daha fazla karakterli en popüler kelimelerini bulmak için biraz farklı bir sorgu çalıştırılır. Bu örneği GitHub kod deposunda da görebilirsiniz.
Shakespeare'in eserleri veya diğer herkese açık veri tabloları üzerinde deneyebileceğiniz başka sorgularla ilgileniyorsanız bu web sayfasının yanı sıra bunu da inceleyin. Hangi sorguyu kullanırsanız kullanın, sorguyu Apps Komut Dosyası'nda çalıştırmadan önce her zaman BigQuery konsolunda test edebilirsiniz. BigQuery'nin kullanıcı arayüzü, geliştiriciler tarafından bigquery.cloud.google.com adresinde kullanılabilir. Örneğin, BigQuery kullanıcı arayüzünü kullanarak sorgumuzun nasıl göründüğünü aşağıda görebilirsiniz:
Yukarıdaki adımlarda Apps Komut Dosyası'nın kod düzenleyicisi kullanılmış olsa da komut satırı üzerinden yerel olarak da geliştirme yapabilirsiniz. Dilerseniz bq-sheets-slides.js
adlı bir komut dosyası oluşturun, yukarıdaki kodu bu dosyaya yapıştırın ve ardından clasp push
komutuyla Google'a yükleyin. (Daha önce kaçırdıysanız clasp
bağlantısını ve nasıl kullanılacağını tekrar hatırlatırız.)
runQuery()
işlevinin amacı, BigQuery ile iletişim kurup sonuçlarını E-Tablolar'a göndermektir. Şimdi verilerle bir grafik oluşturmamız gerekiyor. Bunu yapmak için E-Tablolar'ın newChart()
yöntemini kullanan createColumnChart()
adında yeni bir işlev oluşturalım.
- Grafik oluşturma. Aşağıda
createColumnChart()
gösterilen gövdeyirunQuery()
etiketinden hemen sonrabq-sheets-slides.js
ekleyin. Verilerin bulunduğu sayfayı alıp tüm verileri içeren bir sütunsal grafik isteğinde bulunur. İlk satırda veriler yerine sütun başlıkları bulunduğundan 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-tablo döndürülür. Yukarıdaki örnekte
createColumnChart()
için e-tablo nesnesi gerekir. Bu nedenle,runQuery()
'ıspreadsheet
nesnesini döndürecek şekilde güncelleyerekcreateColumnChart()
'a iletebiliriz. Google E-Tablosu'nun oluşturulmasını kaydettikten sonraspreadsheet
nesnesinirunQuery()
'nin sonunda, günlük satırının hemen ardından döndürün:
Logger.log('Results spreadsheet created: %s', spreadsheet.getUrl());
// NEW: Return the spreadsheet object for later use.
return spreadsheet;
}
- Araba kullanma
createBigQueryPresentation()
işlevi. BigQuery ve grafik oluşturma işlevini mantıksal olarak ayırmak önemli ölçüde işinize yarar. Şimdi hemrunQuery()
hem decreateColumnChart()
işlevini çağırarak uygulamayı çalıştıracak bircreateBigQueryPresentation()
işlevi oluşturalım. Eklediğiniz kod aşağıdaki gibi görünmelidir:
/**
* Runs a BigQuery query, adds data and a chart in a Sheet.
*/
function createBigQueryPresentation() {
var spreadsheet = runQuery();
createColumnChart(spreadsheet);
}
- Kodu daha fazla yeniden kullanılabilir hale getirin. Yukarıda, e-tablo nesnesini döndürerek ve çalışma işlevini oluşturarak iki önemli adımı tamamladınız. İş arkadaşınızın, URL kaydedilmeden
runQuery()
işlevini tekrar kullanmak istediğini varsayalım.runQuery()
işlevini genel kullanıma daha uygun hale getirmek için bu günlük satırını taşımamız gerekiyor. Günlük satırını taşıyabileceğiniz en uygun yer neresidir? YanıtınızcreateBigQueryPresentation()
ise doğru tahmin ettiniz. 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şikliklerle (PROJECT_ID
hariç) bq-sheets-slides.js
artık şu şekilde görünmelidir (ve GitHub deposunun step2
klasöründe de bulunabilir):
// 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, kod düzenleyicinin üst kısmına gidin ve runQuery()
yerine createBigQueryPresentation()
'ı çalıştırın. İşlevi çalıştırdıktan sonra başka bir Google E-Tablosu alırsınız ancak bu sefer e-tabloda, verilerin yanında bir grafik de yer alır:
Codelab'in son bölümünde, yeni bir Google Slaytlar sunusu oluşturma, başlık slaytındaki başlığı ve alt başlığı doldurma, ardından biri her veri hücresi, diğeri ise grafik için olmak üzere 2 yeni slayt ekleme konuları ele alınmaktadır.
- Slayt destesi oluşturma Slayt kümesindeki tüm çalışmalar,
createSlidePresentation()
işlevinde gerçekleşir. Bu işlevi,createColumnChart()
işlevinden hemen sonrabq-sheets-slides.js
dosyasına ekleyeceğiz. Öncelikle yeni bir slayt kümesi oluşturun, ardından tüm yeni sunularla alınan varsayılan başlık slaytına bir başlık ve alt başlık ekleyin.
/**
* 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()
kodu için sonraki adım, hücredeki verileri Google E-Tablosu'ndan yeni slayt kümesine aktarmaktır. Bu kod snippet'ini işlevinize 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çin son adım, başka bir slayt ekleyip grafiği e-tablodan içe aktararakPresentation
nesnesini döndürmektir. İşleve son olarak aşağıdaki snippet'i 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 tamamlandığına göre, imzasını tekrar inceleyin. Evet,
createSlidePresentation()
için hem e-tablo hem grafik nesnesi gerekir.runQuery()
işlevini zatenSpreadsheet
nesnesini döndürecek şekilde düzenlemiştik. Şimdiyse grafik (EmbeddedChart
) nesnesini döndürmesi içincreateColumnChart()
işlevinde de benzer bir değişiklik yapmamız gerekiyor. Bu işlemi gerçekleştirmek için uygulamanıza dönün vecreateColumnChart()
kodunun sonuna son bir satır daha ekleyin:createColumnChart()
// NEW: Return chart object for later use
return chart;
}
- Güncelle'yi
createBigQueryPresentation()
tıklayın.createColumnChart()
işlevi grafiği döndürdüğünden bu grafiği bir değişkene kaydetmemiz ve ardından hem e-tabloyu hem de grafiğicreateSlidePresentation()
işlevine aktarmamız gerekir. Yeni oluşturulan e-tablonun URL'sini kaydettiğimiz için yeni slayt sunusunun URL'sini de kaydedelim.createBigQueryPresentation()
öğenizi şu şekilde görünecek ş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()
'ı kaydedip tekrar çalıştırın. Ancak bu işlem yürütülmeden önce uygulamanızın artık Google Slaytlar sunularınızı görüntülemek ve yönetmek için kullanıcınızdan bir grup izin daha alması gerektiğini unutmayın. Bu izni verdiğinizde uygulama eskisi gibi çalışır.- Artık oluşturulan e-tabloya ek olarak aşağıda gösterilen şekilde 3 slayt (başlık, veri tablosu, veri grafiği) içeren yeni bir Slaytlar sunusu da alırsınız:
Tebrikler! Artık Google Cloud'un her iki tarafını da kullanan bir uygulama oluşturdunuz. Bu uygulama, herkese açık veri kümelerinden birini sorgulayan bir Google BigQuery isteği gerçekleştirir, sonuçları depolamak için yeni bir Google E-Tablosu oluşturur, yeni alınan verilere dayalı bir grafik ekler ve son olarak sonuçların yanı sıra e-tablodaki grafiği içeren bir Google Slaytlar sunusu oluşturur.
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, kendi projelerinizde kullanmak üzere özelleştirmeniz için size ilham vermesini umuyoruz. Bu codelab'in sonunda, bu örnek uygulamayı nasıl daha da geliştirebileceğinizle ilgili bazı önerilerde bulunacağız.
Son görevdeki yukarıda belirtilen değişiklikleri yaptıktan sonra (PROJECT_ID
hariç) bq-sheets-slides.js
şu şekilde görünmelidir (Ayrıca GitHub deposundaki final
klasöründe de bulunur):
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 rol oynamayan "ikinci dosya", Apps Komut Dosyası manifest dosyası olan appsscript.json
'dır. Kod düzenleyici tarayıcı sekmesine gidip üstteki menüden Görünüm > Manifest dosyasını göster'i seçerek bu dosyaya erişebilirsiniz. İçerikler aşağıdaki gibi görünmelidir:
appsscript.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ılacağını bilmek üzere kullandığı sistem düzeyinde bir yapılandırma dosyasıdır. Manifest dosyasının içeriği bu codelab'in kapsamı dışındadır ancak ne işe yaradığı hakkında fikir edinebilirsiniz.
Bu codelab'de ele alınan materyalleri daha yakından incelemenize ve Google geliştirici araçlarına programatik şekilde erişmenin diğer yöntemlerini keşfetmenize yardımcı olacak ek kaynaklar aşağıda verilmiştir. Bu codelab'i depoyla senkronize tutmayı hedefliyoruz.
Bu uygulamayla ilgili kaynaklar
- Bu codelab bağlantısı: g.co/codelabs/bigquery-sheets-slides
- Kaynak kodu repo
- Geliştirici videosu ve blog yayını
- Google Cloud NEXT '18 oturum
Belgeler
- Google Apps Komut Dosyası belgelerinin yer aldığı site
- 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 (Apps) gizli anahtarı mı? (Apps Komut Dosyası'nın tanıtım videosu)
- Google Haritalar'a e-tablolardan erişme (video)
- Google Apps Komut Dosyası video kitaplığı
- Launchpad Online video serisi (önceki sürüm)
- G Suite Geliştirici Şovu 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'nin Google Drive ile entegrasyonu (link1, link2)
- Google Developers blogu
- Google Cloud Platform blogu
- Google Cloud Büyük Veri ve Makine Öğrenimi blogu
- Google Developers Twitter hesabı (@GoogleDevs)
- G Suite developers blogu
- G Suite geliştiricileri Twitter hesabı (@googleworkspace)
- G Suite geliştiricileri aylık bülteni
Diğer Codelab'ler
Giriş
- [REST API'leri] G Suite ve Google API'leri (Drive API)
- [App Maker] App Maker'da veritabanı web uygulaması oluşturma
Orta düzey
- [Apps Komut Dosyası] CLASP Apps Komut Dosyası komut satırı aracı
- [Apps Komut Dosyası] Gmail Eklentileri
- [Apps Komut Dosyası] Docs eklentisi ve GCP Natural Language API
- [Apps Script] Hangouts Chat bot çerçevesi
- [REST API'ler] Özel raporlama aracı (Sheets API)
- [REST API'leri] Github lisansı BigQuery analizörü için özel slayt oluşturucu (Slaytlar + BigQuery API'leri)
Referans uygulamalar
- Markdown'dan Google Slaytlar'a dönüştürücü (Slides API)
Aşağıda, bu codelab'de oluşturduğumuz örneği geliştirebileceğiniz veya artırabileceğiniz çeşitli "kodlama görevleri" yer almaktadır. Bu liste kesinlikle kapsamlı olmasa da bir sonraki adımı nereye atabileceğiniz konusunda size ilham verecek bazı fikirler sunar.
- Uygulama. JavaScript kullanmaktan veya Apps Komut Dosyası'nın getirdiği kısıtlamalardan etkilenmek 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 sorguyla deneme yapın. Belki de sizi ilgilendiren bir sorgu bulabilirsiniz. Başka bir örnek sorguyu orijinal Apps Komut Dosyası BigQuery örnek uygulamasında bulabilirsiniz.
- BigQuery. BigQuery'nin diğer herkese açık veri kümelerinden bazılarını deneyin. Belki sizin için daha anlamlı olabilecek bir veri kümesi bulabilirsiniz.
- BigQuery. Daha önce, Shakespeare'in eserleri veya diğer herkese açık veri tabloları için deneyebileceğiniz diğer sorgulardan bahsetmiştik. Bu web sayfasını ve bunu tekrar paylaşmak istiyoruz.
- E-Tablolar. Diğer grafik türleriyle denemeler yapın.
- E-Tablolar ve BigQuery. Belki de bir e-tabloda büyük bir veri kümeniz vardır. 2016'da BigQuery ekibi, geliştiricilerin veri kaynağı olarak E-Tablolar'ı kullanmasına olanak tanıyan özelliği kullanıma sundu (daha fazla bilgi için bir ve iki numaralı blog yayınını inceleyin).
- Slaytlar. Oluşturulan sunuya, büyük veri analizinizle ilişkili resimler veya diğer öğeler gibi başka slaytlar ekleyin. Başlamak için Slaytlar'daki yerleşik hizmetle ilgili kılavuzu inceleyin.
- G Suite. Apps Komut Dosyası'ndan diğer G Suite veya Google yerleşik hizmetleri için kullanım alanları bulma (ör. Gmail, Google Drive, Takvim, Dokümanlar, Haritalar, Analytics, YouTube vb. ile diğer gelişmiş hizmetler. Hem yerleşik hem de gelişmiş hizmetler hakkında daha fazla bilgi için referans genel bakış bölümüne bakın.