looker-studio-bigquery

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Looker Studio BigQuery Integration

Looker Studio 与 BigQuery 集成

When to use this skill

何时使用此技能

  • 분석 대시보드 생성: BigQuery 데이터를 시각화하여 비즈니스 인사이트 도출
  • 실시간 리포팅: 자동 새로고침되는 대시보드 구축
  • 성능 최적화: 대용량 데이터셋의 쿼리 비용 및 로딩 시간 최적화
  • 데이터 파이프라인: 스케줄된 쿼리로 ETL 프로세스 자동화
  • 팀 협업: 공유 가능한 인터랙티브 대시보드 구축
  • 创建分析仪表板:将BigQuery数据可视化以获取业务洞察
  • 实时报告:构建可自动刷新的仪表板
  • 性能优化:优化大规模数据集的查询成本与加载时间
  • 数据管道:通过计划查询实现ETL流程自动化
  • 团队协作:构建可共享的交互式仪表板

Instructions

操作步骤

Step 1: GCP BigQuery 환경 준비

步骤1:准备GCP BigQuery环境

프로젝트 생성 및 활성화
Google Cloud Console에서 새 프로젝트를 생성하고 BigQuery API를 활성화합니다.
bash
undefined
创建并激活项目
在Google Cloud Console中创建新项目并启用BigQuery API。
bash
undefined

gcloud CLI를 사용한 프로젝트 생성

使用gcloud CLI创建项目

gcloud projects create my-analytics-project gcloud config set project my-analytics-project gcloud services enable bigquery.googleapis.com

**데이터셋 및 테이블 생성**

```sql
-- 데이터셋 생성
CREATE SCHEMA `my-project.analytics_dataset`
  OPTIONS(
    description="분석용 데이터셋",
    location="US"
  );

-- 예제 테이블 생성 (GA4 데이터)
CREATE TABLE `my-project.analytics_dataset.events` (
  event_date DATE,
  event_name STRING,
  user_id INT64,
  event_value FLOAT64,
  event_timestamp TIMESTAMP,
  geo_country STRING,
  device_category STRING
);
IAM 권한 설정
Looker Studio에서 BigQuery에 접근할 수 있도록 IAM 권한을 부여합니다:
역할설명
BigQuery Data Viewer
테이블 조회 권한
BigQuery User
쿼리 실행 권한
BigQuery Job User
작업 실행 권한
gcloud projects create my-analytics-project gcloud config set project my-analytics-project gcloud services enable bigquery.googleapis.com

**创建数据集和表**

```sql
-- 创建数据集
CREATE SCHEMA `my-project.analytics_dataset`
  OPTIONS(
    description="分析用数据集",
    location="US"
  );

-- 创建示例表(GA4数据)
CREATE TABLE `my-project.analytics_dataset.events` (
  event_date DATE,
  event_name STRING,
  user_id INT64,
  event_value FLOAT64,
  event_timestamp TIMESTAMP,
  geo_country STRING,
  device_category STRING
);
设置IAM权限
为Looker Studio设置可访问BigQuery的IAM权限:
角色说明
BigQuery Data Viewer
表格查询权限
BigQuery User
查询执行权限
BigQuery Job User
任务执行权限

Step 2: Looker Studio에서 BigQuery 연결하기

步骤2:在Looker Studio中连接BigQuery

네이티브 BigQuery 커넥터 사용 (권장)
  1. Looker Studio 홈페이지에서 + 만들기데이터 소스 클릭
  2. "BigQuery"로 검색하여 Google BigQuery 커넥터 선택
  3. Google 계정으로 인증
  4. 프로젝트, 데이터셋, 테이블 선택
  5. 연결을 클릭하여 데이터 소스 생성
맞춤 SQL 쿼리 방식
복잡한 데이터 변환이 필요할 때 SQL을 직접 작성합니다:
sql
SELECT
  event_date,
  event_name,
  COUNT(DISTINCT user_id) as unique_users,
  SUM(event_value) as total_revenue,
  AVG(event_value) as avg_revenue_per_event
