MongoDB Academy · Pelajaran

Memetakan Sumber S3 dan Atlas kepada Ruang Nama Maya

Pelajar akan mengkonfigurasi tika pangkalan data bersekutu yang memetakan awalan S3 dan koleksi Atlas kepada pangkalan data serta koleksi maya.

Pelajaran 2 daripada 413 langkah

Memetakan Sumber S3 dan Atlas kepada Ruang Nama Maya ialah pelajaran MongoDB Academy percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran MongoDB Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus MongoDB Academy merangkumi sejumlah 4 pelajaran.

Konfigurasi Storan: Konsep Teras

Dalam Atlas Data Federation, konfigurasi storan ialah dokumen JSON yang mentakrifkan dua perkara: stor (tempat data mentah berada — kelompok S3 dan kluster Atlas) serta pangkalan data/koleksi (ruang nama maya yang disoal oleh aplikasi). Pemetaan antara kedua-duanya memberitahu enjin pertanyaan stor yang perlu dibaca apabila anda menyoal koleksi maya.

Mentakrifkan Gedung: Baldi S3

Takrif gedung S3 menamakan gedung, menentukan rantau AWS dan nama baldi, serta mengaitkannya dengan kelayakan IAM (melalui peranan akses penyedia awan Atlas). Anda boleh menetapkan delimiter dan prefix secara pilihan untuk mengehadkan gedung kepada awalan S3 tertentu. Satu tika bersekutu boleh mempunyai beberapa gedung yang menunjuk kepada baldi atau rantau yang berbeza.

// S3 store definition in storage config
{
  'stores': [{
    'name': 's3ArchiveStore',
    'provider': 'S3',
    'region': 'us-east-1',
    'bucket': 'mycompany-analytics-archive',
    'delimiter': '/',
    'additionalStorageClasses': ['STANDARD_IA', 'GLACIER']
  }]
}

Mentakrifkan Gedung: Kluster Atlas

Gedung kluster Atlas menghubungkan tika bersekutu kepada set replika Atlas secara langsung. Anda merujuknya menggunakan nama kluster dalam projek Atlas yang sama. Ini membolehkan anda menulis saluran paip yang membaca daripada collection operasi secara langsung dalam kluster bersama-sama data S3 yang diarkibkan, lalu membolehkan pertanyaan hibrid tanpa penduaan data.

// Atlas cluster store definition
{
  'stores': [{
    'name': 'liveClusterStore',
    'provider': 'atlas',
    'clusterName': 'MyProdCluster',
    'projectId': 'proj123abc'
  }]
}

Memetakan Collection kepada Laluan S3

Collection maya dipetakan kepada gedung dan corak laluan. Laluan itu ialah corak glob yang memberitahu Data Federation objek S3 yang tergolong dalam collection ini. Corak tersebut boleh mengandungi segmen laluan harfiah atau kad bebas. Enjin pertanyaan akan mengimbas semua objek yang sepadan apabila collection itu ditanya.

// Map virtual collection to S3 path pattern
{
  'databases': [{
    'name': 'analytics',
    'collections': [{
      'name': 'events_2024',
      'dataSources': [{
        'storeName': 's3ArchiveStore',
        'path': '/data/events/2024/*'
      }]
    }]
  }]
}

Atribut Pembahagian dalam Laluan

Atribut pembahagian mengekodkan metadata secara langsung dalam laluan S3 menggunakan sintaks pendakap kerinting: {year int}/{month int}/{day int}/. Apabila pertanyaan menapis berdasarkan year, month atau day, Data Federation memangkas — melangkau — semua objek S3 yang laluannya tidak sepadan dengan nilai penapis. Ini serupa dengan pembahagian Hive dan mengurangkan bait yang diimbas dengan ketara.

// Path with partition attributes (Data Federation parses the directory structure)
{
  'dataSources': [{
    'storeName': 's3ArchiveStore',
    'path': '/events/{year int}/{month int}/{day int}/*.json'
  }]
}

// Query that uses partition pruning:
db.events.find({ year: 2025, month: 3 })
// Data Federation only reads /events/2025/3/ prefix

Memetakan Berbilang Sumber kepada Satu Collection

Satu collection maya boleh dipetakan kepada berbilang sumber data — contohnya, arkib S3 serta collection Atlas secara langsung. Pertanyaan menggabungkan hasil daripada semua sumber secara telus. Ini berguna untuk collection “sejarah penuh” apabila data terkini berada dalam Atlas dan data lama diarkibkan dalam S3, namun aplikasi menanya kedua-duanya melalui satu ruang nama.

{
  'collections': [{
    'name': 'orders',
    'dataSources': [
      {
        'storeName': 'liveClusterStore',
        'database': 'mydb',
        'collection': 'orders'           // live Atlas data
      },
      {
        'storeName': 's3ArchiveStore',
        'path': '/orders/archive/*.parquet'  // S3 archive
      }
    ]
  }]
}

Collection Kad Bebas: Skema semasa Bacaan

Anda boleh mentakrifkan collection kad bebas (*) yang memetakan semua fail dalam awalan S3 kepada collection maya yang dinamakan secara dinamik. Apabila anda menanya nama collection yang sepadan dengan corak kad bebas, Data Federation memperoleh laluan daripada nama collection tersebut. Ini berguna untuk tasik data yang dibahagikan, apabila anda mempunyai ribuan “jadual” berasaskan awalan dan tidak dapat menyenaraikan semuanya dalam konfigurasi.

