Snowflake Data Lake за достъп/управление на неструктурирано съдържание

Искали ли сте някога езеро от данни за съхранение и достъп до вашето неструктурирано съдържание, където бихте могли да имате същата сигурност, управление и лесен достъп чрез SQL, с които сте свикнали, докато използвате релационни бази данни?

Е… желанието ви току-що беше изпълнено, защото Snowflake е тук, за да представи неструктуриран достъп до данни чрез своите възможности за езеро от данни.

Вече можете да се насладите на същата най-съвременна мащабируемост, сигурност и услуга за управление почти 0 с всички неструктурирани данни (видео, изображения, файлове с документи, 3D чертежи и други) до които вашите приложения трябва да имат достъп или да ги обработват.

Независимо дали сте разработчик на приложения за платформа за управление на съдържание, компания за игри или обработка на сателитни изображения или нещо между тях, вече сте запознати с болката от съхраняването, защитата и предоставянето на достъп до милиони неструктурирани файлове на вашите приложения с помощта на естествен облак blob съхранение.

Изисква различен набор от API за работа с файлове, сигурността на файловете и папките е напълно различна и се нуждае от AMI и други собствени правила, които да бъдат конфигурирани и поддържани, което е много по-различно от Role-Based-Access (RBAC), който с които сте свикнали, когато работите с SQL бази данни. Това въвежда различен набор от библиотеки, интеграции, хора за управление на достъпа и други. Имахте нужда от сложен набор от инструменти, API и набори от умения, за да управлявате неструктурирани данни за вашите приложения.

Възможностите на езерото от данни на Snowflake с достъп до неструктурирани данни променят всичко това, като всичко става много по-лесно, по-просто, мащабируемо и по-сигурно. Вие получавате:

  1. Лесен достъп до SQL Query за запитване към вашите файлове и структури на директории, така че да можете да изпълнявате сложни заявки към имена на файлове и папки и да ги присъединявате към други релационни таблици във вашата база данни.
  2. Snowflake SQL драйвери (JDBC, ODBC & и др.) с вградени възможности за автоматично компресиране, криптиране и директно качване на всеки файл в езерото с данни на Snowflake с помощта на команда SQL PUT файл. Това автоматично гарантира криптиране край 2 край без никакви други инструменти.
  3. Всеки качен файл винаги е шифрован в покой чрез Snowflake.
  4. Защитете качено съдържание чрез правила за сигурност на RBAC, които могат да бъдат предоставени на съществуващи потребителски идентификатори на Snowflake, което е идентично със защитата на всяка релационна база данни. Един набор от потребители и един набор от защита за защита както на релационните таблици, така и на вашите неструктурирани данни.
  5. Да можете да използвате драйвери на Snowflake или да преминете без драйвери с SQL API във вашите приложения за достъп както до релационни таблици, така и до вашите неструктурирани данни.
  6. Възможност за защитен достъп до съдържанието на тези файлове с URL адреси с ограничен във времето достъп в допълнение към пълното криптиране от край до край.

Нека видим как работи и какви функции са налични:

  • Първо, трябва да създадете вътрешна или външна сцена за съхраняване на файлове във вашето езеро с данни. Internal Stage е магазин за петна, напълно управляван и защитен от Snowflake, а External Stage е нещо, което трябва да управлявате.

  • Сега просто трябва да качите файлове от локално хранилище във вашето езеро с данни Snowflake. За това можете напълно да използвате собствените драйвери и SQL на Snowflake. Няма нужда да пишете персонализиран код за компресиране, криптиране и качване на вашите файлове с помощта на библиотеки и зависимости на трети страни. Всичко, от което се нуждаете, е да подадете команда PUT чрез SQL драйвер и да предоставите изходни файлове (или пътеки) и целевото местоположение на езерото с данни (име на етап + подпапка).

  • Веднъж качени, можете да изброите всички файлове в езерото с данни (или подпапки), като използвате проста LS команда.

  • Обикновеният списък с файлове е страхотен, но се нуждаем от повече... Snowflake ви позволява да преглеждате структурата на файл/папка на езеро като таблица на база данни и да изпълнявате заявки към нея, за да получите много по-подробна информация. Можете да стартирате прост SELECT и да използвате функцията DIRECTORY(), за да получите много по-гъвкав начин за достъп и запитване до съдържанието. Можете да направите SELECT от DIRECTORY(), за да видите всички файлове, както направихме с командата LS.

  • или много по-специфични като добавяне на клауза WHERE за файлове с конкретни имена и размери на данни. Обърнете внимание на колоната FILE_URL. Това ви позволява бързо да получите достъп/изтегляне на файла директно от потребителския интерфейс на Snowflake.

