skip to Main Content
1544-6561|070-4842-6588 koandi.com@gmail.com

편집자 주 : Google Cloud Platform의 광범위한 데이터 분석 및 시각화 도구를 사용하는 방법에 영감을 얻으시겠습니까? Google Cloud 파트너 인 Revevol은 App Engine, Cloud Storage, Cloud Dataflow, BigQuery 및 Data Studio의 조합을 사용하여 직원들이 G Suite를 사용하는 방식을 더 잘 이해할 수 있도록 일련의 대시 보드를 만들었습니다. Revevol이 어떻게했는지 알아 보려면 계속 읽으십시오.

여기에서 Revevol , 우리는 400K 이상의 사용자를 마이그레이션하고 우리의 변화 관리 프로그램과 80K 사람들을 훈련, 기업의 수십 G의 스위트 룸을 배치했습니다. 몇 년 동안 G Suite를 사용한 후, 30k 직원 인 글로벌 산업 회사 인 Maxim의 가장 큰 고객 중 한 명이 직원들이 실제로 G Suite를 사용하는 방법에 대해 더 많이 알고 싶었습니다. 협업을 최적화하기 위해 서비스 제공 및 변경 관리에 대한 데이터 중심 접근 방식이 필요했습니다.

그러나 복잡한 조직 구조에서 “조직에서 G Suite는 어떻게 사용되고 있습니까?” “사람들이 고민하고있는 곳은 어디입니까?”와 “어떻게 개선합니까?”와 같은 질문은 G Suite 관리 콘솔을 사용하여 거의 대답 할 수 없었습니다. 그들은 우리에게 활동 로그 및 메타 데이터를 기반으로 사용자의 G 제품군 사용에 대한 포괄적 인 그림을 제공했습니다.

오랜 기간 GCP 매장 이었던 AODocs 와 같은 프로젝트와 제품 모두를 위해 우리는 자연스럽게 GCP를 사용하여 솔루션을 구축했습니다. 고객은 위치, 국가, 지역, 사업 단위 및 시간별로 필터링 된 사용 및 활동 데이터를 표시하고 추가 분석을 위해 데이터를 스프레드 시트로 내보낼 수 있기를 원했습니다. G Suite Directory 및 G Suite 사용 데이터를 합치고 다음과 같은 필터링 가능한 BI (Business Intelligence) 대시 보드를 통해 표시했습니다.

1.png

높은 수준에서 아키텍처는 다음과 같습니다. Google 은 App Engine을 사용하여 G Suite API에서 데이터를 추출 하고이를 Google Cloud Storage에 저장 하고 Cloud Dataflow로 변환 한 다음 분석을 위해 BigQuery 에 저장합니다 . 그런 다음 Data Studio 를 사용 하여 시각화합니다. 이 구성 요소 각각을 살펴 보겠습니다.

데이터 추출

이와 같은 솔루션을 구축하는 첫 번째 단계는 데이터를 추출하는 것입니다. 이렇게하려면 두 가지 방법이 있습니다. REST API 및 BigQuery 내보내기 기능이 있습니다.

REST API

G Suite는 Google 드라이브 및 활동 로그에 저장된 문서와 같은 서비스 메타 데이터를 쿼리 할 수있는 수많은 REST API를 제공합니다. 이 경우 App Engine 위에 추출 모듈을 개발했습니다. App Engine은 완전히 서버가 없으며 구성을 조정하거나 용량을 조정하거나로드 균형 조정을 처리하지 않고도 위아래로 확장 할 수 있으므로 위대합니다.

데이터를 추출 할 API와 현재 상태 및 활동 로그의 두 가지 추출 방법이 있습니다. 스냅 샷은 디렉토리 API, 드라이브 API 또는 그룹 설정 API에서 추출됩니다. 디렉토리 추출은 BigQuery에 사용자 목록을 저장합니다. Google은 드라이브에 대해 개별 최종 사용자가 아닌 애플리케이션에 속한 특수 유형의 Google 계정 인 서비스 계정을 가장하여 각 사용자가 소유 한 모든 문서를 요청합니다. 애플리케이션은 사용자가 직접 참여하지 않도록 Google API를 호출하는 서비스 계정의 신원을 가정합니다. G Suite와 GCP간에 ID 통합이 가능해지기 때문에이 방법을 사용하면 편리합니다.

Google Cloud Tasks를 사용하여 API에 요청합니다 . 각 사용자는 작업 대기열에서 고유 한 작업을 가져 와서 한 번에 최대 100 개의 작업을 시작합니다. 모든 API 응답은 Cloud Storage에 푸시됩니다. 사용자가 매우 많은 문서를 소유하고있어 10 분 제한 내에 모두 페이지를 넘길 수 없다면 사용자의 작업은 자신을 작업 대기열에 다시 추가합니다. 추출에 실패하면 대기열로 다시 이동합니다. 추출의 상태는 각 작업이 성공하면 Memcache에서 감소하는 카운터로 유지됩니다. 카운터가 0이되면 작업이 완료되고 백업 / 변환 작업이 트리거됩니다.

