Cassandra + Python

Instalasi
Platform yang didukung
Python 2.7, 3.4, 3.5, 3.6, 3.7 dan 3.8 didukung. Baik CPython (implementasi standar Python) dan PyPy didukung dan diuji.Linux, OSX, dan Windows didukung.
Instalasi melalui pip
pip adalah alat yang disarankan untuk menginstal paket. Ini akan menangani menginstal semua dependensi Python untuk driver pada saat yang sama dengan driver itu sendiri. Untuk menginstal driver *:Anda dapat menggunakanpip install cassandra-driver
pip install --pre cassandra-driver jika Anda perlu menginstal versi beta. * Catatan : jika ingin menggunakan ekstensi opsional, instal dependensi terlebih dahulu. Driver mungkin perlu diinstal ulang jika dependensi ditambahkan setelah instalasi awal.
Memverifikasi Instalasi Anda
Untuk memeriksa apakah instalasi berhasil, Anda dapat menjalankan:Seharusnya mencetak sesuatu seperti "3.22.0".python -c 'import cassandra; print cassandra.__version__'
( Opsional ) Grafik DataStax
Driver menyediakan API grafik lancar yang tergantung pada Apache TinkerPop (gremlinpython). Ini tidak diinstal secara default. Agar dapat membangun lintas GREMLIN, Anda perlu menginstal persyaratan grafik : pip install cassandra-driver[graph]
Lihat DataStax Graph Fluent API untuk detail lebih lanjut tentang API ini. ( Opsional ) Dukungan Kompresi
Kompresi secara opsional dapat digunakan untuk komunikasi antara pengemudi dan Cassandra. Saat ini ada dua algoritma kompresi yang didukung: snappy (di Cassandra 1.2+) dan LZ4 (hanya di Cassandra 2.0+). Jika tersedia untuk pengemudi dan Cassandra juga mendukungnya, itu akan digunakan secara otomatis.Untuk dukungan lz4:
Untuk dukungan cepat:pip install lz4
(Jika menggunakan turunan Debian Linux seperti Ubuntu, mungkin lebih mudah untuk menjalankanpip install python-snappy
apt-get install python-snappy .) ( Opsional ) Dukungan Metrik
Pengemudi memiliki dukunganCluster.metrics untuk menangkap Cluster.metrics tentang kueri yang Anda jalankan. Namun, perpustakaan scales diperlukan untuk mendukung ini: pip install scales
Instalasi Mempercepat
Secara default, menginstal driver melaluipip menggunakan roda khusus platform yang telah disiapkan sebelumnya jika tersedia. Jika menggunakan distribusi sumber daripada roda, Cython digunakan untuk mengkompilasi bagian-bagian tertentu dari driver.
Ini membuat jalur panas tersebut lebih cepat saat runtime, tetapi
proses kompilasi Cython dapat memakan waktu lama - selama 10 menit di
beberapa lingkungan. Di lingkungan di mana kinerja kurang penting, mungkin layak untuk menonaktifkan Cython seperti yang didokumentasikan di bawah ini . Anda juga dapat menggunakan
CASS_DRIVER_BUILD_CONCURRENCY untuk meningkatkan jumlah utas yang digunakan untuk membangun driver dan ekstensi C apa pun:
Copy
$ # installing from source $ CASS_DRIVER_BUILD_CONCURRENCY = 8 python setup.py install
$ # installing from pip $ CASS_DRIVER_BUILD_CONCURRENCY = 8 pip install cassandra-driver
Kesalahan Instalasi OSX
Jika Anda menginstal di OSX dan menginstal XCode 5.1, Anda mungkin melihat kesalahan seperti ini: clang: error: unknown argument: '-mno-fused-madd' [-Wunused-command-line-argument-hard-error-in-future]
Untuk memperbaiki ini, jalankan kembali instalasi dengan flag kompilasi tambahan:
Copy
ARCHFLAGS = -Wno-error = unused-command-line-argument-hard-error-in-future pip install cassandra-driver
Catatan Instalasi Windows
Menginstal driver dengan ekstensi di Windows terkadang menghadirkan beberapa tantangan. Beberapa catatan tentang hang-up umum:Pengaturan membutuhkan kompiler. Saat menggunakan Python 2, ini sesederhana menginstal paket ini (tautan ini juga dipancarkan saat instalasi jika setuptools tidak dapat menemukan sumber yang dibutuhkan). Tergantung pada pengaturan sistem Anda, paket ini dapat diinstal sebagai aplikasi khusus pengguna. Pastikan untuk menginstal untuk semua orang, atau setidaknya sebagai pengguna yang akan membangun lingkungan Python.
Dimungkinkan juga untuk menjalankan build dengan kompiler pilihan Anda. Pastikan untuk memiliki pengaturan lingkungan Anda dengan jalur yang tepat. Pastikan arsitektur target kompilator cocok dengan bitime runtime Python Anda. Mungkin cara termudah untuk melakukan ini adalah menjalankan build / install dari Visual Studio Command Prompt (pintasan yang diinstal dengan Visual Studio yang sumber lingkungan yang sesuai dan menyajikan sebuah shell).
Instalasi Manual
Anda selalu dapat menginstal driver langsung dari sumber checkout atau tarball. Saat menginstal secara manual, pastikan dependensi python sudah diinstal. Anda dapat menemukan daftar dependensi di requirement.txt .Setelah dependensi diinstal, jalankan:
python setup.py install
( Opsional ) Ketergantungan Non-python
Pengemudi memiliki beberapa fitur opsional yang memiliki dependensi non-Python.C Extensions
Secara default, sejumlah ekstensi dikompilasi, menyediakan hashing yang lebih cepat untuk perutean token-aware denganMurmur3Partitioner , integrasi loop peristiwa libev , dan ekstensi yang dioptimalkan oleh Cython. Saat menginstal secara manual melalui setup.py, Anda dapat menonaktifkan keduanya dengan opsi
--no-extensions , atau menonaktifkannya secara selektif dengan --no-murmur3 , --no-libev , atau --no-cython . Untuk mengkompilasi ekstensi, pastikan bahwa GCC dan header Python tersedia.
Di Ubuntu dan Debian, ini dapat dilakukan dengan menjalankan:
Pada sistem berbasis RedHat dan RedHat seperti CentOS dan Fedora:$ sudo apt-get install gcc python-dev
Pada OS X, instalasi homebrew dari Python harus menyediakan header yang diperlukan.$ sudo yum install gcc python-devel
Lihat Catatan Instalasi Windows untuk catatan tentang mengkonfigurasi lingkungan build pada Windows.
Ekstensi berbasis cython
Secara default, paket ini menggunakan Cython untuk mengoptimalkan modul inti dan membangun ekstensi khusus. Ini bukan persyaratan yang sulit, tetapi digunakan secara default untuk membangun ekstensi yang menawarkan kinerja yang lebih baik daripada implementasi Python murni.Ini adalah tahap pembuatan yang mahal, terutama di lingkungan yang bersih di mana kompiler Cython harus dibangun. Tahap pembuatan ini dapat dihindari dengan menggunakan sakelar bangun, atau variabel lingkungan:
Atau, variabel lingkungan dapat digunakan untuk mengalihkan opsi ini terlepas dari konteks:python setup.py install --no-cython
Metode ini diperlukan saat menggunakan pip, yang tidak menyediakan cara lain untuk menyuntikkan opsi pengguna dalam satu perintah:CASS_DRIVER_NO_CYTHON=1 <your script here> - or, to disable all extensions: CASS_DRIVER_NO_EXTENSIONS=1 <your script here>
Variabel lingkungan adalah pilihan yang lebih disukai karena mencakup semua permintaan setup.py, dan akan mencegah Cython terwujud sebagai persyaratan pengaturan.CASS_DRIVER_NO_CYTHON=1 pip install cassandra-driver CASS_DRIVER_NO_CYTHON=1 sudo -E pip install ~/python-driver
Jika konfigurasi sudo Anda tidak mengizinkan SETENV, Anda harus menekan bendera opsi ke bawah melalui pip. Namun, pip menerapkan opsi ini untuk semua dependensi (yang memecah pada bendera kustom). Karena itu, Anda harus menginstal dependensi terlebih dahulu, kemudian gunakan opsi instal:
sudo pip install six futures sudo pip install --install-option="--no-cython"
dukungan libev
Driver saat ini menggunakan modulasyncore Python untuk loop acara default. Untuk kinerja yang lebih baik, libev juga didukung melalui ekstensi C. Jika Anda menggunakan Linux, Anda harus dapat menginstal libev melalui manajer paket. Misalnya, di Debian / Ubuntu:
Di RHEL / CentOS / Fedora:$ sudo apt-get install libev4 libev-dev
Jika Anda menggunakan Mac OS X, Anda harus dapat menginstal libev melalui Homebrew . Misalnya, di Mac OS X:$ sudo yum install libev libev-devel
Ekstensi libev tidak dibangun untuk Windows (proses pembuatannya rumit, dan implementasi Windows tetap menggunakan pilih).$ brew install libev
Jika berhasil, Anda harus dapat membangun dan menginstal ekstensi (hanya menggunakan
setup.py build atau setup.py install ) dan kemudian menggunakan loop acara libev dengan melakukan hal berikut:
Copy
>>> from cassandra.io.libevreactor import LibevConnection
>>> from cassandra.cluster import Cluster
>>> cluster = Cluster ()
>>> cluster . connection_class = LibevConnection
>>> session = cluster . connect ()
Andrew Mussey telah menerbitkan panduan menyeluruh tentang Penggunaan SSL dengan driver DataStax Python .( Opsional ) Mengkonfigurasi SSL
Tidak ada komentar:
Posting Komentar