// Wildcard: each year-month subdirectory becomes a virtual collection
{
  'collections': [{
    'name': '*',
    'dataSources': [{
      'storeName': 's3ArchiveStore',
      'path': '/data/{collectionName string}/'
    }]
  }]
}

// Now query any 'table' by name:
db['orders-2024-01'].find({})
db['events-2025-03'].aggregate([...])

Mengemas Kini Konfigurasi Storan

Anda boleh mengemas kini konfigurasi storan pada bila-bila masa melalui UI Atlas, API Pentadbir Atlas atau mongosh. Perubahan berkuat kuasa serta-merta — anda tidak perlu memulakan semula tika bersekutu. Ini membolehkan anda menambah laluan S3 baharu, memetakan semula collection kepada gedung yang berbeza atau menambah sumber kluster Atlas baharu tanpa sebarang masa henti.

// Update storage config via Admin API
// PATCH /api/atlas/v1.0/groups/{groupId}/dataFederation/{name}
// Body: updated storage config JSON

// Or via mongosh using the Atlas admin command
db.adminCommand({
  setQueryableEncryptionBackend: 1,
  dataFederationConfig: { /* new config */ }
})

Menguji Pemetaan Anda

Selepas mentakrifkan konfigurasi storan, ujinya dengan menyambung kepada tika bersekutu menggunakan mongosh dan menyenaraikan pangkalan data serta collection. Gunakan show dbs, show collections dan find() yang mudah untuk mengesahkan bahawa pemetaan adalah betul. Semak bahawa fail yang betul sedang dibaca dengan memeriksa beberapa dokumen pertama yang dikembalikan.

// Connect to federated instance and test
// mongosh 'mongodb+srv://federated.mongodb.net/'
show dbs                // lists virtual databases
use analytics
show collections        // lists virtual collections
db.events_2024.findOne()
// Verify the document shape matches your S3 files

Peranan IAM berbanding Pengesahan Kunci Akses untuk S3

Atlas Data Federation mengakses S3 melalui AWS IAM. Pendekatan yang disyorkan ialah menggunakan peranan IAM yang diwakilkan kepada akaun AWS Atlas (Akses Penyedia Awan Atlas), bukannya menyimpan pasangan kunci akses dan rahsia. Peranan tersebut diberikan akses baca kepada baldi S3 melalui dasar IAM, dan Atlas mengambil alih peranan itu apabila melaksanakan pertanyaan. Ini lebih selamat berbanding kunci akses yang sah untuk tempoh panjang.

// Minimal S3 IAM policy for Data Federation read access
// {
//   'Version': '2012-10-17',
//   'Statement': [{
//     'Effect': 'Allow',
//     'Action': ['s3:GetObject', 's3:ListBucket'],
//     'Resource': [
//       'arn:aws:s3:::mycompany-analytics-archive',
//       'arn:aws:s3:::mycompany-analytics-archive/*'
//     ]
//   }]
// }

Pemberian Alias Ruang Nama dan Berbilang Paparan

Anda boleh mencipta beberapa collection maya yang menunjuk kepada awalan S3 asas yang sama dengan corak laluan yang berbeza — secara berkesan mencipta berbilang paparan bagi data yang sama. Contohnya, satu collection mendedahkan semua data, satu lagi hanya mendedahkan pembahagian tahun semasa, dan collection ketiga hanya memetakan fail Parquet sambil mengecualikan JSON. Ini membolehkan anda mengawal perkara yang dilihat oleh setiap peringkat aplikasi.

Semakan Pantas

Uji pemahaman anda tentang konsep MongoDB & pangkalan data NoSQL daripada pelajaran ini.

Imbas Kembali Pelajaran

Dalam pelajaran ini, anda telah mempelajari bahawa: gedung menentukan lokasi data mentah (baldi S3 atau kluster Atlas), manakala pangkalan data maya/collection menentukan ruang nama yang ditanya oleh aplikasi, atribut pembahagian dalam laluan S3 membolehkan pemangkasan yang mengurangkan bait yang diimbas dengan ketara, dan satu collection maya boleh menggabungkan data daripada beberapa gedung secara serentak. Seterusnya, kita akan menulis saluran paip pengagregatan merentas sumber.

Percuma untuk bermula

Pelajari JavaScript dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
30
Pelajaran
120

Soalan Lazim

Adakah pelajaran “Memetakan Sumber S3 dan Atlas kepada Ruang Nama Maya” percuma?

Ya — teks penuh “Memetakan Sumber S3 dan Atlas kepada Ruang Nama Maya” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus MongoDB Academy, tingkat taraf kepada CoddyKit PRO. Kursus MongoDB Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Memetakan Sumber S3 dan Atlas kepada Ruang Nama Maya”?

Pelajar akan mengkonfigurasi tika pangkalan data bersekutu yang memetakan awalan S3 dan koleksi Atlas kepada pangkalan data serta koleksi maya. Anda berlatih MongoDB Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan MongoDB Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran MongoDB Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.

Berapa lamakah pelajaran “Memetakan Sumber S3 dan Atlas kepada Ruang Nama Maya” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran MongoDB Academy ini?

Ya. Setiap pelajaran MongoDB Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Apakah Persekutuan Data Atlas?
  2. Memetakan Sumber S3 dan Atlas kepada Ruang Nama Maya
  3. Menjalankan Saluran Paip Agregasi Merentas Sumber
  4. Membahagi Data S3 untuk Prestasi Pertanyaan
← Kembali ke MongoDB Academy