ترحيل البيانات من Amazon DynamoDB إلى Oracle NoSQL Database Cloud Service

يوجد خياران لترحيل البيانات من Amazon DynamoDB إلى Oracle NoSQL Database Cloud Service باستخدام Oracle NoSQL Database Migrator:

  • استخدام مخطط قاعدة البيانات الافتراضي Oracle NoSQL
  • استخدام مخطط مخصص

يتطلب كلا الخيارين ملف JSON للتكوين يتضمن معلومات حول ملفات المصدر وقاعدة البيانات الهدف (مبدل). في كلا السيناريوهين، يكون المصدر عبارة عن ملفات Amazon DynamoDB بتنسيق JSON المخزنة في Amazon S3 Object Storage، بينما يكون الهدف هو قاعدة بيانات Oracle NoSQL Database Cloud Service. نظرًا لأن Amazon DynamoDB هي قاعدة بيانات بدون مخطط، نوصي بالترحيل باستخدام مخطط قاعدة بيانات Oracle NoSQL الافتراضي.

ترحيل البيانات باستخدام مخطط قاعدة البيانات الافتراضي Oracle NoSQL

عند الترحيل باستخدام المخطط الافتراضي، يتم تكوين جدول Oracle NoSQL Database Cloud Service جديد باستخدام عمودين أو ثلاثة أعمدة: مفتاح التقسيم ومفتاح الفرز (اختياري) والمستند. يتم ترحيل مفتاح التقسيم ومفتاح الفرز من جدول Amazon DynamoDB إلى جدول Oracle NoSQL Database Cloud Service. يتم تجميع أي سمات Amazon DynamoDB متبقية بتنسيق JSON في عمود المستند.