Очевидно не се интересувате от достъп до файлове от потребителския интерфейс на Snowflake. Имате нужда от достъп от вашите приложения.

Нека посетим наличните за вас функции за достъп до съдържанието на езерото от данни извън потребителския интерфейс на Snowflake. Това са SQL функциите, които можете да задействате от вашите приложения, за да получите достъп до всяко неструктурирано съдържание в езерото от данни на Snowflake.

  1. BUILD_SCOPED_FILE_URL(): Това връща URL адрес, който може да бъде достъпен само от потребителя, който е изпълнил тази функцияс помощта на метода SQL API и URL адресът ще да е само валиден за 24 часа.

2. BUILD_STAGE_FILE_URL(StageName, FilePath): Това връща URL адрес, който може да бъде достъпен от всеки удостоверен потребител(който има RBAC достъп до този ресурс) с помощта на SQL API и URL адресът БЕЗ ОГРАНИЧЕНИЯ ВРЕМЕ.

3. GET_PRESIGNED_URL(StageName, FilePath, DurationSeconds): Това връща временен URL адрес, който може да бъде достъпен от всеки източник без необходимост от удостоверяване на Snowflake. URL адресът има вградено временно означение за достъп и достъпът ще изтече въз основа на броя секунди, посочен в параметрите. В този случай ние генерираме URL адрес за достъп до файл за нашето приложение, който ще бъде активен само за 30 секунди. По този начин можем бързо да предоставим достъп до всяко приложение, за да изтеглим бързо съдържанието и да отнемем достъпа. Чудесен начин за директен достъп и изтегляне на съдържанието от преносими компютри за наука за данни, клиентски приложения и т.н., без да се налага да преминавате през API на Rest.

Това е!!! Това е всичко, от което се нуждаете, за да получите достъп до всеки файл, съхранен в езерото с данни Snowflake.

Разбира се, това не би било толкова готино, ако не можете да използвате същата защита на базата данни RBAC, за да контролирате достъпа до съдържанието на езерото от данни. Можете да предоставите достъп READ/WRITE до тези етапи на езерото от данни, подобно на предоставянето на права на всяка SQL таблица.

Можете да използвате или новия потребителски интерфейс на Snowsight

или използвайте SQL директно.

След като защитата бъде приложена, тя ще контролира кой може да вижда файловете, ако се опитвате да изпълните или използвате резултата от BUILD_SCOPED_FILE_URLилиBUILD_STAGE_FILE_URLфункции. Също така ще контролира кой може да използва командата PUT за качване на файлове в конкретни вътрешни етапи.

Ето още информация и допълнителни функции, които обхващат поддръжката на неструктурирани данни в Snowflake

https://docs.snowflake.com/en/user-guide/unstructured-intro.html

Е, това е вашето 10-минутно кратко въведение за всички готини НЕЩА, които можете да правите с поддръжката на езеро с данни Snowflake и поддръжка на неструктурирани файлове. Помислете за всички допълнителни слоеве код и сложност, които можете да премахнете от вашите приложения и работни натоварвания за наука за данни, когато става въпрос за достъп до изображения, видео, документи и др.