Tengo una instalación de Cassandra 1.1.2 en mi sistema como un clúster de nodo único y tengo tres espacios de claves: hotel
, student
y employee
. Quiero volcar el esquema de espacio de claves de hotel
junto con sus datos familiares de columna, si es posible, y restaurar el volcado en otro clúster de Cassandra. ¿Alguien puede sugerirme en detalle que cómo debería hacer esto?Keyspace schema import and export in Cassandra
Respuesta
Puede utilizar sstable2json
y json2sstable
herramientas cassandra
Echa un vistazo a DataStax documentation en el mismo y this demasiado
Usage: sstable2json [-f outfile] <sstable> [-k key [-k key [...]]]
Usage: json2sstable -K keyspace -c column_family <json> <sstable>
Siempre se puede ejecutar comandos cassandra-cli en el archivo
cassandra-cli -h HOST -p PORT -f fileName
Puede cargar todas sus instrucciones de creación en un archivo y ejecutar este comando
Para obtener las secuencias de comandos de la CLI para crear keyspaces y familias columna, use siguientes comandos en cassandra-cli interfaz
show schema
Pero en caso que usted quiere crear un clúster de dos nodos. No necesita hacer todo lo anterior. Simplemente iniciar el otro nodo con diferente rango de token y el mismo nombre de clúster haría. Cassandra internamente se las arreglará para transmitir los datos y las informaciones de esquema
No recomiendo usar stable2json
y json2sstable
para cargar una gran cantidad de datos. Utiliza la API de jackson para crear el conjunto de datos y transformarlo al formato json. Implica cargar todos los datos en la memoria para crear una representación json única.
Está bien para una pequeña cantidad de datos, ahora imagine cargar un gran conjunto de datos de más de 40 millones de filas, unos 25 GB de datos, estas herramientas simplemente no funcionan bien. Ya les pregunté a los chicos de Datastax sobre esto sin ninguna aclaración.
En el caso de conjuntos de datos grandes, simplemente copie los archivos de datos de cassandra de un clúster a otro para resolver el problema. En mi caso, estaba tratando de migrar del clúster 1.0.6 de Cassandra a 1.2.1, los archivos de datos no eran compatibles entre estas versiones.
¿Cuál es la solución? Estoy escribiendo mi propia herramienta de exportación/importación para resolver esto. Espero publicar un enlace para esta herramienta pronto.
- 1. Liferay Export/Import LAR: automatizado
- 2. Dapper and In Condition
- 3. Conceptos básicos de Hector & Cassandra
- 4. Strip Inline CSS and JavaScript in Rails
- 5. Endianness and Socket Programming in C
- 6. Clojure import versus import
- 7. Cassandra Thrift Erlang insertar
- 8. java.sql.SQLException: Schema 'ROOT' no existe
- 9. Powershell - Export-CSV y Anexar
- 10. Report Viewer Landscape pdf export
- 11. Cassandra bajo rendimiento?
- 12. Datagrid export to pdf
- 13. Export apk del teléfono?
- 14. org-mode html export
- 15. android export eclipse project
- 16. gpg --export-secret-keys
- 17. ¿Debo usar `import os.path` o` import os`?
- 18. `#import" FBConnect.h "` vs. '#import "FBConnect/FBConnect.h"'
- 19. ¿Con qué frecuencia debo usar try and catch in C#?
- 20. Devise and Rails - ArgumentError in Devise :: RegistrationsController # create
- 21. javascript date issue issue in Safari and IE
- 22. ¿Cuál es el propósito de: list and: print in vim?
- 23. 'de X import a' versus 'import X; X.a'
- 24. Estructura de archivos de Cassandra: ¿cómo se usan los archivos?
- 25. : import com.google.android.maps. *;
- 26. CSS 'schema' how-to
- 27. DB Schema para chats?
- 28. Printing Table's structure/schema
- 29. Blender 2.6.1 export to ogre
- 30. Consultando columnas CompositeType en Cassandra usando Hector
Gracias Tamil Muchas gracias He estado enfrentando este problema desde 3 días Es una buena solución Tengo una cosa que preguntar después de obtener el espacio de claves y restaurarlo en otro clúster Puedo copiar y pegar los datos del espacio de claves que es presente en el directorio de datos –
no, no puedes hacer eso. Haga un 'nodetool drain' [en caso de que desee todos los datos, incluso en la memoria] en el clúster de un nodo existente y proceda con el cargador json. Ningún otro ir. El drenaje nodetool purgará todos los CF pero su clúster actual será inaccesible hasta que finalice esta operación. – Tamil
Gracias, pero hice lo que he mencionado anteriormente y está funcionando bien, creará algún problema si no usaré el drenaje del nodo, etc. –