الاتصال ب 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
فيما يلي أنماط تخزين مهملة:
- لم يعد Databricks يوصي بتحميل مواقع البيانات الخارجية إلى Databricks Filesystem. راجع تحميل تخزين كائن السحابة على Azure Databricks.
هام
- يتيح نظام ملفات S3A التخزين المؤقت بشكل افتراضي ويصدر الموارد على 'FileSystem.close()'. لتجنب مؤشرات الترابط الأخرى باستخدام مرجع إلى نظام الملفات المخزن مؤقتا بشكل غير صحيح، لا تستخدم بشكل صريح 'FileSystem.close().
- لا يزيل نظام ملفات S3A علامات الدليل عند إغلاق دفق الإخراج. يمكن للتطبيقات القديمة المستندة إلى إصدارات Hadoop التي لا تتضمن HADOOP-13230 إساءة تفسيرها كدلائل فارغة حتى إذا كانت هناك ملفات بداخلها.