【Snowflake】Snowpro Advanced:Architect を取得したのでシラバスを整理してみた話

【Snowflake】Snowpro Advanced:Architect を取得したのでシラバスを整理してみた話 | Tableau-id Press -タブロイド-
snowflake-logo-1200x630-960x504

やしろです。
先日、Snowflakeの上位資格である SnowPro Advanced のうち、Architectを受験してみました。
無事に合格することができたので、試験の概要やドキュメント、所感などなどについて整理してみたいと思います。
(長くなりました、興味がある方どうぞお付き合いください…)

試験概要

Snowflakeの認定資格としてSnowPro CoreとSnowPro Advancedがあり、Advancedはさらに分野ごとに5種類に細分化されています。

Architectは、これらの中で唯一日本語版がリリースされており、比較的チャレンジしやすい試験だと思います。

試験時間はCoreと同じく115分、受験費用は375ドル(6万くらいしました!)です。
SnowPro Coreを保有していることが受験の前提条件になっているのでご注意ください。
より詳細な試験概要は、こちらから確認いただけます。

日本語版がリリースされたとはいえ、公式のシラバスは英語しか公開されていないようで、Udemyなどにある模擬問題などもほとんど英語のものばかりでした。
また、このシラバスですが、ドキュメントとのリンクがどうにもわかりにくいのです…
なので、今回もCoreのときと同様に、試験範囲とドキュメントのリンクを整理してみました!
このブログの後半にダダーっとまとめていますので、参考にしていただけたら嬉しいです。

試験を受けるまでにやったこと

試験勉強としてやったのは主に次のとおりです。
・公式ドキュメントの読み込み
上述の通り、試験ガイドにまとめられているリンクはすべて英語なのでちょっとやりにくかったです。
・Udemyの模擬問題を解く
こちらの講座を受講しました。
最近3回/週のペースでクライアント先に常駐しているのですが、その移動中にせっせと解いていました。
・勉強会に参加
Snowflakeのユーザーコミュニティ「Snowvillage」の中で開催されている勉強会に、ときどき参加していました。
Truestar社内にはまだ受験者がいなくて情報もあまりなかったのですが、こちらの勉強会にはすでに受験された方も
参加されていたので、参考情報とかいただけてラッキーでした!笑 

試験の所感

難易度としては当然SnowPro Coreよりも難しい…のですが、具体的なケース問題の比率が高く、解いていて勉強になるなーと
思うものが多かったです。
また、Coreの方では試験範囲外だったKafkaコネクタやSnowpipeなどは、関連する問題が複数出たりしたので勉強必須だなと思いました。

SnowPro Advanced:Architect 試験範囲一覧

見出しはすべて英語のままですが、各リンク先のドキュメントは基本的に日本語になっています。(英語しかないものはそのまま)

Domain 1.0: Account and Security

1.1 Design a Snowflake account and database strategy, based on business requirements.
■Create and configure Snowflake parameters based on a central account and any additional accounts.
Parameters (all levels)
Account parameters
・Object parameters
Outline the Snowflake parameter hierarchy and the relationship between the parameter types.
List the benefits and limitations of one Snowflake account as compared to multiple Snowflake accounts.
Isolate or segment accounts
Key considerations and constraints when defining an account strategy
Features/capabilities that can be leveraged across accounts
Identify use cases that are appropriate for account strategies

1.2 Design an architecture that meets data security, privacy, compliance, and governance requirements.
Configure Role Based Access Control (RBAC) hierarchy
Privilege inheritance
Database roles
System roles and associated best practices
Functional roles compared to access roles
Data Access
Storage integrations
■Data Security
Secure views
Column-level security
・・Dynamic Data Masking
・・Row level security
・・Row access policies
Compliance
Payment Card Industry (PCI) Security Standard
Personal Identifiable Information (PII)/ Personal Health Information (PHI)(英語)
Features of the different Snowflake editions

1.3 Outline Snowflake security principles and identify use cases where they should be applied.
Encryption
Network security
Access control lists
AWS PrivateLink/Azure Private Link
User, role, grants provisioning
■Authentication
Federated authentication
Single Sign-on (SSO)
Multi-Factor Authentication (MFA)
Key-pair authentication
Security integrations

その他関連記事(英語)
Architecture Pattern: Security – Access to Sensitive Objects
Architecture Pattern: Security – Authentication
Architecture Pattern: Security – Network
Cloud Data Platform Security: How Snowflake Sets the Standard (white paper)

Domain 2.0: Snowflake Architecture

2.1 Outline the benefits and limitations of various data models in a Snowflake environment.
■Data models
Use of key/column constraints (ENABLE/RELY/VALIDATE)

2.2 Design data sharing solutions, based on different use cases.
Use cases(英語)
・Sharing within the same organization/same Snowflake account
・Sharing within a cloud region
・Sharing across cloud regions
・Sharing between different Snowflake accounts
・Sharing to a non-Snowflake customer
・Sharing across platforms
Snowflake Marketplace
Data Exchange
Data sharing methods
・Configure shares, account parameters, and privileges
・Security patterns for data sharing
・Outline the purpose, benefits, and capabilities of the multiple data sharing methods

2.3 Create architecture solutions that support development lifecycles as well as workloadrequirements.(英語)
Data lake and environments
・Storage directory structure
・Zones (data warehouse layers)
Support of DevOps/DataOps principles(英語)
・Production/development/sandbox
Data workloads(英語)
Data warehouse(英語)
ELT/ETL
Development lifecycle support(英語)
Migration(英語)
CI/CD
Deployment(ウェビナー)
■Rollback process

