Подключение в Google Cloud служба хранилища
В этой статье описывается настройка подключения из Azure Databricks для чтения и записи таблиц и данных, хранящихся в Google Cloud служба хранилища (GCS).
Для чтения или записи из контейнера GCS необходимо создать присоединенную учетную запись службы и связать ее с учетной записью службы. Вы подключаетесь к контейнеру непосредственно с ключом, создаваемым для учетной записи службы.
Доступ к контейнеру GCS напрямую с помощью ключа учетной записи облачной службы Google
Для чтения и записи непосредственно в контейнер необходимо настроить ключ, определенный в конфигурации Spark.
Шаг 1. Настройка учетной записи облачной службы Google с помощью Google Cloud Console
Необходимо создать учетную запись службы для кластера Azure Databricks. Databricks рекомендует предоставить этой учетной записи службы наименьшие привилегии, необходимые для выполнения задач.
Щелкните IAM и Администратор в области навигации слева.
Щелкните "Учетные записи службы".
Нажмите кнопку " + СОЗДАТЬ УЧЕТНУЮ ЗАПИСЬ СЛУЖБЫ".
Введите имя и описание учетной записи службы.
Нажмите Создать.
Щелкните CONTINUE (Продолжить).
Нажмите кнопку "ГОТОВО".
Шаг 2. Создание ключа для доступа к контейнеру GCS напрямую
Предупреждение
Ключ JSON, создаваемый для учетной записи службы, является закрытым ключом, который должен предоставляться только авторизованным пользователям, так как он управляет доступом к наборам данных и ресурсам в учетной записи Google Cloud.
В консоли Google Cloud в списке учетных записей служб щелкните только что созданную учетную запись.
В разделе "Ключи" нажмите кнопку ADD KEY Create new key(Добавить ключ>).
Примите тип ключа JSON .
Нажмите Создать. Файл ключа скачан на компьютер.
Шаг 3. Настройка контейнера GCS
Создание контейнера
Если у вас еще нет контейнера, создайте его:
Щелкните служба хранилища в области навигации слева.
Нажмите кнопку CREATE BUCKET.
Нажмите Создать.
Настройка контейнера
Настройте сведения о контейнере.
Выберите вкладку Разрешения .
Рядом с меткой "Разрешения" нажмите кнопку "ДОБАВИТЬ".
Предоставьте служба хранилища Администратор разрешение учетной записи службы в контейнере из ролей облачной служба хранилища.
Щелкните СОХРАНИТЬ.
Шаг 4. Поместите ключ учетной записи службы в секреты Databricks
Для хранения всех учетных данных Databricks рекомендует использовать области секретов. Вы можете поместить закрытый ключ и идентификатор закрытого ключа из файла JSON ключа в секрет Databricks область. Вы можете предоставить пользователям, субъектам-службам и группам в рабочей области доступ для чтения секретов область. Это защищает ключ учетной записи службы, позволяя пользователям получать доступ к GCS. Сведения о создании секрета область см. в разделе "Секреты".
Шаг 5. Настройка кластера Azure Databricks
На вкладке "Конфигурация Spark" используйте следующий фрагмент кода, чтобы задать ключи, хранящиеся в секретных область:
spark.hadoop.google.cloud.auth.service.account.enable true spark.hadoop.fs.gs.auth.service.account.email <client-email> spark.hadoop.fs.gs.project.id <project-id> spark.hadoop.fs.gs.auth.service.account.private.key {{secrets/scope/gsa_private_key}} spark.hadoop.fs.gs.auth.service.account.private.key.id {{secrets/scope/gsa_private_key_id}}
<project-id>
Замените<client-email>
значения этих точных имен полей из файла JSON ключа.
Используйте управление доступом к кластеру и управление доступом к записной книжке вместе, чтобы защитить доступ к учетной записи службы и данным в контейнере GCS. Ознакомьтесь с разрешениями вычислений и совместной работой с помощью записных книжек Databricks.
Шаг 6. Чтение из GCS
Для чтения из контейнера GCS используйте команду чтения Spark в любом поддерживаемом формате, например:
df = spark.read.format("parquet").load("gs://<bucket-name>/<path>")
Чтобы записать в контейнер GCS, используйте команду записи Spark в любом поддерживаемом формате, например:
df.write.format("parquet").mode("<mode>").save("gs://<bucket-name>/<path>")
Замените <bucket-name>
именем контейнера, созданного на шаге 3. Настройка контейнера GCS.