참고: 이 내용은 2021. 12. 14에 게시된 컨텐츠(Powered by Snowflake: How Connected Applications Work)에서 번역되었습니다.

최근에 제작된 연결된 애플리케이션 모델은 많은 소프트웨어 회사와 개발자의 관심을 받고 있습니다. 이 블로그 시리즈 1부에서 설명했듯이 연결된 애플리케이션은 코드와 데이터를 구분하는 SaaS 앱입니다. 이를 통해 앱 공급자는 고객이 자체적인 데이터 플랫폼에서 데이터를 관리하는 동안 애플리케이션 코드를 유지합니다. Snowflake에서 연결된 앱을 구축하면 고객과 SaaS 공급자 모두가 이점을 누릴 수 있습니다. 고객은 자신의 데이터에 대한 제어를 유지하고 SaaS 공급자는 Snowflake의 시장 출시 전략과 보다 잘 일치시킬 수 있습니다.

Snowflake 연결된 애플리케이션 작동 방법과 구축 방법을 자세히 살펴보겠습니다.

Snowflake 연결된 앱 작동 방법

연결된 앱의 작동 방법을 설명하기 위해 데이터 소스의 다양성을 기반으로 다음 광고 캠페인에서 타겟팅할 고객 세그먼트를 추천하는 마케팅 애플리케이션과 같은 SaaS 솔루션 개발자를 고려해보겠습니다. 그림 1에서 확인할 수 있듯이 애플리케이션은 고객의 관련 소스로부터 데이터를 수집합니다. 이를 필요에 따라 처리하고 자체적인 Snowflake 인스턴스에 데이터를 보관합니다. 그런 다음 애플리케이션은 예측 모델을 데이터에 적용하고 고객의 Snowflake 인스턴스 내에 있는 다른 테이블에 결과를 작성합니다.

그림 1: 일반적인 연결된 애플리케이션 데이터 흐름

연결된 앱을 위한 데이터 흐름은 사용 사례에 따라 달라질 수 있습니다. 예를 들어 고객의 Snowflake 인스턴스에 이미 애플리케이션에 필요한 모든 데이터가 포함되어 있어 추가적인 로딩이 필요하지 않을 수도 있습니다.

그림 2는 고객이 여러 명일 때의 데이터 흐름을 보여줍니다. 각 고객은 자신의 데이터를 자체적인 Snowflake 인스턴스에 보관하며 다중 테넌시가 필요하지 않습니다.

그림 2: 여러 고객이 포함된 일반적인 연결된 애플리케이션 데이터 흐름

반대로 샘플 애플리케이션은 관리되는 앱으로 구축되어 그림 3에서 확인할 수 있듯이 자체적인 다중 테넌트에 모든 고객 데이터를 보관합니다. 이러한 경우 공급자가 데이터를 제어할 수 있으며 공급자의 Snowflake 계정에서 크레딧이 소비됩니다.

그림 3: 일반적인 관리되는 애플리케이션 데이터 흐름

관리되는 애플리케이션이 Snowflake에서 구축되면 고객은 Snowflake의 안전한 데이터 공유 기능(그림 3에서는 표시되지 않음)을 통해 자신의 데이터에 액세스할 수 있습니다. 이를 통해 고객은 이 블로그 시리즈 1부에서처럼 API 파이프라인을 구축할 필요 없이 자신의 데이터에 바로 액세스할 수 있습니다.

연결된 및 관리되는 애플리케이션 모델을 모두 지원하는 앱 구축

연결된 앱 또는 관리되는 앱 모델 선택은 상호 배타적이지 않습니다. 일부 고객을 위해서는 관리되는 앱으로 애플리케이션을 구축하고 다른 고객을 위해서는 연결된 앱으로 구축할 수 있습니다. 이러한 경우 애플리케이션 공급자는 사용 가능할 경우 고객의 Snowflake 인스턴스와 연결하거나 자체적인 인스턴스와 연결합니다(그림 4 참조).

그림 4: 연결된 및 관리되는 앱 모델 모두를 지원하는 애플리케이션

고객 온보딩 방법

고객을 연결된 애플리케이션으로 온보딩하려면 고객은 이러한 목적을 위해 자신의 Snowflake 계정에서 전용 사용자를 만들어야 하며 새로운 사용자의 자격 증명을 애플리케이션에 로딩해야 합니다. 그런 다음 데이터베이스 내에서 애플리케이션의 액세스를 제한하기 위해 역할을 사용합니다. 고객은 통합 진실 공급원에서 자신의 데이터에 대한 제어를 유지합니다.

연결된 앱이 데이터를 로딩하는 방법

애플리케이션의 요구에 따라 데이터는 Kafka와 같은 스트리밍 서비스를 통해 스트리밍하거나 클라우드 객체 스토리지에 있는 버킷에 스테이징할 수 있습니다. 그런 다음 Snowflake의 지속적인 서버리스 데이터 수집 서비스인 Snowpipe를 사용하여 그림 5에서처럼 데이터를 고객의 Snowflake 계정에 로딩할 수 있습니다.

그림 5: 연결된 앱을 통해 Snowflake로 데이터 로딩

고객에게 부담을 전가하지 않도록 스테이징 버킷 또는 스트리밍 서비스가 앱 공급자에 속해 있는 것을 권장합니다. 성공적인 연결된 애플리케이션은 일반적으로 고객이 Snowflake 데이터 클라우드 외부에서 어떠한 인프라도 관리할 필요가 없습니다. 데이터를 Snowflake로 로딩하는 방법에 대한 자세한 내용은 Snowpipe 및 당사의 Kafka 커넥터에 대한 설명서를 참조하십시오.

연결된 앱이 데이터를 쿼리하는 방법

고객의 Snowflake 인스턴스를 쿼리하는 것은 간단합니다. Snowflake는 ANSI SQL을 완벽히 준수하므로 SQL 데이터베이스를 사용하는 모든 애플리케이션은 쉽게 양방향 쿼리 지원을 구현할 수 있습니다. 또한 애플리케이션은 다양한 프로그래밍 언어와 지원되는 커넥터를 사용하여 Snowflake를 쿼리할 수 있습니다. Snowflake 커넥터와 드라이버에는 Node.js, Go, .NET, JDBC, ODBC, PHP, Python 및 Spark가 포함됩니다. 당사의 SQL REST API를 활용하여 드라이버를 배포하거나 관리하지 않고도 Snowflake를 쉽게 쿼리할 수 있습니다. 연결 옵션에 대한 자세한 정보는 당사의 커넥터 및 API를 위한 설명서를 참조하십시오.

연결된 앱 통합을 Snowflake로 구현하는 것은 간단합니다. Powered by Snowflake 파트너의 경험에 따르면 프로젝트는 제품과 팀에 따라 완료될 때까지 일반적으로 6~8주가 소요됩니다.

더 많은 것을 원하시나요? Powered by Snowflake 파트너가 되세요

Powered by Snowflake 프로그램은 Snowflake에서 실행되는 애플리케이션 설계와 구현 방법을 구성원에게 알려줍니다. 프로그램은 또한 파트너가 데이터 클라우드 사용자 사이에서 솔루션에 대한 인식을 높이기 위해 공동 솔루션을 선보인 이후에도 도움을 줍니다. 자세한 정보는 Powered by Snowflake 프로그램에서 확인하고 Snowflake 파트너 네트워크에 참가하기 위해 등록하십시오.