Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Pelajari cara menggunakan Apache Sqoop untuk mengimpor dan mengekspor antara kluster Apache Hadoop di Azure HDInsight dan Azure SQL Database atau Microsoft SQL Server. Langkah-langkah dalam dokumen ini menggunakan perintah sqoop langsung dari simpul utama kluster Hadoop. Anda menggunakan SSH untuk menyambungkan ke simpul utama dan menjalankan perintah dalam dokumen ini. Artikel ini adalah kelanjutan dari Menggunakan Apache Sqoop dengan Hadoop di HDInsight.
Prasyarat
Penyelesaian Penyiapan lingkungan pengujian dari Menggunakan Apache Sqoop dengan Hadoop dalam HDInsight.
Klien SSH. Untuk informasi selengkapnya, lihat Menyambungkan ke HDInsight (Apache Hadoop) menggunakan SSH.
Keakraban dengan Sqoop. Untuk informasi selengkapnya, lihat Panduan Pengguna Sqoop.
Siapkan
Gunakan perintah ssh untuk menyambungkan ke kluster Anda. Edit perintah di bawah ini dengan mengganti CLUSTERNAME dengan nama klaster Anda, lalu masukkan perintah:
ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.netUntuk kemudahan penggunaan, atur variabel. Ganti
PASSWORD,MYSQLSERVER, danMYDATABASEdengan nilai yang relevan, lalu masukkan perintah di bawah ini:export PASSWORD='PASSWORD' export SQL_SERVER="MYSQLSERVER" export DATABASE="MYDATABASE" export SERVER_CONNECT="jdbc:sqlserver://$SQL_SERVER.database.windows.net:1433;user=sqluser;password=$PASSWORD" export SERVER_DB_CONNECT="jdbc:sqlserver://$SQL_SERVER.database.windows.net:1433;user=sqluser;password=$PASSWORD;database=$DATABASE"
Ekspor Sqoop
Dari Hive ke SQL.
Untuk memverifikasi bahwa Sqoop dapat melihat database Anda, masukkan perintah di bawah ini di koneksi SSH Anda yang terbuka. Perintah ini mengembalikan daftar database.
sqoop list-databases --connect $SERVER_CONNECTMasukkan perintah berikut ini untuk melihat daftar tabel untuk database yang ditentukan:
sqoop list-tables --connect $SERVER_DB_CONNECTUntuk mengekspor data dari tabel Hive
hivesampletableke tabelmobiledatadi database Anda, masukkan perintah di bawah ini di koneksi SSH Anda yang terbuka:sqoop export --connect $SERVER_DB_CONNECT \ -table mobiledata \ --hcatalog-table hivesampletableUntuk memverifikasi bahwa data telah diekspor, gunakan kueri berikut dari koneksi SSH Anda untuk melihat data yang diekspor:
sqoop eval --connect $SERVER_DB_CONNECT \ --query "SELECT COUNT(*) from dbo.mobiledata WITH (NOLOCK)" sqoop eval --connect $SERVER_DB_CONNECT \ --query "SELECT TOP(10) * from dbo.mobiledata WITH (NOLOCK)"
Impor Sqoop
Dari SQL ke penyimpanan Azure.
Masukkan perintah di bawah ini dalam koneksi SSH terbuka Anda untuk mengimpor data dari tabel
mobiledatadi SQL, ke direktoriwasbs:///tutorials/usesqoop/importeddatadi HDInsight. Bidang dalam data dipisahkan oleh karakter tab, dan garis diakhiri oleh karakter baris baru.sqoop import --connect $SERVER_DB_CONNECT \ --table mobiledata \ --target-dir 'wasb:///tutorials/usesqoop/importeddata' \ --fields-terminated-by '\t' \ --lines-terminated-by '\n' -m 1Atau, Anda juga dapat menentukan tabel Apache Hive:
sqoop import --connect $SERVER_DB_CONNECT \ --table mobiledata \ --target-dir 'wasb:///tutorials/usesqoop/importeddata2' \ --fields-terminated-by '\t' \ --lines-terminated-by '\n' \ --create-hive-table \ --hive-table mobiledata_imported2 \ --hive-import -m 1Setelah impor selesai, masukkan perintah berikut di koneksi SSH Anda yang terbuka untuk mencantumkan data di direktori baru:
hadoop fs -tail /tutorials/usesqoop/importeddata/part-m-00000Gunakan beeline untuk memverifikasi bahwa tabel telah dibuat di Hive.
Sambungkan
beeline -u 'jdbc:hive2://headnodehost:10001/;transportMode=http'Jalankan setiap kueri di bawah satu per satu dan tinjau output:
show tables; describe mobiledata_imported2; SELECT COUNT(*) FROM mobiledata_imported2; SELECT * FROM mobiledata_imported2 LIMIT 10;Keluar dari jalur cepat dengan
!exit.
Batasan
Ekspor massal - Dengan HDInsight berbasis Linux, konektor Sqoop yang digunakan untuk mengekspor data ke SQL tidak mendukung sisipan massal.
Batching - Dengan HDInsight berbasis Linux, Saat menggunakan opsi
-batchsaat melakukan penyisipan, Sqoop melakukan beberapa penyisipan alih-alih melakukan operasi secara batch.
Pertimbangan penting
HDInsight dan SQL Server harus berada di Virtual Network Azure yang sama.
Misalnya, lihat Cara menyambungkan HDInsight ke dokumen jaringan lokal Anda.
Untuk informasi selengkapnya tentang menggunakan HDInsight dengan Azure Virtual Network, lihat cara memperluas HDInsight dengan dokumen Azure Virtual Network . Untuk informasi selengkapnya tentang Azure Virtual Network, lihat Gambaran umum Azure Virtual Network.
SQL Server harus dikonfigurasi untuk memperbolehkan autentikasi SQL. Untuk informasi selengkapnya, lihat dokumen Pilih Mode Autentikasi.
Anda mungkin harus mengonfigurasi SQL Server untuk menerima koneksi jarak jauh.
Langkah berikutnya
Sekarang Anda telah mempelajari cara menggunakan Sqoop. Untuk mempelajari selengkapnya, lihat:
- Gunakan Apache Oozie dengan HDInsight: Gunakan tindakan Sqoop dalam alur kerja Oozie.
- Menganalisis data penundaan penerbangan menggunakan HDInsight: Gunakan Interactive Query untuk menganalisis data penundaan penerbangan, lalu gunakan Sqoop untuk mengekspor data ke database di Azure.
- Mengunggah data ke HDInsight: Temukan metode lain untuk mengunggah data ke penyimpanan HDInsight/Azure Blob.