مزود تيرافورم لطازات البيانات

HashiCorp Terraform هي أداة مفتوحة المصدر شائعة لإنشاء بنية تحتية سحابية آمنة ويمكن التنبؤ بها عبر العديد من مزودي السحابة. يمكنك استخدام موفر Databricks Terraform لإدارة مساحات عمل Azure Databricks والبنية التحتية السحابية المقترنة باستخدام أداة مرنة وقوية. الهدف من مزود Databricks Terraform هو دعم جميع واجهات برمجة التطبيقات Databricks REST ، ودعم التشغيل الآلي لأكثر الجوانب تعقيدا في نشر وإدارة منصات البيانات الخاصة بك. يستخدم عملاء Databricks موفر Databricks Terraform لنشر وإدارة الكتل والمهام وتوفير مساحات عمل Databricks وتكوين الوصول إلى البيانات.

علاقة المورد Terraform

هام

موفر Terraform Databricks غير معتمد رسميا من قبل Databricks أو Microsoft. يتم الحفاظ عليها من قبل فرق الهندسة الميدانية Databricks وتقدم كما هي. لا يوجد اتفاق مستوى الخدمة (SLA). لا تقدم مدونات البيانات وMicrosoft أي ضمانات من أي نوع. إذا اكتشفت مشكلة مع الموفر، قم بتقديم مشكلة GitHub،وسيتم مراجعتها من قبل صيانة المشروع كما يسمح الوقت.

الشروع في العمل

أكمل الخطوات التالية لتثبيت وتكوين أدوات سطر الأوامر التي يحتاجها Terraform للعمل. تتضمن هذه الأدوات CLI Terraform و CLI Azure. بعد إعداد هذه الأدوات، أكمل الخطوات لإنشاء تكوين Terraform أساسي يمكنك استخدامه لاحقا لإدارة مساحات عمل Azure Databricks والبنية الأساسية سحابة Azure المقترنة.

ملاحظة

يفترض هذا الإجراء أن لديك حق الوصول إلى مساحة عمل Azure Databricks نشر كمسؤول Databricks والوصول إلى اشتراك Azure المطابقة والأذونات المناسبة للإجراءات التي تريد Terraform لتنفيذ في هذا الاشتراك Azure. للحصول على المزيد من المعلومات، راجع ما يلي:

  1. تثبيت CLI تيرافورم. لمزيد من التفاصيل، راجع تنزيل Terraform على موقع Terraform.

  2. تثبيت CLI Azure ثم قم باستخدام CLI Azure لتسجيل الدخول إلى Azure عن طريق تشغيل az login الأمر. للحصول على التفاصيل، راجع تثبيت CLI Azure على موقع ويب Microsoft Azure و Azure موفر: المصادقة باستخدام CLI Azure على موقع Terraform.

    az login
    

    تلميح

    لتشغيل Terraform ضمن سياق تسجيل دخول مختلف، قم بتشغيل az login الأمر مرة أخرى. يمكنك التبديل لجعل Terraform يستخدم اشتراك Azure بخلاف الاشتراك المدرج "isDefault": true في إخراج التشغيل az login . للقيام بذلك، قم بتشغيل الأمر az account set --subscription="<subscription ID>" ، استبدال <subscription ID> بقيمة خاصية الاشتراك المطلوب في إخراج id تشغيل az login .

    يستخدم هذا الإجراء CLI Azure مع الاشتراك الافتراضي للمصادقة. للحصول على خيارات مصادقة بديلة، راجع المصادقة على Azure على موقع Terraform على ويب.

  3. في المحطة الطرفية، قم بإنشاء دليل فارغ ثم قم بالتبديل إليه. (يجب أن تكون كل مجموعة منفصلة من ملفات تكوين Terraform في الدليل الخاص بها.) على سبيل المثال: mkdir terraform_demo && cd terraform_demo.

    mkdir terraform_demo && cd terraform_demo
    
  4. في هذا الدليل الفارغ، قم بإنشاء ملف باسم main.tf . إضافة المحتوى التالي إلى هذا الملف، ثم قم بحفظ الملف:

    terraform {
      required_providers {
        azurerm = {
          source = "hashicorp/azurerm"
          version = ">= 2.26"
        }
    
        databricks = {
          source = "databrickslabs/databricks"
          version = "0.3.9"
        }
      }
    }
    
    provider "azurerm" {
      features {}
    }
    
    provider "databricks" {}
    
  5. تهيئة دليل العمل الذي يحتوي على main.tf الملف عن طريق تشغيل terraform init الأمر. لمزيد من المعلومات، راجع الأمر: init على موقع Terraform.

    terraform init
    

    Terraform بتحميل azurermdatabricks ومقدمي وتثبيتها في دليل فرعي مخفي من دليل العمل الحالي الخاص بك، واسمه .terraform . terraform initيطبع الأمر إصدار موفري الخدمة المثبتة. Terraform أيضا بإنشاء ملف تأمين المسمى .terraform.lock.hcl الذي يحدد إصدارات موفر الدقيق المستخدمة، بحيث يمكنك التحكم عندما تريد تحديث موفري المستخدمة للمشروع الخاص بك.

  6. تطبيق التغييرات المطلوبة للوصول إلى الحالة المطلوبة من التكوين عن طريق تشغيل terraform apply الأمر. لمزيد من المعلومات، راجع الأمر: تطبيق على موقع Terraform.

    terraform apply
    

    لأنه لم يتم تحديد أية موارد في main.tf الملف، الإخراج Apply complete! Resources: 0 added, 0 changed, 0 destroyed. أيضا، Terraform يكتب البيانات في ملف يسمى terraform.tfstate . لإنشاء الموارد، تابع مع تكوين نموذج، الخطوات التاليةأو كليهما لتحديد الموارد المطلوبة لإنشاء ثم قم بتشغيل الأمر مرة أخرى. تقوم Terraform بتخزين معرفات وخصائص الموارد التي تديرها في هذا terraform.tfstate الملف، بحيث يمكنها تحديث أو إتلاف تلك الموارد في المستقبل.