FROM `my-project.analytics_dataset.events`
WHERE event_date >= DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY)
GROUP BY event_date, event_name
ORDER BY event_date DESC
장점:
  • 복잡한 데이터 변환을 SQL에서 처리
  • BigQuery에서 데이터를 미리 집계하여 쿼리 비용 절감
  • 매번 모든 데이터를 로드하지 않아 성능 향상
여러 테이블 조인 방식
sql
SELECT
  e.event_date,
  e.event_name,
  u.user_country,
  u.user_tier,
  COUNT(DISTINCT e.user_id) as unique_users,
  SUM(e.event_value) as revenue
FROM `my-project.analytics_dataset.events` e
LEFT JOIN `my-project.analytics_dataset.users` u
  ON e.user_id = u.user_id
WHERE e.event_date >= DATE_SUB(CURRENT_DATE(), INTERVAL 90 DAY)
GROUP BY e.event_date, e.event_name, u.user_country, u.user_tier
使用原生BigQuery连接器(推荐)
  1. 在Looker Studio首页点击 + 创建数据源
  2. 搜索“BigQuery”并选择Google BigQuery连接器
  3. 使用Google账号完成认证
  4. 选择项目、数据集和表
  5. 点击 连接 创建数据源
自定义SQL查询方式
当需要复杂数据转换时,可直接编写SQL:
sql
SELECT
  event_date,
  event_name,
  COUNT(DISTINCT user_id) as unique_users,
  SUM(event_value) as total_revenue,
  AVG(event_value) as avg_revenue_per_event
FROM `my-project.analytics_dataset.events`
WHERE event_date >= DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY)
GROUP BY event_date, event_name
ORDER BY event_date DESC
优势:
  • 在SQL中处理复杂数据转换
  • 在BigQuery中预先聚合数据以降低查询成本
  • 无需每次加载全部数据,提升性能
多表关联方式
sql
SELECT
  e.event_date,
  e.event_name,
  u.user_country,
  u.user_tier,
  COUNT(DISTINCT e.user_id) as unique_users,
  SUM(e.event_value) as revenue
FROM `my-project.analytics_dataset.events` e
LEFT JOIN `my-project.analytics_dataset.users` u
  ON e.user_id = u.user_id
WHERE e.event_date >= DATE_SUB(CURRENT_DATE(), INTERVAL 90 DAY)
GROUP BY e.event_date, e.event_name, u.user_country, u.user_tier

Step 3: 스케줄된 쿼리로 성능 최적화

步骤3:通过计划查询优化性能

라이브 쿼리 대신 스케줄된 쿼리를 사용하여 주기적으로 데이터를 미리 계산합니다:
sql
-- BigQuery에서 매일 집계 데이터를 계산하여 저장
CREATE OR REPLACE TABLE `my-project.analytics_dataset.daily_summary` AS
SELECT
  CURRENT_DATE() as report_date,
  event_name,
  user_country,
  COUNT(DISTINCT user_id) as daily_users,
  SUM(event_value) as daily_revenue,
  AVG(event_value) as avg_event_value,
  MAX(event_timestamp) as last_event_time
FROM `my-project.analytics_dataset.events`
WHERE event_date = CURRENT_DATE() - 1
GROUP BY event_name, user_country
BigQuery UI에서 스케줄된 쿼리로 설정:
  • 매일 자동 실행
  • 결과를 새로운 테이블에 저장
  • Looker Studio는 미리 계산된 테이블에 연결
장점:
  • Looker Studio 로딩 시간 단축 (50-80%)
  • BigQuery 비용 절감 (스캔 데이터 감소)
  • 대시보드 새로고침 속도 향상
替代实时查询,使用计划查询定期预先计算数据:
sql
-- 在BigQuery中每日计算聚合数据并存储
CREATE OR REPLACE TABLE `my-project.analytics_dataset.daily_summary` AS
SELECT
  CURRENT_DATE() as report_date,
  event_name,
  user_country,
  COUNT(DISTINCT user_id) as daily_users,
  SUM(event_value) as daily_revenue,
  AVG(event_value) as avg_event_value,
  MAX(event_timestamp) as last_event_time