تصف الخطوات التالية كيفية ترحيل البيانات باستخدام مخطط قاعدة البيانات الافتراضي Oracle NoSQL.

  1. في وحدة تحكم AWS، أنشئ مفتاح وصول (في حالة عدم وجود مفتاح بالفعل) للمستخدم الذي سيصل إلى Amazon S3 Object Storage حيث يتم تصدير بيانات Amazon DynamoDB.
    نوصي بتكوين مستخدم جديد وتكوين مفتاح وصول جديد للمستخدم. لا تقم بإنشاء مفتاح وصول لمستخدم حساب Amazon الجذري. عند تكوين مفتاح وصول، يجب إدخال حالة استخدام. تأكد من استخدام حالة الاستخدام "التطبيق الذي يعمل خارج AWS: أنت تخطط لاستخدام مفتاح الوصول هذا للتصديق على أحمال العمل التي تعمل في مركز البيانات أو البنية التحتية الأخرى خارج AWS التي تحتاج إلى الوصول إلى موارد AWS". لمزيد من المعلومات حول تكوين مستخدم أو مفاتيح وصول، راجع قسم مراجعة الوثائق.
    لاحظ مفتاح الوصول ومفتاح الوصول السري. لن يتم عرض هذه مرة أخرى.
  2. قم بتكوين حزمة تخزين Amazon S3 إذا لم يكن هناك واحدة موجودة بالفعل. لاحظ اسم الفئة والمنطقة وعنوان URL للفئة.
    يرجى الاطلاع على "تكوين حزمة تخزين" في قسم مراجعة الوثائق لمزيد من المعلومات.
  3. حدد خدمة Amazon DynamoDB ثم حدد جدول Amazon DynamoDB المطلوب ترحيله إلى Oracle NoSQL Database Cloud Service.
    ضمن المعلومات العامة، لاحظ اسم ونوع مفتاح التقسيم وسمات مفتاح الفرز.
  4. انقر على تصدير إلى S3 من قائمة خدمة Amazon DynamoDB، ثم انقر على تصدير إلى S3.
  5. حدد اسم الجدول المطلوب تصديره، ثم حدد اسم حزمة التخزين حيث سيتم تصدير البيانات (اسم حزمة التخزين التي تم تكوينها في الخطوة 2).
  6. تكوين إعدادات التصدير:
    • حدد تصدير كامل.
    • تحديد DynamoDB JSON لصيغة الملف الذي تم تصديره.
    • حدد مفتاح Amazon S3 الافتراضي للتشفير.
    • تمكين PITR (استعادة نقطة زمنية). مطلوب لتصدير الجدول.
  7. انقر على تصدير.
    لاحظ معرف التصدير أثناء تقدم التصدير. يرجى الاطلاع على "DynamoDB تصدير البيانات إلى Amazon S3: كيف يعمل" لمزيد من المعلومات حول التصدير.
  8. بعد اكتمال التصدير، انتقل إلى وحدة تحكم AWS وحدد خدمة Amazon S3.
  9. حدد حزمة التخزين حيث تم تصدير البيانات.
    تم تكوين دليل جديد داخل حزمة التخزين بالاسم AWSDynamoDB/ExportID. يتم تكوين دليل فرعي باسم data في هذا الدليل يحتوي على سلسلة من ملفات JSON المضغوطة لـ GZIP مع بيانات جدول Amazon DynamoDB التي تم تصديرها. يرجى الاطلاع على "DynamoDB صيغة مخرجات تصدير الجدول" في قسم "مراجعة الوثائق" لمزيد من المعلومات حول ملفات JSON المنسقة.
  10. في وحدة تحكم OCI، قم بتكوين مفتاح API لمستخدم OCI الذي سيمتلك جدول Oracle NoSQL Database Cloud Service الهدف. يجب أن يكون لدى هذا المستخدم أذونات لتكوين جدول Oracle NoSQL Database Cloud Service وإدارته.
    لاحظ معرف OCID للمستخدم ومعرف OCID لمثيل قاعدة البيانات المؤجر وبصمة الإصبع ومعرف منطقة OCI. احفظ المفاتيح الخاصة والعامة في ملفات PEM. يتم استخدام مفتاح API هذا بواسطة Oracle NoSQL Database Migrator لتحميل ملفات JSON المنسقة من Amazon DynamoDB إلى الجدول.
  11. تكوين وعاء لجدول Oracle NoSQL Database Cloud Service في حالة عدم وجود وعاء بالفعل.
    لاحظ اسم الوعاء.
  12. تكوين مثيل حوسبة.
    سيقوم مثيل الحوسبة هذا بتشغيل برنامج مُرحّل Oracle NoSQL Database. مثيل حوسبة مجاني دائمًا (VM.Standard.E4). يعتبر الحقل المرن الذي يحتوي على وحدة OCPU واحدة وذاكرة 16 جيجابايت كافيًا وفعالاً من حيث التكلفة.
  13. تكوين مثيل الحوسبة باستخدام Oracle Linux 8.
  14. استخدم SSH لتسجيل الدخول كـ opc user إلى مثيل الحوسبة الجديد لتثبيت Java 11 كما يلي:
    [opc@oci-compute ~]$ sudo yum install java-11
  15. قم بتنزيل ثنائيات Oracle NoSQL Database Migrator 1.5.0 إذا لم تكن قد قمت بذلك بالفعل. راجع قسم مراجعة متطلبات البرنامج للحصول على التفاصيل.
  16. استخدم SCP لتحميل ملف ZIP لمُرحِّل Oracle NoSQL Database إلى الدليل الرئيسي opc user's في مثيل الحوسبة الجديد.
  17. استخدم SSH لتسجيل الدخول كـ opc user إلى مثيل الحوسبة لفك ضغط برنامج Oracle NoSQL Database Migrator الذي تم تنزيله في الخطوة السابقة. يتم فك ضغط محتويات الملف إلى دليل جديد بالاسم /home/opc/nosql-migrator-1.5.0. قم بفك ضغط الملف كما يلي:
    [opc@oci-compute ~]$ unzip V1033765-1.zip
    [opc@oci-compute ~]$ ls -l
    total 61964
    drwxr-xr-x. 3 opc opc 4096 Feb 23 20:32 nosql-migrator-1.5.0
    -rw-r--r--. 1 opc opc 63446080 Feb 14 19:26 V1033765-01.zip
    [opc@jc-bastion-phx migrator]$
  18. استخدم SCP لتحميل ملف PEM للمفتاح الخاص من الخطوة 10 إلى الدليل الرئيسي لـ opc user لمثيل الحوسبة حيث تم فك ضغط Oracle NoSQL Database Migrator في الخطوة السابقة.
  19. استخدم SSH لتسجيل الدخول كـ opc user إلى مثيل الحوسبة لتكوين ملف هوية OCI. تكوين ملف هوية OCI في دليل /home/opc/.oci بالمحتويات التالية:
    [opc@oci-compute ~]$ cat .oci/config 
    [DEFAULT]
    user=user_OCID_from_step_10
    fingerprint=fingerprint_from_step_10
    tenancy=tenancy_OCID_from_step_10
    region=region_ID_from_step_10
    key_file=full_path_to_private_key_PEM_file_uploaded_step_18
  20. كـ opc user في مثيل الحوسبة، قم بإنشاء ملفات تكوين وبيانات اعتماد AWS. أضف هذه الملفات في دليل /home/opc/.aws بالمحتويات التالية:
    [opc@oci-compute .aws]$ cat config
    [default]
    region=bucket_region_from_step_2
    [opc@oci-compute .aws]$ cat credentials
    [default]
    aws_access_key_id=aws_access_key_id_from_step_1
    aws_secret_access_key=aws_access_key_secret_from_step_1
  21. في مثيل الحوسبة، قم بتغيير الدليل إلى الدليل الفرعي nosql-migrator-1.5.0. قم بتكوين ملف JSON لتكوين الترحيل يشتمل على معلومات حول المصدر والهدف (المصارف) كما يلي:
    [opc@oci-compute nosql-migrator-1.5.0]$ cat migrator-config-dynamodb-bucket_custom-schema.json 
    {
     "source" : {
     "type" : "aws_s3",
     "format" : "dynamodb_json",
     "s3URL" : "https://bucket_name_from_step_2.s3.bucket_region_from_step_2.amazonaws.c
    om/AWSDynamoDB/export_ID/data",
     "credentials" : "/home/opc/.aws/credentials",
     "credentialsProfile" : "default"
     },
     "sink" : {
     "type" : "nosqldb_cloud",
     "endpoint" : "https://nosql.oci_region_ID_from_step_11.oci.oraclecloud.com",
     "table" : "new_Oracle_NoSQL_Database_Cloud_Service_table_name",
     "schemaInfo" : {
     "defaultSchema" : true,
     "DDBPartitionKey" : "partition_key_name_from_step_3:type_from_step_3",
     "DDBSortKey" : "sort_key_name_from_step_3:type_from_step_3",
     "readUnits" : 50,
     "writeUnits" : 50,
     "storageSize" : 25
     },
     "compartment" : "compartment_name_from_step_11",
     "includeTTL" : false,
     "credentials" : "/home/opc/.oci/config",
     "credentialsProfile" : "DEFAULT",
     "writeUnitsPercent" : 90,
     "overwrite" : true,
     "requestTimeoutMs" : 5000
     },
     "abortOnError" : false,
     "migratorVersion" : "1.5.0"
    }
    [opc@oci-compute nosql-migrator-1.5.0]$
  22. قم بتشغيل ترحيل البيانات باستخدام Oracle NoSQL Database Migrator وملف JSON لتكوين الترحيل الذي تم تكوينه في الخطوة السابقة كما يلي:
    [opc@oci-compute nosql-migrator-1.5.0]$ ./runMigrator --config ./migrator-config-dynamo-bucket_def_schema.json
    The migration job will create a new Oracle NoSQL Database Migrator table using the default schema, then read the Amazon DynamoDB formatted JSON file(s) from the Amazon S3 Object Storage Bucket, to then import the data from those files to the newly created table.

