Nueva publicación

Encontrar

Pregunta
· 30 jul, 2024

disk provisioning in a SSD environment

Hi we are migrating to Linux from OpenVMS. which includes a new server and SAN. after reading a prior post about the differences with ESX and a VSAN I would think that the a SAN with Virtual disks all SSD type would be similar. which after reading it makes me think that using thick provisioning is the way to go. the 3rd party vendor is arguing this point with me.  is it the same premise?  is non-dedupe the way to go with thick provisioning.  we are currently on 2015.2 of Cache with the plans to go to 2018 until the app vendor is able to certify their product on the latest versin.

thanks

Paul

 

VMware vStorage APIs for Array Integration (VAAI)

For the best storage performance, customers should consider using VAAI-capable storage hardware. VAAI can improve the performance in several areas including virtual machine provisioning and of thin-provisioned virtual disks. VAAI may be available as a firmware update from the array vendor for older arrays.

Virtual Disk Types

ESXi supports multiple virtual disk types:

Thick Provisioned – where space is allocated at creation. There are further types:

  • Eager Zeroed – writes 0’s to the entire drive. This increases the time it takes to create the disk, but results in the best performance, even on the first write to each block.
  • Lazy Zeroed – writes 0’s as each block is first written to. Lazy zero results in a shorter creation time, but reduced performance the first time a block is written to. Subsequent writes, however, have the same performance as on eager-zeroed thick disks.

Thin Provisioned – where space is allocated and zeroed upon write. There is a higher I/O cost (similar to that of lazy-zeroed thick disks) during the first write to an unwritten file block, but on subsequent writes thin-provisioned disks have the same performance as eager-zeroed thick disks

In all disk types VAAI can improve performance by offloading operations to the storage array. Some arrays also support thin provisioning at the array level, do not thin provision ESXi disks on thin provisioned array storage as there can be conflicts in provisioning and management.

1 Comentario
Comentarios (1)1
Inicie sesión o regístrese para continuar
Pregunta
· 30 jul, 2024

Extracting Resource from FHIR Bundle

Does anyone have an example of extracting the Resource from a FHIR Bundle?