FROM `my-project.analytics_dataset.events`
WHERE event_date = CURRENT_DATE() - 1
GROUP BY event_name, user_country
在BigQuery UI中设置为计划查询
  • 每日自动执行
  • 将结果存储到新表中
  • Looker Studio连接到预先计算好的表
优势:
  • 缩短Looker Studio加载时间(50-80%)
  • 降低BigQuery成本(减少扫描数据量)
  • 提升仪表板刷新速度

Step 4: 대시보드 레이아웃 설계

步骤4:设计仪表板布局

F-패턴 레이아웃
사용자의 자연스러운 읽기 흐름을 따르는 F-패턴을 사용합니다:
┌─────────────────────────────────────┐
│ 헤더: 로고 | 필터/날짜선택기        │  ← 사용자가 먼저 본다
├─────────────────────────────────────┤
│ KPI 1  │ KPI 2  │ KPI 3  │ KPI 4   │  ← 핵심 지표 (3-4개)
├─────────────────────────────────────┤
│                                     │
│ 주요 차트 (시계열 또는 비교)        │  ← 깊이 있는 인사이트
│                                     │
├─────────────────────────────────────┤
│ 구체적 데이터 테이블                │  ← 상세 분석
│ (드릴다운 가능)                     │
├─────────────────────────────────────┤
│ 추가 인사이트 / 맵 / 히트맵          │
└─────────────────────────────────────┘
대시보드 구성 요소
요소목적예시
헤더대시보드 제목, 로고, 필터 배치"2026년 Q1 판매 분석"
KPI 타일주요 지표 한눈에 표시총 매출, 전월 대비 성장률, 활성 사용자
추세 차트시간 경과에 따른 변화라인 차트로 일일/주간 매출 추이
비교 차트카테고리 간 비교막대 차트로 지역/상품별 판매량 비교
분포 차트데이터 분포 시각화히트맵, 산점도, 버블 차트
상세 테이블정확한 수치 제공조건부 서식으로 임계값 강조
지리적 데이터국가/지역별 매출 분포
실제 예시: 전자상거래 대시보드
┌──────────────────────────────────────────────────┐
│ 📊 2026년 1월 판매 분석 | 🔽 국가 선택 | 📅 날짜  │
├──────────────────────────────────────────────────┤
│ 총 매출: $125,000  │ 주문수: 3,200   │ 전환율: 3.5% │
├──────────────────────────────────────────────────┤
│         일일 매출 추이 (라인 차트)                │
│    ↗ 상승 추세: +15% vs 지난달                   │
├──────────────────────────────────────────────────┤
│ 카테고리별 판매    │  상위 제품 Top 10            │
│ (막대 차트)        │  (테이블, 정렬 가능)        │
├──────────────────────────────────────────────────┤
│        지역별 매출 분포 (맵)                      │
└──────────────────────────────────────────────────┘
F型布局
遵循用户自然阅读流的F型布局:
┌─────────────────────────────────────┐
│ 头部:Logo | 筛选器/日期选择器        │  ← 用户首先关注
├─────────────────────────────────────┤
│ KPI指标1  │ KPI指标2  │ KPI指标3  │ KPI指标4   │  ← 核心指标(3-4个)
├─────────────────────────────────────┤
│                                     │
│ 主要图表(时间序列或对比)        │  ← 深度洞察
│                                     │
├─────────────────────────────────────┤
│ 详细数据表格                │  ← 精细化分析
│ (支持钻取)                     │
├─────────────────────────────────────┤
│ 补充洞察 / 地图 / 热力图          │
└─────────────────────────────────────┘
仪表板组成元素
元素用途示例
头部放置仪表板标题、Logo、筛选器"2026年Q1销售分析"
KPI卡片直观展示核心指标总销售额、同比增长率、活跃用户数
趋势图表展示数据随时间的变化折线图呈现日/周销售额趋势
对比图表对比不同分类的数据柱状图对比地区/产品销量
分布图表可视化数据分布热力图、散点图、气泡图
详细表格提供精确数值用条件格式突出阈值
地图展示地理数据国家/地区销售额分布
实际示例:电商仪表板
┌──────────────────────────────────────────────────┐
│ 📊 2026年1月销售分析 | 🔽 国家选择 | 📅 日期  │
├──────────────────────────────────────────────────┤
│ 总销售额: $125,000  │ 订单数: 3,200   │ 转化率: 3.5% │
├──────────────────────────────────────────────────┤
│         日销售额趋势(折线图)                │
│    ↗ 上升趋势:较上月增长15%                   │
├──────────────────────────────────────────────────┤
│ 分类销量    │  热销产品Top 10            │
│ (柱状图)        │  (可排序表格)        │
├──────────────────────────────────────────────────┤
│        地区销售额分布(地图)                      │
└──────────────────────────────────────────────────┘

