مشاركة عبر


الاتصال ب Amazon S3

توضح هذه المقالة كيفية الاتصال ب AWS S3 من Azure Databricks.

الوصول إلى مستودعات S3 باستخدام معرفات URI ومفاتيح AWS

يمكنك تعيين خصائص Spark لتكوين مفاتيح AWS للوصول إلى S3.

توصي Databricks باستخدام النطاقات السرية لتخزين جميع بيانات الاعتماد. يمكنك منح المستخدمين وكيانات الخدمة والمجموعات في مساحة العمل حق الوصول لقراءة النطاق السري. وهذا يحمي مفتاح AWS مع السماح للمستخدمين بالوصول إلى S3. لإنشاء نطاق سري، راجع إدارة النطاقات السرية.

يمكن تحديد نطاق بيانات الاعتماد إما إلى نظام مجموعة أو دفتر ملاحظات. استخدم كل من التحكم في الوصول إلى نظام المجموعة والتحكم في الوصول إلى دفتر الملاحظات معا لحماية الوصول إلى S3. راجع حساب الأذونات والتعاون باستخدام دفاتر ملاحظات Databricks.

لتعيين خصائص Spark، استخدم القصاصة البرمجية التالية في تكوين Spark لنظام مجموعة لتعيين مفاتيح AWS المخزنة في نطاقات سرية كمتغيرات البيئة:

AWS_SECRET_ACCESS_KEY={{secrets/scope/aws_secret_access_key}}
AWS_ACCESS_KEY_ID={{secrets/scope/aws_access_key_id}}

يمكنك بعد ذلك القراءة من S3 باستخدام الأوامر التالية:

aws_bucket_name = "my-s3-bucket"

df = spark.read.load(f"s3a://{aws_bucket_name}/flowers/delta/")
display(df)
dbutils.fs.ls(f"s3a://{aws_bucket_name}/")

الوصول إلى S3 مع خيارات Hadoop مفتوحة المصدر

يدعم Databricks Runtime تكوين نظام ملفات S3A باستخدام خيارات Hadoop مفتوحة المصدر. يمكنك تكوين خصائص عمومية وخصائص لكل مستودع.

التكوين العمومي

# Global S3 configuration
spark.hadoop.fs.s3a.aws.credentials.provider <aws-credentials-provider-class>
spark.hadoop.fs.s3a.endpoint <aws-endpoint>
spark.hadoop.fs.s3a.server-side-encryption-algorithm SSE-KMS

تكوين كل دلو

يمكنك تكوين خصائص كل دلو باستخدام بناء الجملة spark.hadoop.fs.s3a.bucket.<bucket-name>.<configuration-key>. يتيح لك هذا إعداد مستودعات ببيانات اعتماد ونقاط نهاية مختلفة وما إلى ذلك.

على سبيل المثال، بالإضافة إلى إعدادات S3 العمومية، يمكنك تكوين كل مستودع بشكل فردي باستخدام المفاتيح التالية:

# Set up authentication and endpoint for a specific bucket
spark.hadoop.fs.s3a.bucket.<bucket-name>.aws.credentials.provider <aws-credentials-provider-class>
spark.hadoop.fs.s3a.bucket.<bucket-name>.endpoint <aws-endpoint>

# Configure a different KMS encryption key for a specific bucket
spark.hadoop.fs.s3a.bucket.<bucket-name>.server-side-encryption.key <aws-kms-encryption-key>

أنماط مهملة لتخزين البيانات والوصول إليها من Azure Databricks

فيما يلي أنماط تخزين مهملة:

هام

  • يتيح نظام ملفات S3A التخزين المؤقت بشكل افتراضي ويصدر الموارد على 'FileSystem.close()'. لتجنب مؤشرات الترابط الأخرى باستخدام مرجع إلى نظام الملفات المخزن مؤقتا بشكل غير صحيح، لا تستخدم بشكل صريح 'FileSystem.close().
  • لا يزيل نظام ملفات S3A علامات الدليل عند إغلاق دفق الإخراج. يمكن للتطبيقات القديمة المستندة إلى إصدارات Hadoop التي لا تتضمن HADOOP-13230 إساءة تفسيرها كدلائل فارغة حتى إذا كانت هناك ملفات بداخلها.