주의를 기울 였다면 아마 ” 팀 드라이브는 어떨까요?” 라고 궁금해 할 것입니다 – 거기에 저장된 문서에서 데이터를 추출하려면 어떻게해야합니까? 좋은 질문입니다. 관리자가 도메인의 모든 팀 드라이브 목록을 얻을 수는 있지만 이러한 팀 드라이브 내에 저장된 문서를 나열 할 수는 없으므로 다소 복잡합니다. 이것이 우리가하는 방법입니다. 먼저 도메인의 모든 팀 드라이브를 나열합니다. 그런 다음 각 사용자를 하나씩 찾아 가서 각 팀 드라이브에 속한 사용자를 찾고 서비스 계정으로 가장 할 수있게하고 마지막으로 팀 드라이브에 파일을 나열합니다.

Google Cloud Tasks의 강력 함과 유연성 덕분에 서버를 걱정하지 않고도 매우 쉽게 병렬 및 조정 된 작업 대기열을 구현하고 10 분 이내에 35k 직원의 모든 드라이브 메타 데이터 콘텐츠를 추출 할 수있었습니다. 실제로 병목 현상은 드라이브 API 할당량입니다.

액티비티 로그를 추출하는 것은 관리자 보고서 API에서 나온 것처럼 더 간단하므로 모든 사용자를 가장 할 필요가 없습니다. 시계열 데이터로 매일 App Engine의 cronjob에 의해 트리거되고 작업 대기열에 다시 의존합니다.

BigQuery 내보내기

다른 G Suite 제품과 달리 G Suite Enterprise 고객은 Gmail 일일 로그를 직접 BigQuery로 내보낼 수 있습니다 . 이것은 G Suite와 GCP 간의 긴밀한 통합의 예입니다. 다른 G Suite 서비스에 대해서도 유사한 내보내기 기능이 존재한다면 우리는 코드 한 줄 (물론 SQL 쿼리 제외)을 작성하지 않고도 API를 완전히 무시하고 전체 솔루션을 구현할 것입니다.

데이터 변환 및 저장

REST API에서 내 보낸 데이터는 이제 Cloud JSON의 Cloud Storage에 있으며 백업 및 보관을 위해 보관합니다. 그러나 분석을 위해 BigQuery로 복사해야합니다. 각 추출이 끝나면 Cloud 기능 을 사용하여 구독 한 Cloud Pub / Sub 항목 으로 메시지가 전송됩니다 . Cloud 함수는 BigQuery 및 Cloud Storage API를 사용하여 데이터를로드합니다.

// Loads data from a Google Cloud Storage file into the table
const [job] = await bigquery
  .dataset(datasetId)
  .table(tableId)
  .load(storage.bucket(bucketName).file(filename), metadata);
// load() waits for the job to finish
console.log(`Job ${job.id} completed.`);

BigQuery에 도달하기 전에 데이터를 변환하려는 경우 Cloud Dataflow를 배치 모드로 사용할 수 있습니다. 그렇지 않으면 BigQuery 쿼리를 사용하여 원시 테이블에서 변환 된 테이블을 만들 수 있습니다. 귀하의 결정은 두 가지 요인에 의해 인도 될 것입니다 :

  • 비용 : BigQuery 및 Dataflow 가격 모델은 매우 다릅니다. 변형으로 대형 테이블을 자주 스캔하는 경우 BigQuery 비용이 신속하게 합산됩니다.
  • 유지 관리 오버 헤드 : 일반적으로 BigQuery의 웹 UI에 저장되어있는 길고 복잡하지 않은 버전없는 SQL 쿼리와 비교하여 Cloud Dataflow와 명확하고 읽기 쉬운 코드를 유지하는 것이 더 쉽습니다.

현재는 프로토 타입을 사용하는 것이 더 빠르기 때문에 BigQuery에서 변형 작업을 수행하고 있지만 더 큰 인스턴스를 곧 Cloud Dataflow로 옮길 계획입니다. 또한 Cloud Dataprep을 실험하여 코딩없이 데이터 흐름 변환 파이프 라인을 설명 할 수는 있지만 아직 시도하지는 않았습니다.

데이터 시각화

Data Studio는 Google 마케팅 플랫폼 (GMP) 의 일부인 무료 BI 제품으로 , Google Cloud와 더 큰 Google 생태계 간의 긴밀한 통합의 좋은 예입니다. Data Studio 대시 보드는 Google 문서 및 스프레드 시트 (사용자, 그룹 및 도메인 권한)와 동일한 액세스 패턴을 따르고 실시간 공동 작업 기능이 동일하며 Google 계정 이있는 모든 사용자가 사용할 수 있습니다 .

