Esempi di richieste di dati " Flight service " con " Python "
È possibile utilizzare Flight service e il protocollo Flight Apache Arrow per leggere e scrivere dati tramite Python in un progetto o in uno spazio.
Per leggere o scrivere dati utilizzando l' Python, è possibile:
Utilizza il codice generato automaticamente per caricare i dati da una risorsa del progetto selezionata in un notebook di Python. Questo codice generato utilizza la
itc_utilslibreria, che incapsula le chiamate alla libreria open sourcepyarrowPython, migliorando la leggibilità del codice e riducendone al contempo le dimensioni.Scrivi il tuo codice per leggere e scrivere dati in un progetto o in uno spazio utilizzando la libreria open source
pyarrowPython per richiamare Flight service. È necessario scrivere il proprio codice nelle seguenti situazioni:- Il codice generato richiede alcune modifiche, ad esempio per poterlo utilizzare in un ambiente di produzione
- La funzione che consente di aggiungere codice generato non è disponibile per questa risorsa
- Lo strumento non supporta l'aggiunta di codice generato
Le sezioni seguenti forniscono ulteriori dettagli su come specificare l'origine dati e le proprietà interattive per le richieste di lettura utilizzando le richieste di dati Flight.
Per ulteriori informazioni sulla sintassi e sulle proprietà delle richieste di dati, consultare la sezione "Richieste di dati di volo ".
Per accedere ai dati, è necessario creare un oggetto di richiesta dati utilizzando un documento JSON contenente la descrizione della risorsa che si desidera leggere o scrivere. In Python, puoi utilizzare i dizionari per creare questi documenti JSON.
È possibile utilizzare i seguenti esempi di richieste di dati per imparare a specificare l'origine dati e le proprietà interattive per le richieste di lettura o scrittura dei dati in Python. Le proprietà variano a seconda della fonte dei dati.
Esempio di richiesta relativa a uno schema e a una tabella
data_request = {
"asset_id": "ASSET_ID", # asset_id must point to a connection asset
"project_id|space_id|catalog_id": "ID",
"num_partitions": NUM, # Optional
"batch_size": SIZE, # Optional
"interaction_properties": {
"schema_name": "schema",
"table_name": "table"
},
"fields": "fields" # Optional
}
Esempio di una query SQL
data_request = {
"asset_id": "ASSET_ID", # asset_id must point to a connection asset
"project_id|space_id|catalog_id": "ID",
"num_partitions": NUM, # Optional
"batch_size": SIZE, # Optional
"interaction_properties": {
"select_statement": "SELECT ... FROM <schema>.<table> WHERE ..."
}
}
Esempio di richiesta di lettura da un file di dati, come un file Parquet
data_request = {
"asset_id": "ASSET_ID", # asset_id must point to a connected data asset
"project_id|space_id|catalog_id": "ID",
"num_partitions": NUM, # Optional
"fields": "fields" # Optional
}
Esempio di richiesta di lettura da un file Parquet
data_request = {
"asset_id": "ASSET_ID",
"project_id|space_id|catalog_id": "ID",
"num_partitions": NUM, # Optional
"batch_size": SIZE, # Optional
"interaction_properties": {
"folder": "FOLDER",
"file": "FILE",
"bucket": "BUCKET", # If using COS specify bucket in addition to folder/file
"file_format": "parquet"
},
"fields": "fields" # Optional
}
Esempio di richiesta a una connessione con il passaggio delle proprietà della connessione
data_request = {
"datasource_type": "dashdb",
"connection_properties": {
"database": "DBNAME",
"password": "PASSWORD",
"port": NUM,
"host": "HOSTNAME",
"ssl": true,
"username": "CONNUSER"
},
"num_partitions": NUM, # Optional
"batch_size": SIZE, # Optional
"interaction_properties": {
"schema_name": "schema",
"table_name": "table",
}
"fields": "fields" # Optional
}
Le caratteristiche "connection_properties" e "interaction_properties"le proprietà variano a seconda del connettore. Per ulteriori dettagli, consultare i tipi di origine dati dell'API Common Core per dati e IA.
Esempi di codice che utilizzano le richieste di dati di volo
I seguenti esempi di codice mostrano come è possibile richiamare Flight service all'interno dei notebook di Python. Gli esempi illustrano le differenze tra le richieste di dati a seconda della connessione alla fonte di dati.
Gli esempi che illustrano come richiamare Flight service utilizzano una libreria Python denominata itc_utils, fornita da IBM per l'uso nei notebook. Per ulteriori dettagli, consultare la sezione " Flight service " nei manuali di Python.
Esempio della richiesta di dati restituita nel codice generato per caricare i dati per una connessione HTTP
import itc_utils.flight_service as itcfs
readClient = itcfs.get_flight_client()
HTTP_data_request = {
'connection_name': """HTTP""",
'interaction_properties': {
'infer_schema': 'true'
}
}
flightInfo = itcfs.get_flight_info(readClient, nb_data_request=HTTP_data_request)
data_df_1 = itcfs.read_pandas_and_concat(readClient, flightInfo)
data_df_1.head(10)
Esempio di richiesta di dati che utilizza gli ID di connessione senza proprietà
import itc_utils.flight_service as itcfs
readClient = itcfs.get_flight_client()
data_request = {
'project_id': 'c01a0212-47cc-4cd4-8cc8-1dd92dbb4bde',
'asset_id': 'a6c0117c-e6da-4d71-9da4-659edcec7ba5',
'interaction_properties': {
'infer_schema': 'true'
}
}
flightInfo = itcfs.get_flight_info(readClient, data_request=data_request)
data_df_1 = itcfs.read_pandas_and_concat(readClient, flightInfo)
data_df_1.head(10)
Esempio di richiesta di dati per una connessione Db2 tramite proprietà
import itc_utils.flight_service as itcfs
readClient = itcfs.get_flight_client()
data_request = {'datasource_type': {'entity': {'name': 'db2'}},
'connection_properties': {'database': 'BLUDB',
'password': '****',
'username_password_security': 'clear_text',
'port': '50001',
'host': 'dashdb-123.services.dal.bluemix.net',
'inherit_access_token': 'false',
'username_password_encryption': 'default',
'ssl': 'true',
'username': 'myuser'},
'interaction_properties': {'schema_name': 'MYSCHEMA', 'table_name': 'A_TABLE'}
}
flightInfo = itcfs.get_flight_info(readClient, data_request=data_request)
data_df_1 = itcfs.read_pandas_and_concat(readClient, flightInfo)
data_df_1.head(10)