Step 5: 인터랙티브 필터 및 컨트롤

步骤5:添加交互式筛选器与控件

필터 종류
1. 날짜 범위 필터 (필수)
  • 캘린더로 특정 기간 선택
  • "지난 7일", "이번 달" 같은 사전 정의 옵션
  • 데이터셋과 연결하여 모든 차트에 자동 반영
2. 드롭다운 필터
예: 국가 선택 필터
- 모든 국가
- 한국
- 일본
- 미국
선택하면 해당 국가 데이터만 표시
3. 고급 필터 (SQL 기반)
sql
-- 매출액이 $10,000 이상인 고객만 표시
WHERE customer_revenue >= 10000
필터 구현 예시
sql
-- 1. 날짜 필터
event_date >= DATE_SUB(CURRENT_DATE(), INTERVAL @date_range_days DAY)

-- 2. 드롭다운 필터 (사용자 입력)
WHERE country = @selected_country

-- 3. 복합 필터
WHERE event_date >= @start_date
  AND event_date <= @end_date
  AND country IN (@country_list)
  AND revenue >= @min_revenue
筛选器类型
1. 日期范围筛选器(必填)
  • 通过日历选择特定时间段
  • 支持“过去7天”、“本月”等预设选项
  • 与数据集关联,自动应用到所有图表
2. 下拉筛选器
示例:国家选择筛选器
- 所有国家
- 韩国
- 日本
- 美国
选择后仅展示对应国家的数据
3. 高级筛选器(基于SQL)
sql
-- 仅展示销售额≥$10,000的客户
WHERE customer_revenue >= 10000
筛选器实现示例
sql
-- 1. 日期筛选器
event_date >= DATE_SUB(CURRENT_DATE(), INTERVAL @date_range_days DAY)

-- 2. 下拉筛选器(用户输入)
WHERE country = @selected_country

-- 3. 复合筛选器
WHERE event_date >= @start_date
  AND event_date <= @end_date
  AND country IN (@country_list)
  AND revenue >= @min_revenue

Step 6: 쿼리 성능 최적화

步骤6:优化查询性能

1. 파티션 키 사용
sql
-- ❌ 비효율적인 쿼리
SELECT * FROM events
WHERE DATE(event_timestamp) >= '2026-01-01'

-- ✅ 최적화된 쿼리 (파티션 사용)
SELECT * FROM events
WHERE event_date >= '2026-01-01'  -- 파티션 키 직접 사용
2. 데이터 추출 (Extract and Load)
매일 밤 Looker Studio 전용 테이블에 데이터를 추출합니다:
sql
-- 매일 자정에 실행되는 스케줄 쿼리
CREATE OR REPLACE TABLE `my-project.looker_studio_data.dashboard_snapshot` AS
SELECT
  event_date,
  event_name,
  country,
  device_category,
  COUNT(DISTINCT user_id) as users,
  SUM(event_value) as revenue,
  COUNT(*) as events
FROM `my-project.analytics_dataset.events`
WHERE event_date >= DATE_SUB(CURRENT_DATE(), INTERVAL 90 DAY)
GROUP BY event_date, event_name, country, device_category;
3. 캐싱 전략
  • Looker Studio 기본 캐싱: 자동으로 3시간 동안 캐시
  • BigQuery 캐싱: 동일한 쿼리는 이전 결과 재사용 (6시간)
  • 스케줄된 쿼리 활용: 야간에 미리 계산