ترحيل البيانات باستخدام مخطط قاعدة بيانات مخصص

عند استخدام مخطط قاعدة بيانات مخصص للترحيل، يجب تعريف جدول Oracle NoSQL Database Cloud Service الجديد بشكل مشابه لمخطط جدول Amazon DynamoDB، باستخدام لغة تعريف بيانات الجدول (DDL) في Oracle NoSQL Database Cloud Service. يجب أن تكون أسماء السمات وأنواعها للجدول الجديد مماثلة لأسماء السمات وأنواعها في جدول Amazon DynamoDB. يشتمل مفتاح التقسيم ومفتاح الفرز على حد 2048 و1024 بايت على التوالي، بينما في Oracle NoSQL Database Cloud Service تقتصر هذه المفاتيح على 64 بايت.

  1. في وحدة تحكم AWS، أنشئ مفتاح وصول (في حالة عدم وجود مفتاح بالفعل) للمستخدم الذي سيصل إلى Amazon S3 Object Storage حيث يتم تصدير بيانات Amazon DynamoDB.
    نوصي بتكوين مستخدم جديد وتكوين مفتاح وصول جديد للمستخدم. لا تقم بإنشاء مفتاح وصول لمستخدم حساب Amazon الجذري. عند تكوين مفتاح وصول، يجب إدخال حالة استخدام. تأكد من استخدام حالة الاستخدام "التطبيق الذي يعمل خارج AWS: أنت تخطط لاستخدام مفتاح الوصول هذا للتصديق على أحمال العمل التي تعمل في مركز البيانات أو البنية التحتية الأخرى خارج AWS التي تحتاج إلى الوصول إلى موارد AWS". لمزيد من المعلومات حول تكوين مستخدم أو مفاتيح وصول، ارجع إلى قسم مراجعة الوثائق.
    لاحظ مفتاح الوصول الذي تم إنشاؤه ومفتاح الوصول السري، حيث لن يتم عرضهما مرة أخرى.
  2. قم بتكوين حزمة تخزين Amazon S3 إذا لم يكن هناك واحدة موجودة بالفعل. لاحظ اسم الفئة والمنطقة وعنوان URL للفئة.
    يرجى الاطلاع على "تكوين حزمة تخزين" في قسم مراجعة الوثائق لمزيد من المعلومات.
  3. حدد خدمة Amazon DynamoDB ثم حدد جدول Amazon DynamoDB المطلوب ترحيله إلى Oracle NoSQL Database Cloud Service.
    ضمن المعلومات العامة، لاحظ اسم ونوع مفتاح التقسيم وسمات مفتاح الفرز. لاحظ السمات الأخرى في الجدول وأنواعها.
  4. انقر على تصدير إلى S3 من قائمة خدمة Amazon DynamoDB، ثم انقر على تصدير إلى S3.
  5. حدد اسم الجدول المطلوب تصديره، ثم حدد اسم حزمة التخزين حيث سيتم تصدير البيانات (اسم حزمة التخزين التي تم تكوينها في الخطوة 2).
  6. تكوين إعدادات التصدير:
    • حدد تصدير كامل.
    • تحديد DynamoDB JSON لصيغة الملف الذي تم تصديره.
    • حدد مفتاح Amazon S3 الافتراضي للتشفير.
    • تمكين PITR (استعادة نقطة زمنية). مطلوب لتصدير الجدول.
  7. انقر على تصدير.
    لاحظ معرف التصدير أثناء تقدم التصدير. يرجى الاطلاع على "DynamoDB تصدير البيانات إلى Amazon S3: كيف يعمل" لمزيد من المعلومات حول التصدير.
  8. بعد اكتمال التصدير، انتقل إلى وحدة تحكم AWS وحدد خدمة Amazon S3.
  9. حدد حزمة التخزين حيث تم تصدير البيانات.
    تم تكوين دليل جديد داخل حزمة التخزين بالاسم AWSDynamoDB/ExportID. يتم تكوين دليل فرعي باسم data في هذا الدليل يحتوي على سلسلة من ملفات JSON المضغوطة لـ GZIP مع بيانات جدول Amazon DynamoDB التي تم تصديرها. يرجى الاطلاع على "DynamoDB صيغة مخرجات تصدير الجدول" في قسم "مراجعة الوثائق" لمزيد من المعلومات حول ملفات JSON المنسقة.
  10. في وحدة تحكم OCI، قم بتكوين مفتاح API لمستخدم OCI الذي سيمتلك جدول Oracle NoSQL Database Cloud Service الهدف. يجب أن يكون لدى هذا المستخدم أذونات لتكوين جدول Oracle NoSQL Database Cloud Service وإدارته.
    لاحظ معرف OCID للمستخدم ومعرف OCID لمثيل قاعدة البيانات المؤجر وبصمة الإصبع ومعرف منطقة OCI. احفظ المفاتيح الخاصة والعامة في ملفات PEM. يتم استخدام مفتاح API هذا بواسطة Oracle NoSQL Database Migrator لتحميل ملفات JSON المنسقة من Amazon DynamoDB إلى الجدول.
  11. تكوين وعاء لجدول Oracle NoSQL Database Cloud Service في حالة عدم وجود وعاء بالفعل.
    لاحظ اسم الوعاء.
  12. تكوين مثيل حوسبة.
    سيقوم مثيل الحوسبة هذا بتشغيل برنامج مُرحّل Oracle NoSQL Database. مثيل حوسبة مجاني دائمًا (VM.Standard.E4). يعتبر الحقل المرن الذي يحتوي على وحدة OCPU واحدة وذاكرة 16 جيجابايت كافيًا وفعالاً من حيث التكلفة.
  13. تكوين مثيل الحوسبة باستخدام Oracle Linux 8.
  14. استخدم SSH لتسجيل الدخول كـ opc user إلى مثيل الحوسبة الجديد لتثبيت Java 11 كما يلي:
    [opc@oci-compute ~]$ sudo yum install java-11
  15. قم بتنزيل ثنائيات Oracle NoSQL Database Migrator 1.5.0 إذا لم تكن قد قمت بذلك بالفعل. راجع قسم مراجعة متطلبات البرنامج للحصول على التفاصيل.
  16. استخدم SCP لتحميل ملف ZIP لمُرحِّل Oracle NoSQL Database إلى الدليل الرئيسي opc user's في مثيل الحوسبة الجديد.
  17. استخدم SSH لتسجيل الدخول كـ opc user إلى مثيل الحوسبة لفك ضغط برنامج Oracle NoSQL Database Migrator الذي تم تنزيله في الخطوة السابقة. يتم فك ضغط محتويات الملف إلى دليل جديد بالاسم /home/opc/nosql-migrator-1.5.0. قم بفك ضغط الملف كما يلي:
    [opc@oci-compute ~]$ unzip V1033765-1.zip
    [opc@oci-compute ~]$ ls -l
    total 61964
    drwxr-xr-x. 3 opc opc 4096 Feb 23 20:32 nosql-migrator-1.5.0
    -rw-r--r--. 1 opc opc 63446080 Feb 14 19:26 V1033765-01.zip
    [opc@jc-bastion-phx migrator]$
  18. استخدم SCP لتحميل ملف PEM للمفتاح الخاص من الخطوة 10 إلى الدليل الرئيسي لـ opc user لمثيل الحوسبة حيث تم فك ضغط Oracle NoSQL Database Migrator في الخطوة السابقة.
  19. استخدم SSH لتسجيل الدخول كـ opc user إلى مثيل الحوسبة لتكوين ملف هوية OCI. تكوين ملف هوية OCI في دليل /home/opc/.oci بالمحتويات التالية:
    [opc@oci-compute ~]$ cat .oci/config 
    [DEFAULT]
    user=user_OCID_from_step_10
    fingerprint=fingerprint_from_step_10
    tenancy=tenancy_OCID_from_step_10
    region=region_ID_from_step_10
    key_file=full_path_to_private_key_PEM_file_uploaded_step_18
  20. كـ opc user في مثيل الحوسبة، قم بإنشاء ملفات تكوين وبيانات اعتماد AWS. أضف هذه الملفات في دليل /home/opc/.aws بالمحتويات التالية:
    [opc@oci-compute .aws]$ cat config
    [default]
    region=bucket_region_from_step_2
    [opc@oci-compute .aws]$ cat credentials
    [default]
    aws_access_key_id=aws_access_key_id_from_step_1
    aws_secret_access_key=aws_access_key_secret_from_step_1
  21. قم بتغيير الدليل إلى الدليل الفرعي nosql-migrator-1.5.0، ثم قم بتكوين جملة Oracle NoSQL Database Cloud Service Data Definition Language (DDL) لإنشاء جدول Oracle NoSQL Database Cloud Service جديد يشتمل على سمات مماثلة لتلك التي تم جمعها من جدول Amazon DynamoDB في الخطوة 3. إليك مثال على إنشاء جملة DDL جديدة لجدول Oracle NoSQL Database Cloud Service:
    [opc@oci-compute nosql-migrator-1.5.0]$ cat /home/opc/table_name.ddl 
    CREATE TABLE IF NOT EXISTS table_name (partition_key_name_from_step_3 
    type,sort_key_name_from_step_3 type, attribute_1 type, attribute_2 
    type, PRIMARY 
    KEY(SHARD(partition_key_name_from_step_3),sort_key_name_from_step_3))
  22. في مثيل الحوسبة، قم بتغيير الدليل إلى الدليل الفرعي nosql-migrator-1.5.0. قم بتكوين ملف JSON لتكوين الترحيل يشتمل على معلومات حول المصدر والهدف (المصارف) كما يلي:
    [opc@oci-compute nosql-migrator-1.5.0]$ cat migrator-config-dynamodb-bucket_custom-schema.json 
    {
      "source": {
        "type": "aws_s3",
        "format": "dynamodb_json",
        "s3URL": "https://bucket_name_from_step_2.s3.bucket_region_from_step_2.amazonaws.com/AWSDynamoDB/export_ID_from_step_7/data",
        "credentials": "/home/opc/.aws/credentials",
        "credentialsProfile": "default"
      },
      "sink": {
        "type": "nosqldb_cloud",
        "endpoint": "https://nosql.oci_region_ID_from_step_10.oci.oraclecloud.com",
        "table": "new_Oracle_NoSQL_Database_Cloud_Service_table_name",
        "schemaInfo": {
          "schemaPath": "/home/opc/nosql-migrator-1.5.0/table_name.ddl_from_step_21",
          "readUnits": 50,
          "writeUnits": 50,
          "storageSize": 25
        },
        "compartment": "compartment_name_from_step_11",
        "includeTTL": false,
        "credentials": "/home/opc/.oci/config",
        "credentialsProfile": "DEFAULT",
        "writeUnitsPercent": 90,
        "overwrite": true,
        "requestTimeoutMs": 5000
      },
      "abortOnError": false,
      "migratorVersion": "1.5.0"
    }
  23. قم بتشغيل ترحيل البيانات باستخدام Oracle NoSQL Database Migrator وملف JSON لتكوين الترحيل الذي تم تكوينه في الخطوة السابقة كما يلي:
    [opc@oci-compute nosql-migrator-1.5.0]$ ./runMigrator --config ./migrator-config-dynamo-bucket_custom_schema.json
    ستقوم مهمة الترحيل بتكوين جدول Oracle NoSQL Database Migrator جديد باستخدام مخطط قاعدة البيانات المخصص DDL المحدد في الخطوة 21، ثم ستقرأ ملف (ملفات) JSON المنسقة من Amazon DynamoDB من حزمة تخزين كائنات Amazon S3، لاستيراد البيانات من هذه الملفات إلى الجدول الذي تم تكوينه حديثًا.