2.4 Given a scenario, outline how objects exist within the Snowflake object hierarchy and how the hierarchy impacts an architecture.
■Roles
■Virtual warehouses
■Object hierarchy
・Databases
・・・CI/CD
・。。・Tables
・・・・Views
・・・・Stages
・・・・File formats
・・・・Functions
・・・・Procedures
・・・・Streams and tasks

2.5 Determine the appropriate data recovery solution in Snowflake and how data can berestored.
■Backup/recovery
Time Travel
・・・Table types
・・・Costs
・・・Availability
・・・Query performance impacts
Data corruption impacts(英語)
Fail-safe
■Disaster recovery
Replication and failover
Zero-copy cloning

その他関連記事(英語)
Building an application on Snowflake with data from Snowflake Data Marketplace(quick start)
Getting Started with Time Travel(quick start)
Snowflake and Data Modeling (workload guide)
IOT Reference Architecture (use case)
Application Health and Security Analytics Reference Architecture (use case)
Multiple Data Modeling Approaches with Snowflake (blog)
Undrop object dropped or replaced multiple times (blog)
Support Multiple Data Modeling Approaches with Snowflake (blog)

Domain 3.0: Data Engineering

3.1 Determine the appropriate data loading or data unloading solution to meet businessneeds.
Data sources
・Data at rest
・Data in motion
・External sources and formats
・Streaming data
・・Snowpipe
・・Change Data Capture (CDC)
OLTP/RDBMS sources
API sources
Data ingestion
Bulk file upload
Snowpipe
External tables
・Reload process
・Incremental updates compared to full updates
Iceberg tables
Parameters for copying data and addressing data handling error
■Architecture changes
Schema detection and table schema evolution
・Data source changes
Data unloading

3.2 Outline key tools in Snowflake’s ecosystem and how they interact with Snowflake.
■Connectors
Kafka
Spark
Python
■Drivers
JDBC
ODBC
API endpoints
・Use of system$allowlist
SnowSQL
■Snowpark
Python
Scala
Java

3.3 Determine the appropriate data transformation solution to meet business needs.
Views and tables
・Benefits, limitations, properties
Relationship and impact between the view and data types
Impact of costs
Dynamic tables
Staging layers and tables
Querying semi-structured data
・Flattened
Data processing
Stored procedures
Streams and tasks
■Functions
External functions
・・・Performance impacts
User-Defined Functions (UDFs)
User-Defined Table Functions (UDTFs)
Secure functions

その他関連記事(英語)
Building a Real-Time Data Vault in Snowflake(quick start)
Enrich Salesforce data with Snowflake to deliver your Customer 360(quick start)
Auto-Ingest Twitter Data into Snowflake(quick start)
Build a Recommendation Engine with AWS SageMaker(quick start)
Getting Started with Snowpipe(quick start)
Accelerating Data Engineering with Snowflake & dbt(quick start)
Getting Started With User-Defined Functions(quick start)
Getting Started with Python(quick start)
Getting Started with SnowSQL(quick start)
Snowflake for Data Engineering- Easily Ingest, Transform, and Deliver Data forUp-To-The Moment Insights (white paper)
Using Streams and Tasks in Snowflake (blog)
Masking Semi-Structured Data with Snowflake (blog)
Easy Continuous Data Pipelines with GA of Streams and Tasks (blog)

Domain 4.0: Performance Optimization

4.1 Outline performance tools, best practices, and appropriate scenarios where they should be applied.
Query profiling
・Interpret a Query Profile, identify bottlenecks, and outline recommendations
・Metadata functions
Virtual warehouse configurations
・Auto-suspend/resume
Scale up/down (resizing)
・Scale in/out (multi-cluster warehouse/auto-scaling)
Query acceleration service
Warehouse queuing
Snowpark-optimized warehouses
■Clustering
・Natural clustering
Auto-clustering
Clustering keys
Search optimization service
Caching
・・Different cache layers(Tableau-idブログ記事)
・・・Cache expiration
・・・Impact of costs

4.2 Troubleshoot performance issues with existing architectures.
Use of system clustering information
Warehouse configurations
Optimization techniques
Micro-partition pruning
■Monitoring and alerting
・Use of the Account Usage and Information schemas
Resource monitoring
Email notifications

その他関連記事(英語)
Resource Optimization: Performance(quick start)
Resource Optimization: Billing Metrics(quick start)
Resource Optimization: Setup & Configuration(quick start)
Resource Optimization: Usage Monitoring(quick start)
Automating Data Pipeline to Drive Marketing Analytics with Snowflake & Fivetran(quick start)
Building a Data Application(quick start)
DevOps: Database Change Management with schemachange and GitHub(quick start)
Customer 360 Reference Architecture (use case)
The Rise of Data Exchanges Frictionless Integration of Third-Party Data (white paper)

おわりに

Advancedの取得は今年の大きな目標の一つだったのでホッとしています。
せっかく取得できたので、ここで得た知識を業務でも活かせるように精進していきたいなーと思う次第です。

まだなかなか日本語での情報が多くない資格なので、このブログもどなたかのお役に立てたら幸いです!

また、truestarではSnowflakeの検討、導入支援や環境構築からアプリ開発まで幅広くサポート可能です。
Snowflakeに興味がある、導入済みだけどもっとうまく活用したい等々ありましたら、ぜひこちらから相談ください!

これまでのSnowflakeに関する記事はこちら