หากเครื่องมือเชื่อมต่อดึงข้อมูลจาก BigQuery คุณจะใช้ Looker Studio ได้ บริการขั้นสูงเพื่อเพิ่มประสิทธิภาพเครื่องมือเชื่อมต่อ แทนที่จะเรียกใช้ BigQuery API โดยตรง ให้คุณระบุการกําหนดค่าการค้นหา จากนั้น Looker Studio จะดึงข้อมูล และสคีมาให้คุณ
วิธีการทำงาน
เครื่องมือเชื่อมต่อชุมชนที่ใช้บริการขั้นสูงของ Looker Studio ทำงานคล้ายกับ หัวชาร์จไฟฟ้าปกติ
ความแตกต่างที่เห็นได้ชัดคือการตอบสนองที่คาดหวังจากการดำเนินการ
getSchema()
และ/หรือ getData()
ฟังก์ชัน แทนที่จะดึงข้อมูลและ
ที่ส่งคืนสคีมาและข้อมูล ฟังก์ชันเหล่านี้จะส่งคืนการกำหนดค่าการค้นหาได้
เมื่อแสดงผลการกำหนดค่าการค้นหา Looker Studio จะดึงข้อมูลโดยตรง
สคีมาและ/หรือข้อมูลตามการกำหนดค่าการค้นหาที่ระบุ
การพัฒนาเครื่องมือเชื่อมต่อ
เครื่องมือเชื่อมต่อชุมชนที่ใช้บริการขั้นสูงของ Looker Studio จะเหมือนกับ แบบปกติที่มีข้อยกเว้น 2 ประการ
การอ้างอิงไฟล์ Manifest
ในไฟล์ Manifest ให้ตั้งค่าพร็อพเพอร์ตี้ต่อไปนี้เป็น true
- สำหรับ
getSchema()
ให้ใช้พร็อพเพอร์ตี้dataStudio.advancedServices.schema
- สำหรับ
getData()
ให้ใช้พร็อพเพอร์ตี้dataStudio.advancedServices.data
ค่า true
บ่งชี้ว่าเครื่องมือเชื่อมต่อสำหรับฟังก์ชันที่เกี่ยวข้อง
จะแสดงผลการกำหนดค่าการค้นหาแทนการตอบกลับมาตรฐาน
หากต้องการกำหนดสคีมาของคุณเองโดยใช้การตอบกลับมาตรฐาน getSchema()
ให้ตั้งค่า
dataStudio.advancedServices.schema
ไปยัง false
ในไฟล์ Manifest หรือละเว้นข้อความนี้
จำเป็นต้องใช้เมื่อช่องทั้งหมดในสคีมาไม่สามารถแสดงได้ด้วย
การค้นหา BigQuery รายการเดียว เช่น เมื่อคุณสร้างเครื่องมือเชื่อมต่อหลายสคีมา
เนื่องจากการค้นหา BigQuery จะดำเนินการในนามของผู้ใช้ที่ได้รับอนุญาต คุณ
ต้องรวมขอบเขต OAuth ของ BigQuery ไว้ด้วย
("https://www.googleapis.com/auth/bigquery.readonly"
) ในไฟล์ Manifest เพื่อ
ส่งคำขอการให้สิทธิ์
ต่อไปนี้เป็นไฟล์ Manifest ของเครื่องมือเชื่อมต่อที่ใช้ข้อมูลเข้าสู่ระบบของผู้ใช้ที่ได้รับอนุญาตเพื่อ เชื่อมต่อกับ BigQuery:
{
"dataStudio": {
"name": "BigQuery Public Dataset Demo",
"logoUrl": "https://www.gstatic.com/images/branding/product/1x/data_connector_48dp.png",
"company": "Looker DevRel",
"companyUrl": "https://developers.google.com/looker-studio/",
"addOnUrl": "https://developers.google.com/looker-studio/",
"supportUrl": "https://developers.google.com/looker-studio/",
"description": "Use BigQuery public dataset with Looker Studio's Advanced Services.",
"advancedServices": {
"schema": true,
"data": true
}
},
"oauthScopes": ["https://www.googleapis.com/auth/bigquery.readonly"]
}
หากคุณใช้บัญชีบริการเพื่อเข้าถึง BigQuery ระบบจะดำเนินการต่อไปนี้
ไม่จำเป็นต้องมีขอบเขต OAuth bigquery.readonly
ในไฟล์ Manifest อย่างไรก็ตาม
ควรเพิ่มขอบเขตลงในรายการขอบเขตสำหรับบัญชีบริการ
ข้อมูลอ้างอิง getData
และ getSchema
เครื่องมือเชื่อมต่อที่ใช้บริการขั้นสูงของ Looker Studio จะแสดงออบเจ็กต์การกำหนดค่าการค้นหา
สำหรับ getSchema()
และ/หรือ getData()
ซึ่งขึ้นอยู่กับแหล่งข้อมูล
config อาจต้องการพร็อพเพอร์ตี้เพิ่มเติม
ตัวอย่างการใช้บริการ DataStudioApp เพื่อสร้าง ออบเจ็กต์การกำหนดค่า:
var bqTypes = DataStudioApp.createCommunityConnector().BigQueryParameterType;
var configuration = DataStudioApp.createCommunityConnector().newBigQueryConfig()
// BigQuery billing project's Id.
.setBillingProjectId('billingProjectId')
// The query that will be executed.
.setQuery('myQueryString')
// Set to `true` to use StandardSQL.
.setUseStandardSql(true)
// The accessToken used for service execution.
.setAccessToken('myAccessToken')
// Adding a `STRING` query parameter. Other supported types are `BOOL`,
// `FLOAT64`, and `INT64`.
.addQueryParameter('myUrlParameterName', bqTypes.STRING, 'myUrlParameterValue')
.build();
ตัวอย่างฟังก์ชัน getSchema()
และ getData()
var sqlString = "" +
"SELECT " +
" _TABLE_SUFFIX AS yyyymm, " +
" ROUND(SUM(IF(fcp.start < @fast_fcp, fcp.density, 0)), 4) AS fast_fcp, " +
" ROUND(SUM(IF(fcp.start >= 1000 AND fcp.start < 3000, fcp.density, 0)), 4) AS avg_fcp, " +
" ROUND(SUM(IF(fcp.start >= 3000, fcp.density, 0)), 4) AS slow_fcp " +
"FROM " +
" `chrome-ux-report.all.*`, " +
" UNNEST(first_contentful_paint.histogram.bin) AS fcp " +
"WHERE " +
" origin = @url " +
"GROUP BY " +
" yyyymm " +
"ORDER BY " +
" yyyymm ";
function getQueryConfig(request) {
var url = (request.configParams && request.configParams.url);
var projectId = (request.configParams && request.configParams.projectId);
var authToken = ScriptApp.getOAuthToken();
return DataStudioApp.createCommunityConnector().newBigQueryConfig()
.setAccessToken(authToken)
.setUseStandardSql(true)
.setBillingProjectId(projectId)
.setQuery(sqlString)
.addQueryParameter('url', bqTypes.STRING, url)
.addQueryParameter('fast_fcp', bqTypes.INT64, '' + 1000)
.build();
}
function getSchema(request) {
return getQueryConfig(request);
}
function getData(request) {
return getQueryConfig(request)
}