Pilih preferensi cookie Anda

Kami menggunakan cookie penting serta alat serupa yang diperlukan untuk menyediakan situs dan layanan. Kami menggunakan cookie performa untuk mengumpulkan statistik anonim sehingga kami dapat memahami cara pelanggan menggunakan situs dan melakukan perbaikan. Cookie penting tidak dapat dinonaktifkan, tetapi Anda dapat mengklik “Kustom” atau “Tolak” untuk menolak cookie performa.

Jika Anda setuju, AWS dan pihak ketiga yang disetujui juga akan menggunakan cookie untuk menyediakan fitur situs yang berguna, mengingat preferensi Anda, dan menampilkan konten yang relevan, termasuk iklan yang relevan. Untuk menerima atau menolak semua cookie yang tidak penting, klik “Terima” atau “Tolak”. Untuk membuat pilihan yang lebih detail, klik “Kustomisasi”.

Pembuatan skema otomatis JDBC

Mode fokus
Pembuatan skema otomatis JDBC - Amazon DocumentDB

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Amazon DocumentDB adalah database dokumen dan karena itu tidak memiliki konsep tabel dan skema. Namun, alat BI seperti Tableau akan mengharapkan database yang terhubung untuk menyajikan skema. Secara khusus, ketika koneksi driver JDBC perlu mendapatkan skema untuk koleksi dalam database, itu akan polling untuk semua koleksi dalam database. Pengemudi akan menentukan apakah versi skema yang di-cache untuk koleksi itu sudah ada. Jika versi cache tidak ada, itu akan mengambil sampel koleksi untuk dokumen dan membuat skema berdasarkan perilaku berikut.

Keterbatasan pembuatan skema

Driver DocumentDB JDBC memberlakukan batas pada panjang pengidentifikasi pada 128 karakter. Generator skema dapat memotong panjang pengidentifikasi yang dihasilkan (nama tabel dan nama kolom) untuk memastikan mereka sesuai dengan batas itu.

Opsi metode pemindaian

Perilaku pengambilan sampel dapat dimodifikasi menggunakan string koneksi atau opsi sumber data.

  • ScanMethod= <option>

    • acak - (default) - Dokumen sampel dikembalikan dalam urutan acak.

    • IDForward - Contoh dokumen dikembalikan dalam urutan id.

    • IDReverse - Contoh dokumen dikembalikan dalam urutan terbalik id.

    • semua - Sampel semua dokumen dalam koleksi.

  • ScanLimit= <n>- Jumlah dokumen untuk sampel. Nilai harus berupa bilangan bulat positif. Nilai default adalah 1000. Jika ScanMethod diatur ke semua, opsi ini diabaikan.

Jenis data Amazon DocumentDB

Server Amazon DocumentDB mendukung sejumlah tipe data MongoDB. Di bawah ini adalah tipe data yang didukung, dan tipe data JDBC yang terkait.

Tipe Data MongoDB Didukung di DocumentDB Tipe Data JDBC
Data Biner Ya VARBINARY
Boolean Ya BOOLEAN
Ganda Ya DOUBLE
Bilangan Bulat 32-bit Ya INTEGER
Integer 64-bit Ya BIGINT
Tali Ya VARCHAR
ObjectId Ya VARCHAR
Tanggal Ya TIMESTAMP
Null Ya VARCHAR
Ekspresi reguler Ya VARCHAR
Stempel Waktu Ya VARCHAR
MinKey Ya VARCHAR
MaxKey Ya VARCHAR
Objek Ya meja virtual
Array Ya meja virtual
Decimal128 Tidak DECIMAL
JavaScript Tidak VARCHAR
JavaScript (dengan ruang lingkup) Tidak VARCHAR
Tidak terdefinisi Tidak VARCHAR
Simbol Tidak VARCHAR
DBPointer (4.0+) Tidak VARCHAR

Memetakan bidang dokumen skalar

Saat memindai sampel dokumen dari koleksi, driver JDBC akan membuat satu atau lebih skema untuk mewakili sampel dalam koleksi. Secara umum, bidang skalar dalam dokumen memetakan ke kolom dalam skema tabel. Misalnya, dalam kumpulan bernama tim, dan satu dokumen{ "_id" : "112233", "name" : "Alastair", "age": 25 }, ini akan dipetakan ke skema:

Nama Tabel Nama kolom Tipe data Kunci
team id tim VARCHAR PK
team name VARCHAR
team usia INTEGER

Promosi konflik tipe data

Saat memindai dokumen sampel, ada kemungkinan bahwa tipe data untuk bidang tidak konsisten dari dokumen ke dokumen. Dalam hal ini, driver JDBC akan mempromosikan tipe data JDBC ke tipe data umum yang akan sesuai dengan semua tipe data dari dokumen sampel.

Sebagai Contoh:

{ "_id" : "112233", "name" : "Alastair", "age" : 25 } { "_id" : "112244", "name" : "Benjamin", "age" : "32" }

