Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memulai dengan driver JDBC 3.x
Gunakan informasi di bagian ini untuk memulai dengan driver Amazon Athena JDBC 3.x.
Topik
Petunjuk Instalasi
Anda dapat menggunakan driver JDBC 3.x dalam aplikasi khusus atau dari klien SQL pihak ketiga.
Dalam aplikasi khusus
Unduh .zip file yang berisi driver dan dependensinya. Tambahkan .jar file driver dan setiap .jar file lain di runtime-dependencies direktori ke classpath Java aplikasi kustom Anda. Hanya menghilangkan .jar file jika aplikasi Anda sudah menyediakan versi yang kompatibel dari ketergantungan itu. AthenaStreamingJavaClient-2.0.jarFile menyediakan software.amazon.awssdk.services.athenastreaming.AthenaStreamingAsyncClient kelas. Sertakan file ini kecuali aplikasi Anda sudah menyediakan kelas itu.
Di klien SQL pihak ketiga
Unduh file driver uber jar dan tambahkan ke klien SQL pihak ketiga mengikuti instruksi untuk klien itu.
Menjalankan pengemudi
Untuk menjalankan driver, Anda dapat menggunakan aplikasi khusus atau klien SQL pihak ketiga.
Dalam aplikasi khusus
Gunakan antarmuka JDBC untuk berinteraksi dengan driver JDBC dari sebuah program. Kode berikut menunjukkan contoh aplikasi Java kustom.
public static void main(String args[]) throws SQLException { Properties connectionParameters = new Properties(); connectionParameters.setProperty("Workgroup", "primary"); connectionParameters.setProperty("Region", "us-east-2"); connectionParameters.setProperty("Catalog", "AwsDataCatalog"); connectionParameters.setProperty("Database","sampledatabase"); connectionParameters.setProperty("OutputLocation","s3://amzn-s3-demo-bucket"); connectionParameters.setProperty("CredentialsProvider","DefaultChain"); String url = "jdbc:athena://"; AthenaDriver driver = new AthenaDriver(); Connection connection = driver.connect(url, connectionParameters); Statement statement = connection.createStatement(); String query = "SELECT * from sample_table LIMIT 10"; ResultSet resultSet = statement.executeQuery(query); printResults(resultSet); // A custom-defined method for iterating over a // result set and printing its contents }
Di klien SQL pihak ketiga
Ikuti dokumentasi untuk klien SQL yang Anda gunakan. Biasanya, Anda menggunakan antarmuka pengguna grafis klien SQL untuk memasukkan dan mengirimkan kueri, dan hasil kueri ditampilkan di antarmuka yang sama.
Mengkonfigurasi driver
Anda dapat menggunakan parameter koneksi untuk mengkonfigurasi driver Amazon Athena JDBC. Untuk parameter koneksi yang didukung, lihatParameter koneksi Amazon Athena JDBC 3.x.
Dalam aplikasi khusus
Untuk mengatur parameter koneksi untuk driver JDBC dalam aplikasi kustom, lakukan salah satu hal berikut:
-
Tambahkan nama parameter dan nilainya ke
Propertiesobjek. Saat Anda memangConnection#connectgil, berikan objek itu bersama dengan URL. Sebagai contoh, lihat contoh aplikasi Java diMenjalankan pengemudi. -
Dalam string koneksi (URL), gunakan format berikut untuk menambahkan nama parameter dan nilainya langsung setelah awalan protokol.
<parameterName>=<parameterValue>;Gunakan titik koma di akhir setiap pasangan name/parameter nilai parameter, dan tidak meninggalkan spasi putih setelah titik koma, seperti pada contoh berikut.
String url = "jdbc:athena://WorkGroup=primary;Region=us-east-1;...;";AthenaDriver driver = new AthenaDriver();Connection connection = driver.connect(url, null);catatan
Jika parameter ditentukan baik dalam string koneksi dan di
Propertiesobjek, nilai dalam string koneksi diutamakan. Menentukan parameter yang sama di kedua tempat tidak disarankan. -
Tambahkan nilai parameter sebagai argumen ke metode
AthenaDataSource, seperti pada contoh berikut.AthenaDataSource dataSource = new AthenaDataSource(); dataSource.setWorkGroup("primary"); dataSource.setRegion("us-east-2"); ... Connection connection = dataSource.getConnection(); ...
Di klien SQL pihak ketiga
Ikuti instruksi klien SQL yang Anda gunakan. Biasanya, klien menyediakan antarmuka pengguna grafis untuk memasukkan nama parameter dan nilai-nilainya.
Upgrade dari driver Athena JDBC v2
Sebagian besar parameter koneksi JDBC versi 3 kompatibel ke belakang dengan driver JDBC versi 2 (Simba). Ini berarti bahwa string koneksi versi 2 dapat digunakan kembali dengan versi 3 dari driver. Namun, beberapa parameter koneksi telah berubah. Perubahan ini dijelaskan di sini. Saat Anda memutakhirkan ke driver JDBC versi 3, perbarui konfigurasi yang ada jika perlu.
Kelas pengemudi
Beberapa alat BI meminta Anda untuk memberikan kelas driver dari file driver .jar JDBC. Sebagian besar alat menemukan kelas ini secara otomatis. Nama kelas yang sepenuhnya memenuhi syarat dalam driver versi 3 adalahcom.amazon.athena.jdbc.AthenaDriver. Di driver versi 2, kelasnya adalahcom.simba.athena.jdbc.Driver.
String koneksi
Driver versi 3 digunakan jdbc:athena:// untuk protokol di awal URL string koneksi JDBC. Driver versi 3 juga mendukung protokol versi 2jdbc:awsathena://, tetapi penggunaan protokol versi 2 tidak digunakan lagi. Untuk menghindari perilaku yang tidak ditentukan, versi 3 tidak menerima string koneksi yang dimulai dengan jdbc:awsathena:// jika versi 2 (atau driver lain yang menerima string koneksi yang dimulai denganjdbc:awsathena://) telah terdaftar dengan DriverManager
Metadata kolom string
Dengan driver JDBC 3.x, Anda tidak dapat lagi menggunakan parameter StringColumnLength koneksi JDBC 2.x. Sebagai gantinya, Anda dapat mengakses presisi yang disediakan Athena melalui metode JDBC metadata standar, termasuk ResultSetMetaData.getPrecision danResultSetMetaData.getColumnDisplaySize. Karena string tipe Athena tidak terbatas, presisi yang dilaporkan bisa. 2147483647
Jika aplikasi mengalokasikan buffer ukuran tetap dari JDBC metadata, konfigurasikan untuk menggunakan buffer ukuran variabel. Jika aplikasi Anda memerlukan metadata kolom terbatas, masukkan kolom ke varchar( dalam kueri atau ekspos cast melalui tampilan. Pilih nilai n)n yang mempertahankan semua data yang diharapkan karena casting ke ukuran yang lebih kecil dapat memotong nilai.
Penyedia kredensi
Driver versi 2 menggunakan nama yang sepenuhnya memenuhi syarat untuk mengidentifikasi penyedia kredenSIAL yang berbeda (misalnya,com.simba.athena.amazonaws.auth.DefaultAWSCredentialsProviderChain. Driver versi 3 menggunakan nama yang lebih pendek (misalnya,DefaultChain). Nama-nama baru dijelaskan di bagian yang sesuai untuk setiap penyedia kredenSIAL.
Penyedia kredenSIAL khusus yang ditulis untuk driver versi 2 perlu dimodifikasi untuk driver versi 3 untuk mengimplementasikan AwsCredentialsProvider
Tidak PropertiesFileCredentialsProvider didukung di driver JDBC 3.x. Penyedia digunakan dalam driver JDBC 2.x tetapi milik versi AWS SDK sebelumnya untuk Java yang mendekati akhir dukungan. Untuk mencapai fungsionalitas yang sama di driver JDBC 3.x, gunakan penyedia sebagai gantinya. AWS kredentif profil konfigurasi
Tingkat log
Tabel berikut menunjukkan perbedaan LogLevel parameter dalam driver JDBC versi 2 dan versi 3.
| Versi driver JDBC | Nama parameter | Jenis parameter | Nilai default | Kemungkinan nilai | Contoh string koneksi |
|---|---|---|---|---|---|
| v2 | LogLevel |
Opsional | 0 | 0-6 | LogLevel=6; |
| v3 | LogLevel |
Opsional | JEJAK | MATI, KESALAHAN, PERINGATAN, INFO, DEBUG, JEJAK | LogLevel=INFO; |
Pengambilan ID kueri
Di driver versi 2, Anda membuka Statement instance kecom.interfaces.core.IStatementQueryInfoProvider, antarmuka yang memiliki dua metode: #getPReparedQueryId dan#getQueryId. Anda dapat menggunakan metode ini untuk mendapatkan ID eksekusi kueri dari kueri yang telah dijalankan.
Di driver versi 3, Anda membuka bungkusStatement,PreparedStatement, dan ResultSet instance ke com.amazon.athena.jdbc.AthenaResultSet antarmuka. Antarmuka memiliki satu metode:#getQueryExecutionId.