تكوين نموذج

أكمل الإجراء التالي لإنشاء تكوين Terraform نموذج يقوم بإنشاء دفتر ملاحظات ومهمة لتشغيل دفتر الملاحظات هذا، في مساحة عمل Azure Databricks موجودة.

  1. في main.tf الملف الذي قمت بإنشائه في main.tf، قم بتغيير databricks الموفر للإشارة إلى مساحة عمل Azure Databricks موجودة:

    provider "databricks" {
      host = var.databricks_workspace_url
    }
    
  2. في نهاية main.tf الملف، إضافة التعليمات البرمجية التالية:

    variable "databricks_workspace_url" {
      description = "The URL to the Azure Databricks workspace (must start with https://)"
      type = string
      default = "<Azure Databricks workspace URL>"
    }
    
    variable "resource_prefix" {
      description = "The prefix to use when naming the notebook and job"
      type = string
      default = "terraform-demo"
    }
    
    variable "email_notifier" {
      description = "The email address to send job status to"
      type = list(string)
      default = ["<Your email address>"]
    }
    
    // Get information about the Databricks user that is calling
    // the Databricks API (the one associated with "databricks_connection_profile").
    data "databricks_current_user" "me" {}
    
    // Create a simple, sample notebook. Store it in a subfolder within
    // the Databricks current user's folder. The notebook contains the
    // following basic Spark code in Python.
    resource "databricks_notebook" "this" {
      path     = "${data.databricks_current_user.me.home}/Terraform/${var.resource_prefix}-notebook.ipynb"
      language = "PYTHON"
      content_base64 = base64encode(<<-EOT
        # created from ${abspath(path.module)}
        display(spark.range(10))
        EOT
      )
    }
    
    // Create a job to run the sample notebook. The job will create
    // a cluster to run on. The cluster will use the smallest available
    // node type and run the latest version of Spark.
    
    // Get the smallest available node type to use for the cluster. Choose
    // only from among available node types with local storage.
    data "databricks_node_type" "smallest" {
      local_disk = true
    }
    
    // Get the latest Spark version to use for the cluster.
    data "databricks_spark_version" "latest" {}
    
    // Create the job, emailing notifiers about job success or failure.
    resource "databricks_job" "this" {
      name = "${var.resource_prefix}-job-${data.databricks_current_user.me.alphanumeric}"
      new_cluster {
        num_workers   = 1
        spark_version = data.databricks_spark_version.latest.id
        node_type_id  = data.databricks_node_type.smallest.id
      }
      notebook_task {
        notebook_path = databricks_notebook.this.path
      }
      email_notifications {
        on_success = var.email_notifier
        on_failure = var.email_notifier
      }
    }
    
    // Print the URL to the notebook.
    output "notebook_url" {
      value = databricks_notebook.this.url
    }
    
    // Print the URL to the job.
    output "job_url" {
      value = databricks_job.this.url
    }
    
  3. استبدال القيم التالية، ثم قم بحفظ الملف:

    • استبدال <Azure Databricks workspace URL> مع URL إلى مساحة عمل Azure Databricks.
    • استبدل <Your email address> بعنوان بريدك الإلكتروني.
  4. قم بتشغيل terraform apply.

  5. تحقق من إنشاء دفتر الملاحظات والوظيفة: في إخراج terraform apply الأمر، ابحث عن عناوين URL لها notebook_urljob_url واذهب إليها.

  6. تشغيل المهمة: في صفحة مهام، انقر فوق تشغيل الآن. بعد انتهاء المهمة، تحقق من البريد الوارد للبريد الإلكتروني.

  7. عند الانتهاء من هذه العينة، حذف دفتر الملاحظات و المهمة من مساحة عمل Azure Databricks عن طريق تشغيل terraform destroy .

  8. تحقق من حذف دفتر الملاحظات والوظيفة: تحديث دفتر الملاحظات وصفحات الوظائف لعرض رسالة تعذر العثور على الموارد.

الخطوات التالية

  1. إنشاء مساحة عمل Azure Databricks.
  2. إدارة موارد مساحة العمل لمساحة عمل Azure Databricks.

استكشاف الأخطاء وإصلاحها

للحصول على دعم خاص ب Terraform، راجع أحدث موضوعات Terraform على موقع HashiCorp لمناقشة. للحصول على مشاكل خاصة بموفر Terraform Databricks راجع المشكلات في مستودع البيانات GitHub إعادة تشكيل البيانات/terraform-موفر البيانات.

الموارد الإضافية