{

"resourceType": "Bundle",

"type": "searchset",

"total": 5,

"link": [

{

"relation": "self",

"url": "https://hostname/instance/api/FHIR/R4/Practitioner?given=marty&family=seeger"

}

],

"entry": [

{

"link": [

{

"relation": "self",

"url": "https://hostname/instance/api/FHIR/R4/Practitioner/eUQwZHO1O.8KAThR14DRZO5EOxf.Fu6hu8pLE9e60Nh43"

}

],

"fullUrl": "https://hostname/instance/api/FHIR/R4/Practitioner/eUQwZHO1O.8KAThR14DRZO5EOxf.Fu6hu8pLE9e60Nh43",

"resource": {

"resourceType": "Practitioner",

"id": "eUQwZHO1O.8KAThR14DRZO5EOxf.Fu6hu8pLE9e60Nh43",

"identifier": [

{

"use": "usual",

"type": {

"text": "INTERNAL"

},

"value": " 10199005"

},

{

"use": "usual",

"type": {

"text": "EXTERNAL"....

 

 

I am working on a Proof of Concept to read data from our EMR FHIR Repository and was able to do it with a Response type of patient, but I am not sure how a Response Type of Bundle works.

Thanks

Scott

1 Comentario
Comentarios (1)2
Inicie sesión o regístrese para continuar
Comentarios
· 30 jul, 2024

Compartilhe como a IA da Comunidade de Desenvolvedores ajudou você a ter a chance de ganhar

Olá Comunidade!

Como vocês devem saber, nossa IA da Comunidade de Desenvolvedores já está disponível há mais de um mês 🎉 Esperamos que você tenha ficado curioso o suficiente para experimentar 😁 Se ainda não experimentou, experimente! De qualquer forma, como ainda está em beta, estamos muito interessados ​​em saber o que você pensa sobre ele, e estamos ansiosos para ouvir seus pensamentos e experiências.

 

Como valorizamos seu tempo e esforço, daremos um prêmio fofo a um membro aleatório da Comunidade que compartilhar como a DC AI ajudou você. Para participar deste sorteio, você precisa seguir as diretrizes:

  • ser um membro da Comunidade (funcionários da InterSystems são bem-vindos a participar)
  • escreva um comentário descrevendo como a IA da Comunidade de Desenvolvedores ajudou você com sua pergunta (não se esqueça de adicionar um link* para o resultado) nesta discussão.

E é isso! No final do verão, usaremos random.org para escolher um sortudo dono do nosso pequeno e fofo objeto dentre todos que comentaram aqui (e seguiram as diretrizes) — máximo de 5 inscrições por pessoa.

Boa sorte!


* Para obter um link para a resposta, clique no botão de compartilhamento abaixo da resposta.

1 Comentario
Comentarios (1)1
Inicie sesión o regístrese para continuar
Anuncio
· 30 jul, 2024

[Video] Working with InterSystems IRIS task schedules programmatically

Hi Community,

Watch this video to learn how to programmatically manage task schedules using InterSystems IRIS, including creation, editing, and deleting a user-defined task:

⏯ Working with InterSystems IRIS task schedules programmatically

This video was created by the Developer Community Team based on the community article written by @Hiroshi Sato.

Subscribe to InterSystems Developers YouTube channel to stay tuned!

Comentarios (0)1
Inicie sesión o regístrese para continuar
Artículo
· 30 jul, 2024 Lectura de 4 min

Puesta en funcionamiento de Databricks para InterSystems Cloud SQL

 

Un inicio rápido para los datos de InterSystems Cloud SQL en Databricks

La puesta en funcionamiento de Databricks para InterSystems Cloud SQL consta de cuatro partes.

  • Obtención de certificado y controlador JDBC para InterSystems IRIS
  • Añadir un script init y una librería externa a vuestro Databricks Compute Cluster
  • Obtención de Datos
  • Colocación de datos

 

Descargar Certificado X.509/Controlador JDBC de Cloud SQL

Navegad a la página de vista general de vuestro despliegue. Si no tenéis habilitadas las conexiones externas, hacedlo y descargad vuestro certificado y el controlador JDBC desde la página de vista general.

 

He utilizado `intersystems-jdbc-3.8.4.jar` e `intersystems-jdbc-3.7.1.jar` con éxito en Databricks desde Driver Distribution.

Script de inicio para vuestro clúster Databricks

La manera más fácil de importar uno o más certificados CA personalizados a vuestro clúster de Databricks es crear un script de inicio que añada toda la cadena de certificados CA tanto al almacén de certificados predeterminado de Linux SSL como al de Java, y que establezca la propiedad `REQUESTS_CA_BUNDLE`. Pegad el contenido de vuestro certificado X.509 descargado en el bloque superior del siguiente script:

import_cloudsql_certficiate.sh
#!/bin/bash

cat << 'EOF' > /usr/local/share/ca-certificates/cloudsql.crt
-----BEGIN CERTIFICATE-----
<PASTE>
-----END CERTIFICATE-----
EOF

update-ca-certificates

PEM_FILE="/etc/ssl/certs/cloudsql.pem"
PASSWORD="changeit"
JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")
KEYSTORE="$JAVA_HOME/lib/security/cacerts"
CERTS=$(grep 'END CERTIFICATE' $PEM_FILE| wc -l)

# To process multiple certs with keytool, you need to extract
# each one from the PEM file and import it into the Java KeyStore.
for N in $(seq 0 $(($CERTS - 1))); do
  ALIAS="$(basename $PEM_FILE)-$N"
  echo "Adding to keystore with alias:$ALIAS"
  cat $PEM_FILE |
    awk "n==$N { print }; /END CERTIFICATE/ { n++ }" |
    keytool -noprompt -import -trustcacerts \
            -alias $ALIAS -keystore $KEYSTORE -storepass $PASSWORD
done
echo "export REQUESTS_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt" >> /databricks/spark/conf/spark-env.sh
echo "export SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt" >> /databricks/spark/conf/spark-env.sh

Ahora que tenéis el script de inicio, subid el script a Unity Catalog en un Volumen.

Una vez que el script esté en un volumen, podéis añadir el script de inicio al clúster desde el volumen en las Propiedades avanzadas de vuestro clúster.

En segundo lugar, añadid el controlador/biblioteca JDBC de InterSystems al clúster...

...y luego iniciad o reiniciad vuestro compute cluster.

Databricks Station - Entrada InterSystems IRIS Cloud SQL

 

Cread un cuaderno de Python en vuestro espacio de trabajo, adjuntadlo a vuestro clúster y probad la importación de datos a Databricks. En el fondo, Databricks va a estar utilizando pySpark, si eso no es inmediatamente obvio.

La siguiente construcción de dataframe de Spark es todo lo que necesitaréis; podéis obtener vuestra información de conexión desde la página de vista general como antes.

df = (spark.read
  .format("jdbc")
  .option("url", "jdbc:IRIS://k8s-05868f04-a4909631-ac5e3e28ef-6d9f5cd5b3f7f100.elb.us-east-1.amazonaws.com:443/USER")
  .option("driver", "com.intersystems.jdbc.IRISDriver")
  .option("dbtable", "(SELECT name,category,review_point FROM SQLUser.scotch_reviews) AS temp_table;") 
  .option("user", "SQLAdmin")
  .option("password", "REDACTED")
  .option("driver", "com.intersystems.jdbc.IRISDriver")\
  .option("connection security level","10")\
  .option("sslConnection","true")\
  .load())

df.show()

Ilustrando la salida del dataframe con datos de Cloud SQL... ¡boom!

Databricks Station - Salida de InterSystems IRIS Cloud SQL

 

Ahora, tomad lo que hemos leído de IRIS y escribidlo de vuelta con Databricks. Si recordáis, solo leímos 3 campos en nuestro dataframe, así que escribidlo de vuelta inmediatamente y especificad el modo "overwrite".

df = (spark.read
  .format("jdbc")
  .option("url", "jdbc:IRIS://k8s-05868f04-a4909631-ac5e3e28ef-6d9f5cd5b3f7f100.elb.us-east-1.amazonaws.com:443/USER")
  .option("driver", "com.intersystems.jdbc.IRISDriver")
  .option("dbtable", "(SELECT TOP 3 name,category,review_point FROM SQLUser.scotch_reviews) AS temp_table;") 
  .option("user", "SQLAdmin")
  .option("password", "REDACTED")
  .option("driver", "com.intersystems.jdbc.IRISDriver")\
  .option("connection security level","10")\
  .option("sslConnection","true")\
  .load())

df.show()

mode = "overwrite"
properties = {
    "user": "SQLAdmin",
    "password": "REDACTED",
    "driver": "com.intersystems.jdbc.IRISDriver",
    "sslConnection": "true",
    "connection security level": "10",
}

df.write.jdbc(url="jdbc:IRIS://k8s-05868f04-a4909631-ac5e3e28ef-6d9f5cd5b3f7f100.elb.us-east-1.amazonaws.com:443/USER", table="databricks_scotch_reviews", mode=mode, properties=properties)

Ejecutando el cuaderno

 ¡Ilustrando los datos en InterSystems Cloud SQL!

Cosas a considerar

  • Por defecto, PySpark escribe datos usando múltiples tareas concurrentes, lo que puede resultar en escrituras parciales si una de las tareas falla.
  • Para asegurar que la operación de escritura es atómica y consistente, podéis configurar PySpark para que escriba los datos utilizando una única tarea (es decir, establecer el número de particiones en 1) o utilizar una característica específica de iris como las transacciones.
  • Además, podéis utilizar la API DataFrame de PySpark para realizar operaciones de filtrado y agregación antes de leer los datos de la base de datos, lo que puede reducir la cantidad de datos que es necesario transferir a través de la red.
Comentarios (0)1
Inicie sesión o regístrese para continuar