4. 대시보드 복잡도 관리
  • 한 대시보드에 최대 20-25개 차트만 사용
  • 차트가 많으면 여러 탭(페이지)으로 분산
  • 상관없는 메트릭끼리 그룹화하지 않기
1. 使用分区键
sql
-- ❌ 低效查询
SELECT * FROM events
WHERE DATE(event_timestamp) >= '2026-01-01'

-- ✅ 优化查询(使用分区)
SELECT * FROM events
WHERE event_date >= '2026-01-01'  -- 直接使用分区键
2. 数据抽取(Extract and Load)
每日夜间将数据抽取到Looker Studio专用表:
sql
-- 每日零点执行的计划查询
CREATE OR REPLACE TABLE `my-project.looker_studio_data.dashboard_snapshot` AS
SELECT
  event_date,
  event_name,
  country,
  device_category,
  COUNT(DISTINCT user_id) as users,
  SUM(event_value) as revenue,
  COUNT(*) as events
FROM `my-project.analytics_dataset.events`
WHERE event_date >= DATE_SUB(CURRENT_DATE(), INTERVAL 90 DAY)
GROUP BY event_date, event_name, country, device_category;
3. 缓存策略
  • Looker Studio默认缓存:自动缓存3小时
  • BigQuery缓存:相同查询复用之前的结果(6小时)
  • 利用计划查询:夜间预先计算数据
4. 管理仪表板复杂度
  • 单个仪表板最多使用20-25个图表
  • 图表过多时拆分到多个标签页(页面)
  • 避免将无关指标分组展示

Step 7: Community Connector 개발 (고급)

步骤7:开发Community Connector(高级)

더 복잡한 요구사항이 있다면 Community Connector를 개발합니다:
javascript
// Community Connector 예시 (Apps Script)
function getConfig() {
  return {
    configParams: [
      {
        name: 'project_id',
        displayName: 'BigQuery Project ID',
        helpText: 'Your GCP Project ID',
        placeholder: 'my-project-id'
      },
      {
        name: 'dataset_id',
        displayName: 'Dataset ID'
      }
    ]
  };
}

function getData(request) {
  const projectId = request.configParams.project_id;
  const datasetId = request.configParams.dataset_id;

  // BigQuery에서 데이터 로드
  const bq = BigQuery.newDataset(projectId, datasetId);
  // ... 데이터 처리 로직

  return { rows: data };
}
Community Connector의 장점:
  • 중앙 집중식 청구 (서비스 계정 사용)
  • 커스텀 캐싱 로직
  • 사전 정의된 쿼리 템플릿
  • 사용자 설정 파라미터화
若有更复杂的需求,可开发Community Connector:
javascript
// Community Connector示例(Apps Script)
function getConfig() {
  return {
    configParams: [
      {
        name: 'project_id',
        displayName: 'BigQuery Project ID',
        helpText: 'Your GCP Project ID',
        placeholder: 'my-project-id'
      },
      {
        name: 'dataset_id',
        displayName: 'Dataset ID'
      }
    ]
  };
}

function getData(request) {
  const projectId = request.configParams.project_id;
  const datasetId = request.configParams.dataset_id;

  // 从BigQuery加载数据
  const bq = BigQuery.newDataset(projectId, datasetId);
  // ... 数据处理逻辑

  return { rows: data };
}
Community Connector优势:
  • 集中计费(使用服务账号)
  • 自定义缓存逻辑
  • 预设查询模板
  • 支持用户配置参数

Step 8: 보안 및 접근 제어

步骤8:安全与访问控制

BigQuery 수준의 보안
sql
-- 특정 사용자에게만 테이블 접근 권한 부여
GRANT `roles/bigquery.dataViewer`
ON TABLE `my-project.analytics_dataset.events`
TO "user@example.com";

-- 행 수준 보안 (Row-Level Security)
CREATE OR REPLACE ROW ACCESS POLICY rls_by_country
ON `my-project.analytics_dataset.events`
GRANT ('editor@company.com') TO ('KR'),
      ('viewer@company.com') TO ('US', 'JP');
