Rube MCP를 통한 Google BigQuery 자동화
Rube MCP(Composio)를 사용하여 Metabase 통합을 통해 SQL 쿼리 실행, 데이터베이스 스키마 탐색, 데이터셋 분석을 수행합니다.
툴킷 문서: composio.dev/toolkits/googlebigquery
사전 요구 사항
- Rube MCP가 연결되어 있어야 함 (
RUBE_SEARCH_TOOLS사용 가능) RUBE_MANAGE_CONNECTIONS를 통해 툴킷metabase로 활성 연결- BigQuery 데이터 소스에 연결된 Metabase 인스턴스
- 항상 먼저
RUBE_SEARCH_TOOLS를 호출하여 현재 도구 스키마를 확인하세요.
설정
Rube MCP 가져오기: 클라이언트 설정에 MCP 서버로 https://rube.app/mcp를 추가하세요. API 키가 필요하지 않습니다. 엔드포인트만 추가하면 작동합니다.
RUBE_SEARCH_TOOLS가 응답하는지 확인하여 Rube MCP가 사용 가능한지 확인합니다.RUBE_MANAGE_CONNECTIONS를 툴킷metabase로 호출합니다.- 연결이 ACTIVE 상태가 아니면 반환된 인증 링크를 따라 설정을 완료합니다.
- 워크플로를 실행하기 전에 연결 상태가 ACTIVE로 표시되는지 확인합니다.
참고: BigQuery 데이터는 BigQuery를 데이터 소스로 연결하는 비즈니스 인텔리전스 도구인 Metabase를 통해 액세스됩니다. 아래 도구들은 Metabase API를 통해 쿼리를 실행하고 메타데이터를 검색합니다.
핵심 워크플로
1. 네이티브 SQL 쿼리 실행
METABASE_POST_API_DATASET을 type native와 함께 사용하여 BigQuery 데이터베이스에 대해 원시 SQL 쿼리를 실행합니다.
도구: METABASE_POST_API_DATASET
매개변수:
- database (필수): Metabase 데이터베이스 ID (정수)
- type (필수): SQL 쿼리의 경우 "native"
- native (필수): "query" 문자열을 포함하는 객체
- query: 원시 SQL 문자열 (예: "SELECT * FROM users LIMIT 10")
- template_tags: 매개변수화된 쿼리 변수 (선택 사항)
- constraints: { "max-results": 1000 } (선택 사항)
2. 구조화된 MBQL 쿼리 실행
METABASE_POST_API_DATASET을 type query와 함께 사용하여 집계 및 필터링 기능이 내장된 Metabase Query Language 쿼리를 실행합니다.
도구: METABASE_POST_API_DATASET
매개변수:
- database (필수): Metabase 데이터베이스 ID
- type (필수): MBQL의 경우 "query"
- query (필수): 다음을 포함하는 객체:
- source-table: 테이블 ID (정수)
- aggregation: 예: [["count"]] 또는 [["sum", ["field", 5, null]]]
- breakout: 그룹화 필드
- filter: 필터 조건
- limit: 최대 행 수
- order-by: 정렬 필드
3. 쿼리 메타데이터 가져오기
METABASE_POST_API_DATASET_QUERY_METADATA를 사용하여 쿼리 가능한 데이터베이스, 테이블 및 필드에 대한 메타데이터를 검색합니다.
도구: METABASE_POST_API_DATASET_QUERY_METADATA
매개변수:
- database (필수): Metabase 데이터베이스 ID
- type (필수): "query" 또는 "native"
- query (필수): 쿼리 객체 (예: {"source-table": 1})
4. 쿼리를 네이티브 SQL로 변환
METABASE_POST_API_DATASET_NATIVE를 사용하여 MBQL 쿼리를 해당 네이티브 SQL 표현으로 변환합니다.
도구: METABASE_POST_API_DATASET_NATIVE
매개변수:
- database (필수): Metabase 데이터베이스 ID
- type (필수): "native"
- native (필수): "query" 및 선택적 "template_tags"를 포함하는 객체
- parameters: 쿼리 매개변수 값 (선택 사항)
5. 사용 가능한 데이터베이스 나열
METABASE_GET_API_DATABASE를 사용하여 Metabase에 구성된 모든 데이터베이스 연결을 검색합니다.
도구: METABASE_GET_API_DATABASE
설명: Metabase에 구성된 모든 Database 인스턴스 목록을 검색합니다.
참고: 이 도구의 전체 스키마를 보려면 RUBE_SEARCH_TOOLS를 호출하세요.
6. 데이터베이스 스키마 메타데이터 가져오기
METABASE_GET_API_DATABASE_ID_METADATA를 사용하여 특정 데이터베이스의 전체 테이블 및 필드 정보를 검색합니다.
도구: METABASE_GET_API_DATABASE_ID_METADATA
설명: 특정 데이터베이스의 모든 테이블 및 필드를 포함한
전체 메타데이터를 검색합니다.
참고: 이 도구의 전체 스키마를 보려면 RUBE_SEARCH_TOOLS를 호출하세요.
일반적인 패턴
- 발견 후 쿼리:
METABASE_GET_API_DATABASE로 데이터베이스 ID를 찾은 다음,METABASE_GET_API_DATABASE_ID_METADATA로 테이블과 필드를 탐색하고,METABASE_POST_API_DATASET으로 쿼리를 실행합니다. - SQL 우선 접근 방식:
METABASE_POST_API_DATASET를type: "native"와 함께 사용하고 표준 SQL 쿼리를 작성하여 최대 유연성을 확보합니다. - 매개변수화된 쿼리: 네이티브 쿼리에서
template_tags를 사용하여 안전하게 매개변수화합니다(예:SELECT * FROM users WHERE id = {{user_id}}). - 스키마 탐색: 복잡한 쿼리를 작성하기 전에
METABASE_POST_API_DATASET_QUERY_METADATA를 사용하여 테이블 구조를 이해합니다. - 매개변수 값 가져오기:
METABASE_POST_API_DATASET_PARAMETER_VALUES를 사용하여 필터 드롭다운의 가능한 값을 검색합니다.
알려진 함정
database매개변수는 Metabase 내부의 정수 ID이며, BigQuery 프로젝트 또는 데이터셋 이름이 아닙니다. 먼저METABASE_GET_API_DATABASE를 사용하여 유효한 데이터베이스 ID를 찾으세요.- MBQL 쿼리의
source-table도 Metabase 내부 정수이며, BigQuery 테이블 이름이 아닙니다. 메타데이터 도구를 통해 테이블 ID를 알아내세요. - 네이티브 SQL 쿼리는 BigQuery SQL 방언(표준 SQL)을 사용합니다. 구문이 BigQuery와 호환되는지 확인하세요.
- constraints의
max-results기본값은 반환되는 행 수를 제한할 수 있습니다. 큰 결과 집합의 경우 명시적으로 설정하세요. METABASE_POST_API_DATASET의 응답은data아래에 중첩된 결과를 포함합니다. 구조가 깊게 중첩될 수 있으므로 주의해서 파싱하세요.- MBQL
aggregation,breakout,filter배열에 사용되는 Metabase 필드 ID는 메타데이터 응답에서 얻은 정수여야 합니다.
빠른 참조
| 작업 | 도구 | 주요 매개변수 |
|---|---|---|
| SQL 쿼리 실행 | METABASE_POST_API_DATASET | database, type: "native", native.query |
| MBQL 쿼리 실행 | METABASE_POST_API_DATASET | database, type: "query", query |
| 쿼리 메타데이터 가져오기 | METABASE_POST_API_DATASET_QUERY_METADATA | database, type, query |
| SQL로 변환 | METABASE_POST_API_DATASET_NATIVE | database, type, native |
| 매개변수 값 가져오기 | METABASE_POST_API_DATASET_PARAMETER_VALUES | parameter, field_ids |
| 데이터베이스 나열 | METABASE_GET_API_DATABASE | (RUBE_SEARCH_TOOLS를 통해 전체 스키마 확인) |
| 데이터베이스 메타데이터 가져오기 | METABASE_GET_API_DATABASE_ID_METADATA | (RUBE_SEARCH_TOOLS를 통해 전체 스키마 확인) |
Composio 제공