Bidang usia adalah tipe 32-bit integer dalam dokumen pertama tetapi string dalam dokumen kedua. Di sini driver JDBC akan mempromosikan tipe data JDBC ke VARCHAR untuk menangani salah satu tipe data saat ditemui.

Nama Tabel Nama kolom Tipe data Kunci
team id tim VARCHAR PK
team name VARCHAR
team usia VARCHAR

Promosi konflik skalar-skalar

Diagram berikut menunjukkan cara konflik tipe data skalar-skalar diselesaikan.

Diagram hierarki yang menunjukkan bagaimana tipe data yang saling bertentangan akan dipromosikan ketika mereka tidak konsisten dalam dokumen.

Promosi konflik tipe skalar-kompleks

Seperti konflik tipe skalar-skalar, bidang yang sama dalam dokumen yang berbeda dapat memiliki tipe data yang bertentangan antara kompleks (array dan objek) dan skalar (integer, boolean, dll.). Semua konflik ini diselesaikan (dipromosikan) ke VARCHAR untuk bidang tersebut. Dalam hal ini, array dan data objek dikembalikan sebagai representasi JSON.

Array Tertanam - Contoh Konflik Bidang String:

{ "_id":"112233", "name":"George Jackson", "subscriptions":[ "Vogue", "People", "USA Today" ] } { "_id":"112244", "name":"Joan Starr", "subscriptions":1 }

Contoh di atas memetakan skema untuk tabel customer2:

Nama Tabel Nama kolom Tipe data Kunci
pelanggan2 id pelanggan2 VARCHAR PK
pelanggan2 name VARCHAR
pelanggan2 langganan VARCHAR

dan tabel virtual customer1_subscriptions:

Nama Tabel Nama kolom Tipe data Kunci
customer1_subscriptions id pelanggan1 VARCHAR PK/FK
customer1_subscriptions berlangganan_index_lvl0 BIGINT PK
customer1_subscriptions nilai VARCHAR
customer_address kota VARCHAR
customer_address region VARCHAR
customer_address negeri VARCHAR
customer_address code VARCHAR

Penanganan tipe data objek dan array

Sejauh ini, kami hanya menjelaskan bagaimana tipe data skalar dipetakan. Jenis data Object dan Array (saat ini) dipetakan ke tabel virtual. Driver JDBC akan membuat tabel virtual untuk mewakili bidang objek atau array dalam dokumen. Nama tabel virtual yang dipetakan akan menggabungkan nama koleksi asli diikuti dengan nama bidang yang dipisahkan oleh karakter garis bawah (“_”).

Kunci utama tabel dasar (“_id”) mengambil nama baru di tabel virtual baru dan disediakan sebagai kunci asing ke tabel dasar terkait.

Untuk bidang tipe array tertanam, kolom indeks dihasilkan untuk mewakili indeks ke dalam array di setiap tingkat array.

Contoh bidang objek tertanam

Untuk bidang objek dalam dokumen, pemetaan ke tabel virtual dibuat oleh driver JDBC.

{ "Collection: customer", "_id":"112233", "name":"George Jackson", "address":{ "address1":"123 Avenue Way", "address2":"Apt. 5", "city":"Hollywood", "region":"California", "country":"USA", "code":"90210" } }

Contoh di atas memetakan skema untuk tabel pelanggan:

Nama Tabel Nama kolom Tipe data Kunci
pelanggan id pelanggan VARCHAR PK
pelanggan name VARCHAR

dan tabel virtual customer_address:

Nama Tabel Nama kolom Tipe data Kunci
customer_address id pelanggan VARCHAR PK/FK
customer_address alamat1 VARCHAR
customer_address alamat2 VARCHAR
customer_address kota VARCHAR
customer_address region VARCHAR
customer_address negeri VARCHAR
customer_address code VARCHAR

Contoh bidang array tertanam

Untuk bidang array dalam dokumen, pemetaan ke tabel virtual juga dibuat oleh driver JDBC.

{ "Collection: customer1", "_id":"112233", "name":"George Jackson", "subscriptions":[ "Vogue", "People", "USA Today" ] }

Contoh di atas memetakan skema untuk tabel pelanggan1:

Nama Tabel Nama kolom Tipe data Kunci
pelanggan1 id pelanggan1 VARCHAR PK
pelanggan1 name VARCHAR

dan tabel virtual customer1_subscriptions:

Nama Tabel Nama kolom Tipe data Kunci
customer1_subscriptions id pelanggan1 VARCHAR PK/FK
customer1_subscriptions berlangganan_index_lvl0 BIGINT PK
customer1_subscriptions nilai VARCHAR
customer_address kota VARCHAR
customer_address region VARCHAR
customer_address negeri VARCHAR
customer_address code VARCHAR
PrivasiSyarat situsPreferensi cookie
© 2025, Amazon Web Services, Inc. atau afiliasinya. Semua hak dilindungi undang-undang.