Looker Studio 수준의 보안
  • 대시보드 공유 시 뷰어 권한 설정 (Viewer/Editor)
  • 특정 사용자/그룹에만 공유
  • 데이터 소스별 권한 관리
BigQuery层面的安全
sql
-- 仅授予特定用户表格访问权限
GRANT `roles/bigquery.dataViewer`
ON TABLE `my-project.analytics_dataset.events`
TO "user@example.com";

-- 行级安全(Row-Level Security)
CREATE OR REPLACE ROW ACCESS POLICY rls_by_country
ON `my-project.analytics_dataset.events`
GRANT ('editor@company.com') TO ('KR'),
      ('viewer@company.com') TO ('US', 'JP');
Looker Studio层面的安全
  • 共享仪表板时设置查看者权限(Viewer/Editor)
  • 仅共享给特定用户/组
  • 按数据源管理访问权限

Output format

输出格式

대시보드 설정 체크리스트

仪表板设置检查表

markdown
undefined
markdown
undefined

Dashboard Setup Checklist

Dashboard Setup Checklist

데이터 소스 설정

数据源设置

  • BigQuery 프로젝트/데이터셋 준비
  • IAM 권한 설정 완료
  • 스케줄된 쿼리 구성 (성능 최적화)
  • 데이터 소스 연결 테스트
  • 准备好BigQuery项目/数据集
  • 完成IAM权限设置
  • 配置计划查询(性能优化)
  • 测试数据源连接

대시보드 설계

仪表板设计

  • F-패턴 레이아웃 적용
  • KPI 타일 배치 (3-4개)
  • 주요 차트 추가 (추세/비교)
  • 상세 테이블 포함
  • 인터랙티브 필터 추가
  • 应用F型布局
  • 放置KPI卡片(3-4个)
  • 添加主要图表(趋势/对比)
  • 包含详细表格
  • 添加交互式筛选器

성능 최적화

性能优化

  • 파티션 키 활용 확인
  • 쿼리 비용 최적화
  • 캐싱 전략 적용
  • 차트 수 20-25개 이하 확인
  • 确认使用分区键
  • 优化查询成本
  • 应用缓存策略
  • 确认图表数量在20-25个以内

공유 및 보안

共享与安全

  • 접근 권한 설정
  • 데이터 보안 검토
  • 공유 링크 생성
undefined
  • 设置访问权限
  • 审查数据安全
  • 创建共享链接
undefined

Constraints

约束条件

필수 규칙 (MUST)

必须遵循的规则(MUST)

  1. 날짜 필터 필수: 모든 대시보드에 날짜 범위 필터 포함
  2. 파티션 사용: BigQuery 쿼리에서 파티션 키 직접 사용
  3. 권한 분리: 데이터 소스별 접근 권한 명확히 설정
  1. 必填日期筛选器:所有仪表板必须包含日期范围筛选器
  2. 使用分区:在BigQuery查询中直接使用分区键
  3. 权限分离:明确设置各数据源的访问权限

금지 사항 (MUST NOT)

禁止操作(MUST NOT)

  1. 과도한 차트: 한 대시보드에 25개 초과 차트 배치 금지
  2. **SELECT ***: 전체 컬럼 조회 대신 필요한 컬럼만 선택
  3. 라이브 쿼리 남용: 대용량 테이블에 직접 연결 지양
  1. 图表过多:单个仪表板禁止放置超过25个图表
  2. **SELECT ***:避免查询全量列,仅选择需要的列
  3. 滥用实时查询:避免直接连接大规模表格

Best practices

最佳实践