처음부터 Google 고객은 Google 드라이브, Gmail, 행 아웃 미팅 등을위한 G Suite 서비스 당 하나의 대시 보드를 원했습니다. Data Studio는 BigQuery 테이블을 기반으로 데이터 소스를 생성 할 수있는 BigQuery에 대한 커넥터를 제공합니다. 데이터 소스를 생성 한 사람은 기본 데이터 집합에 액세스해야하는 유일한 사람이며 G Suite 자격 증명을 사용하면 구성 할 필요없이 백그라운드에서 인증을 수행 할 수 있습니다.

대시 보드 당 하나의 데이터 소스를 생성하고 Data Studio UI를 통해 차트와 KPI를 추가했습니다. 따라서 프런트 엔드 코드 또는 SQL을 작성하지 않고도 매끄러운 전문 대시 보드에서 BigQuery 테이블을 기반으로 KPI 및 차트를 표시하고 필터를 추가 할 수 있습니다.

Data Studio는 마술처럼 느껴질 수 있지만 염두에 두어야 할 몇 가지 사항이 있습니다. 예를 들면 :

  • AVG_DISTINCT와 같은 추가 집계 기능을 사용하면 위치별로 필터링 된 평균 회의 참석자 수를 표시 할 수 있습니다.
  • 간단한 G Suite / Drive 기반 액세스 제어가 유스 케이스에서 작동하지 않는 경우 BigQuery의 행 수준 액세스를 사용하거나 사용자 고유의 커뮤니티 커넥터를 구축하여 맞춤 솔루션을 구현해야 할 수도 있습니다.
  • 재사용 가능한 템플릿 이 존재하지만, 선언적 (YAML과 유사한) 소스는 대시 보드 관리 및 유지 보수를 산업화하는 데 적합합니다.
  • 차트를 작성하는 데 사용 된 기본 데이터를 쉽게 찾을 수있는 방법은 없습니다.
  • BigQuery 데이터 소스의 보안 컨트롤을 사용하면 약간의 협업이 어려워 질 수 있습니다. 소유자가 아닌 사용자도 쿼리를 볼 수 있으면 좋을 것입니다.

Data Studio의 향후 릴리스에서 이러한 기능 중 일부를 볼 수 있기를 기대합니다. 즉, Data Studio는 경쟁력이있는 유료 서비스를 사용하기 전에 오랫동안 사용할 수있는 간단하면서도 강력한 BI 제품입니다.

데이터 내보내기

고객이 기억할 수 있듯이 고객은 추후 분석을 위해 기본 차트 데이터를 스프레드 시트로 내보내는 방법을 요청했습니다. BigQuery 용 새로운 Google 스프레드 시트 데이터 커넥터를 사용하여 G Suite와 GCP 간의 통합을 다시 한번 활용했습니다 . 사용법은 매우 간단합니다. Google 스프레드 시트 UI에서 프로젝트 및 스키마를 선택하고 쿼리를 삽입 한 다음 (매개 변수화 가능) 실행하고 실행하십시오!

2.png

또한 Google 스프레드 시트는 스프레드 시트 최종 사용자가 데이터를 새로 고치는 데 필요한 새로 고침 버튼을 제공합니다.

시각화 및 내보내기 사용 사례에서 GCP 및 G Suite 서비스가 너무 잘 통합되지 않은 경우 복잡한 API를 만들어 BigQuery에서 데이터를 노출하고 인증을 처리하며 Google에서와 마찬가지로 유지해야합니다. 쿼리 또는 스키마가 변경되었습니다. 이 솔루션으로 우리는이 작업을 수행 할 필요가 없었습니다.

결론

우리 작업의 정면은 세 영역으로 나뉘어졌습니다.

  • API에서 데이터 추출. 그 자체로는이 프로세스는 비즈니스 가치를 추가하지 않으며 Gmail에서와 마찬가지로 G 스위트가 모든 서비스의 메타 데이터와 로그를 BigQuery로 직접 내 보낸 경우 완전히 무시할 수 있습니다.
  • 데이터를 비즈니스 관점에서 가치있게 변환합니다. 이것이 G Suite 공동 작업에 대한 전문성이 실제로 빛을 발하는 곳입니다.
  • 변환 된 데이터를 쉽게 소비 할 수 있도록 대시 보드를 작성하고 많은 비즈니스 가치를 추가합니다.

특히이 목록에는 서비스를 함께 통합하거나 로깅 인프라 설정, 데이터베이스 용량 관리, 복제 및 백업, 네트워킹 및 VM 설정과 같은 DevOps 작업 수행이 빠져 있습니다. 이를 통해 매우 소규모의 권한있는 개발자 팀으로 신속하게 업무 인텔리전스 솔루션을 제공 할 수 있었으며 GCP에 대한 전반적인 인상을 일관되게 유지할 수있었습니다. 서버 및 서비스에 집중하는 대신 비즈니스 가치를 추가하는 데 집중할 수있었습니다. 통합 코드 작성. 이 솔루션을 어떻게 구축했는지 또는 Revevol 및 제품에 대해 자세히 알고 싶다면 stanislas.marion@revevol.eu에서 나를 찾을 수 있습니다.

Back To Top