Snowflake and Zilliz Cloud Integration
Snowflake and Zilliz Cloud integrate through Snowpark Container Services to deploy Milvus within the Snowflake ecosystem, enabling organizations to run vector search workloads directly inside Snowflake without data egress, combining Snowflake's data platform with Milvus's high-performance vector database capabilities.
Utilisez cette intégration gratuitementQu’est-ce que Snowflake
Snowflake est une plateforme de données cloud qui offre des capacités d’entrepôt de données, de lac de données et de partage de données. Snowpark Container Services est une offre de conteneurs entièrement gérée au sein de l’écosystème Snowflake, conçue pour faciliter le déploiement, la gestion et la mise à l’échelle des applications conteneurisées. Ce service permet aux utilisateurs d’exécuter des charges de travail conteneurisées directement dans Snowflake, garantissant que les données n’ont pas besoin d’être déplacées hors de l’environnement Snowflake pour être traitées.
En s’intégrant à Zilliz Cloud (Milvus entièrement géré), les utilisateurs de Snowflake peuvent déployer Milvus en tant que service conteneurisé au sein de Snowpark Container Services, permettant aux charges de travail de recherche vectorielle et d’IA de s’exécuter directement dans l’écosystème Snowflake — en traitant les données là où elles résident afin d’optimiser les performances, de minimiser la latence et d’éliminer la nécessité de l’exfiltration des données.
Avantages de l’intégration Snowflake + Zilliz Cloud
- Aucune sortie de données : L’exécution de Milvus dans Snowpark Container Services signifie que les données restent à l’intérieur de l’écosystème Snowflake, éliminant la nécessité de déplacer les données vers des bases de données vectorielles externes et réduisant les risques de sécurité et de conformité.
- Déploiement de conteneurs entièrement géré : Snowpark Container Services gère le déploiement, l’administration et la mise à l’échelle du conteneur Milvus, réduisant la charge opérationnelle liée à l’exécution de charges de travail de recherche vectorielle.
- Proximité des données : Le traitement des charges de travail de recherche vectorielle là où résident les données optimise les performances et minimise la latence, permettant des applications RAG et de recherche sémantique plus rapides.
- Intégration transparente avec Snowflake : Les organisations qui utilisent déjà Snowflake peuvent ajouter des capacités de recherche vectorielle sans introduire de nouvelle infrastructure externe, en tirant parti des rôles, des warehouses et des configurations de sécurité existants.
Fonctionnement de l’intégration
Snowflake fournit la plateforme de données cloud et l’infrastructure Snowpark Container Services pour l’hébergement d’applications conteneurisées. Il gère l’administration des pools de calcul, l’orchestration des services, la mise en réseau et l’authentification, permettant à Milvus de fonctionner comme un service géré au sein de l’écosystème Snowflake.
Zilliz Cloud fournit Milvus, la base de données vectorielle haute performance qui fonctionne comme un service conteneurisé au sein de Snowpark. Il gère le stockage vectoriel, l’indexation et la recherche de similarité pour les charges de travail d’IA, notamment la RAG, la recherche sémantique et les systèmes de recommandation.
Ensemble, Snowflake et Milvus créent une plateforme de données et d’IA unifiée : les données stockées dans Snowflake sont traitées et intégrées sous forme de vecteurs, qui sont stockés et indexés par Milvus exécuté au sein de Snowpark Container Services. Les utilisateurs peuvent ensuite effectuer une recherche de similarité vectorielle directement dans l’écosystème Snowflake, permettant des applications d’IA comme la RAG sans déplacer les données hors de la plateforme.
Guide étape par étape
1. Obtenir les informations du compte et se connecter
Téléchargez le client SPCS SnowSQL, puis connectez-vous à votre compte :
snowsql -a ${instance_name} -u ${user_name}La règle de
${instance_name}est${org_name}-${acct_name}. Les informations pertinentes peuvent être obtenues en vous connectant à app.snowflake.com et en consultant les informations du compte personnel.2. Configurer le rôle et les privilèges
Configurez l’intégration OAUTH et créez un rôle pour le service :
USE ROLE ACCOUNTADMIN; CREATE SECURITY INTEGRATION SNOWSERVICES_INGRESS_OAUTH TYPE=oauth OAUTH_CLIENT=snowservices_ingress ENABLED=true; USE ROLE ACCOUNTADMIN; GRANT BIND SERVICE ENDPOINT ON ACCOUNT TO ROLE SYSADMIN; USE ROLE SECURITYADMIN; CREATE ROLE MILVUS_ROLE; USE ROLE USERADMIN; CREATE USER milvus_user PASSWORD='milvususerok' DEFAULT_ROLE = MILVUS_ROLE DEFAULT_SECONDARY_ROLES = ('ALL') MUST_CHANGE_PASSWORD = FALSE; USE ROLE SECURITYADMIN; GRANT ROLE MILVUS_ROLE TO USER milvus_user;3. Créer la configuration de stockage des données
Créez l’entrepôt, la base de données, le référentiel d’images et les stages :
USE ROLE SYSADMIN; CREATE OR REPLACE WAREHOUSE MILVUS_WAREHOUSE WITH WAREHOUSE_SIZE='X-SMALL' AUTO_SUSPEND = 180 AUTO_RESUME = true INITIALLY_SUSPENDED=false; USE ROLE SYSADMIN; CREATE DATABASE IF NOT EXISTS MILVUS_DEMO; USE DATABASE MILVUS_DEMO; CREATE IMAGE REPOSITORY MILVUS_DEMO.PUBLIC.MILVUS_REPO; CREATE OR REPLACE STAGE YAML_STAGE; CREATE OR REPLACE STAGE DATA ENCRYPTION = (TYPE = 'SNOWFLAKE_SSE'); CREATE OR REPLACE STAGE FILES ENCRYPTION = (TYPE = 'SNOWFLAKE_SSE');Accordez les privilèges de rôle et configurez l’ACL :
USE ROLE SECURITYADMIN; GRANT ALL PRIVILEGES ON DATABASE MILVUS_DEMO TO MILVUS_ROLE; GRANT ALL PRIVILEGES ON SCHEMA MILVUS_DEMO.PUBLIC TO MILVUS_ROLE; GRANT ALL PRIVILEGES ON WAREHOUSE MILVUS_WAREHOUSE TO MILVUS_ROLE; GRANT ALL PRIVILEGES ON STAGE MILVUS_DEMO.PUBLIC.FILES TO MILVUS_ROLE; USE ROLE ACCOUNTADMIN; USE DATABASE MILVUS_DEMO; USE SCHEMA PUBLIC; CREATE NETWORK RULE allow_all_rule TYPE = 'HOST_PORT' MODE= 'EGRESS' VALUE_LIST = ('0.0.0.0:443','0.0.0.0:80'); CREATE EXTERNAL ACCESS INTEGRATION allow_all_eai ALLOWED_NETWORK_RULES=(allow_all_rule) ENABLED=TRUE; GRANT USAGE ON INTEGRATION allow_all_eai TO ROLE SYSADMIN;4. Construire et pousser les images Docker
Construisez les images Milvus et Jupyter localement à l’aide de la configuration de ce repo :
cd ${repo_git_root_path} docker build --rm --no-cache --platform linux/amd64 -t milvus ./images/milvus docker build --rm --no-cache --platform linux/amd64 -t jupyter ./images/jupyterTaguez et poussez les images vers SPCS :
docker login ${instance_name}.registry.snowflakecomputing.com -u ${user_name} docker tag milvus ${instance_name}.registry.snowflakecomputing.com/milvus_demo/public/milvus_repo/milvus docker tag jupyter ${instance_name}.registry.snowflakecomputing.com/milvus_demo/public/milvus_repo/jupyter docker push ${instance_name}.registry.snowflakecomputing.com/milvus_demo/public/milvus_repo/milvus docker push ${instance_name}.registry.snowflakecomputing.com/milvus_demo/public/milvus_repo/jupyter5. Créer les pools de calcul et démarrer les services
Créez les pools de calcul et téléversez les fichiers de spécification :
USE ROLE SYSADMIN; CREATE COMPUTE POOL IF NOT EXISTS MILVUS_COMPUTE_POOL MIN_NODES = 1 MAX_NODES = 1 INSTANCE_FAMILY = CPU_X64_S AUTO_RESUME = true; CREATE COMPUTE POOL IF NOT EXISTS JUPYTER_COMPUTE_POOL MIN_NODES = 1 MAX_NODES = 1 INSTANCE_FAMILY = CPU_X64_S AUTO_RESUME = true;Téléversez les fichiers de spécification et créez les services :
PUT file://${path/to/jupyter.yaml} @yaml_stage overwrite=true auto_compress=false; PUT file://${path/to/milvus.yaml} @yaml_stage overwrite=true auto_compress=false; USE ROLE SYSADMIN; USE DATABASE MILVUS_DEMO; USE SCHEMA PUBLIC; CREATE SERVICE MILVUS IN COMPUTE POOL MILVUS_COMPUTE_POOL FROM @YAML_STAGE SPEC='milvus.yaml' MIN_INSTANCES=1 MAX_INSTANCES=1; CREATE SERVICE JUPYTER IN COMPUTE POOL JUPYTER_COMPUTE_POOL FROM @YAML_STAGE SPEC='jupyter.yaml' MIN_INSTANCES=1 MAX_INSTANCES=1;6. Utiliser le Notebook
Accordez les autorisations et accédez au notebook Jupyter :
USE ROLE SECURITYADMIN; GRANT USAGE ON SERVICE MILVUS_DEMO.PUBLIC.JUPYTER TO ROLE MILVUS_ROLE; USE ROLE SYSADMIN; SHOW ENDPOINTS IN SERVICE MILVUS_DEMO.PUBLIC.JUPYTER;Notez le
ingress_url, ouvrez-le dans un navigateur et connectez-vous avec le compte milvus_user. OuvrezTestMilvus.ipynbpour essayer Milvus avec des opérations de recherche vectorielle.7. Nettoyer
Après vérification, nettoyez les services, rôles et ressources de données :
USE ROLE ACCOUNTADMIN; DROP USER milvus_user; USE ROLE SYSADMIN; DROP SERVICE MILVUS; DROP SERVICE JUPYTER; DROP COMPUTE POOL MILVUS_COMPUTE_POOL; DROP COMPUTE POOL JUPYTER_COMPUTE_POOL; DROP IMAGE REPOSITORY MILVUS_DEMO.PUBLIC.MILVUS_REPO; DROP DATABASE MILVUS_DEMO; DROP WAREHOUSE MILVUS_WAREHOUSE; USE ROLE ACCOUNTADMIN; DROP ROLE MILVUS_ROLE; DROP SECURITY INTEGRATION SNOWSERVICES_INGRESS_OAUTH;En savoir plus
- Milvus sur Snowpark Container Services — Tutoriel officiel de Milvus pour le déploiement sur Snowpark
- Créer un RAG avec Milvus auto-déployé et Snowpark Container Services — Blog de Zilliz sur la création d’un RAG avec Snowpark
- Présentation de Snowpark Container Services — Documentation officielle de Snowflake sur SPCS
- Dépôt GitHub Milvus sur SPCS — Configuration Docker et fichiers de spécification pour le déploiement
- Démarrage rapide de Milvus — Documentation de démarrage rapide de Milvus