항목권장사항
데이터 새로고침스케줄된 쿼리 사용, 야간에 실행
대시보드 크기최대 25개 차트, 필요시 여러 페이지로 분산
필터 구성날짜 필터 필수, 3-5개 추가 필터로 제한
색상 팔레트회사 브랜드 3-4가지 색상만 사용
타이틀/레이블명확한 설명으로 직관성 확보
차트 선택KPI → 추세 → 비교 → 상세 순서로 배치
응답 속도평균 2-3초 이내 로딩 목표
비용 관리월 BigQuery 스캔량 5TB 이내
项目推荐方案
数据刷新使用计划查询,在夜间执行
仪表板规模最多25个图表,必要时分拆为多页面
筛选器配置必须包含日期筛选器,额外筛选器限制在3-5个
配色方案仅使用3-4种符合企业品牌的颜色
标题/标签使用清晰描述提升直观性
图表顺序按KPI→趋势→对比→详细的顺序排列
响应速度目标平均加载时间在2-3秒以内
成本管理每月BigQuery扫描数据量控制在5TB以内

References

参考资料

Metadata

元数据

버전

版本

  • 현재 버전: 1.0.0
  • 최종 업데이트: 2026-01-14
  • 호환 플랫폼: Claude, ChatGPT, Gemini
  • 当前版本:1.0.0
  • 最后更新:2026-01-14
  • 兼容平台:Claude, ChatGPT, Gemini

관련 스킬

相关技能

  • monitoring-observability: 데이터 수집 및 모니터링
  • database-schema-design: 데이터 모델링
  • monitoring-observability:数据采集与监控
  • database-schema-design:数据建模

태그

标签

#Looker-Studio
#BigQuery
#dashboard
#analytics
#visualization
#GCP
#Looker-Studio
#BigQuery
#dashboard
#analytics
#visualization
#GCP

Examples

示例

Example 1: 기본 대시보드 생성

示例1:创建基础仪表板

sql
-- 1. 일일 요약 테이블 생성
CREATE OR REPLACE TABLE `my-project.looker_data.daily_metrics` AS
SELECT
  event_date,
  COUNT(DISTINCT user_id) as dau,
  SUM(revenue) as total_revenue,
  COUNT(*) as total_events
FROM `my-project.analytics.events`
WHERE event_date >= DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY)
GROUP BY event_date;

-- 2. Looker Studio에서 이 테이블에 연결
-- 3. KPI 스코어카드 추가: DAU, 총 매출
-- 4. 라인 차트로 일일 추세 시각화
sql
-- 1. 创建每日汇总表
CREATE OR REPLACE TABLE `my-project.looker_data.daily_metrics` AS
SELECT
  event_date,
  COUNT(DISTINCT user_id) as dau,
  SUM(revenue) as total_revenue,
  COUNT(*) as total_events
FROM `my-project.analytics.events`
WHERE event_date >= DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY)
GROUP BY event_date;

-- 2. 在Looker Studio中连接此表
-- 3. 添加KPI计分卡:DAU、总销售额
-- 4. 用折线图可视化每日趋势

Example 2: 고급 분석 대시보드

示例2:创建高级分析仪表板

sql
-- 코호트 분석을 위한 데이터 준비
CREATE OR REPLACE TABLE `my-project.looker_data.cohort_analysis` AS
WITH user_cohort AS (
  SELECT
    user_id,
    DATE_TRUNC(MIN(event_date), WEEK) as cohort_week
  FROM `my-project.analytics.events`
  GROUP BY user_id
)
SELECT
  uc.cohort_week,
  DATE_DIFF(e.event_date, uc.cohort_week, WEEK) as week_number,
  COUNT(DISTINCT e.user_id) as active_users
FROM `my-project.analytics.events` e
JOIN user_cohort uc ON e.user_id = uc.user_id
GROUP BY cohort_week, week_number
ORDER BY cohort_week, week_number;
sql
-- 为群组分析准备数据
CREATE OR REPLACE TABLE `my-project.looker_data.cohort_analysis` AS
WITH user_cohort AS (
  SELECT
    user_id,
    DATE_TRUNC(MIN(event_date), WEEK) as cohort_week
  FROM `my-project.analytics.events`
  GROUP BY user_id
)
SELECT
  uc.cohort_week,
  DATE_DIFF(e.event_date, uc.cohort_week, WEEK) as week_number,
  COUNT(DISTINCT e.user_id) as active_users
FROM `my-project.analytics.events` e
JOIN user_cohort uc ON e.user_id = uc.user_id
GROUP BY cohort_week, week_number
ORDER BY cohort_week, week_number;