FMPResource
Представляет ресурс на сервере.
Since
21.04.01
Samples
import ru.fsight.fmp.*
fun main() {
//sampleStart
/*
* Пример создания ресурса.
*/
val resource: FMPResource = fmp.resource
.name("resource") // Указать название ресурса на сервере.
.params("{\"delete_ids\":null,\"upsert_rows\":null}") // Указать параметры ресурса.
.build() // Получить FMPResource.
//sampleEnd
}import ru.fsight.fmp.*
fun main() {
//sampleStart
/*
* Пример создания ресурса с дополнительными параметрами.
*/
val resource: FMPResource = fmp.resource
.name("...") // Указать название ресурса на сервере.
.params("...") // Указать параметры ресурса.
.cacheByParams(true) // Использовать кэширование по параметрам.
.delta(true) // Использовать дельту.
.filter(true) // Использовать фильтрацию FMPQuery.
.build() // Получить FMPResource.
//sampleEnd
}import ru.fsight.fmp.*
fun main() {
//sampleStart
/*
* Пример обращения к базе данных ресурса.
*/
resource.database.query("CREATE INDEX ...")
//sampleEnd
}import ru.fsight.fmp.*
fun main() {
//sampleStart
/*
* Пример ручной загрузки ресурса.
*/
val transaction: FMPTransaction = fmp.transaction.resource(resource).build()
val download: FMPResult<Boolean> = resource.download(
transaction = transaction, // Указать транзакцию для запроса.
filters = listOf(FMPResource.FilterTable("output_table")) // Указать фильтр для загрузки только таблицы с названием output_table.
) { progress ->
println("progress: $progress") // Вывести прогресс загрузки в консоль.
}
//sampleEnd
}import ru.fsight.fmp.*
fun main() {
//sampleStart
/*
* Пример удаления всех данных ресурса.
*/
val drop: Boolean = resource.dropCache().result // true если локальный кэш ресурса был очищен.
//sampleEnd
}import ru.fsight.fmp.*
fun main() {
//sampleStart
/*
* Пример получения метаданных ресурса.
*/
val meta: FMPResource.Meta = resource.getMeta().result
val lifetime: String? = meta.lifetime // Получить время жизни кэша ресурса.
//sampleEnd
}import ru.fsight.fmp.*
fun main() {
//sampleStart
/*
* Пример получения списка таблиц ресурса.
*/
val tables: List<FMPTable> = resource.getTables().result
tables.forEach { it.name } // Получить список названий всех таблиц.
//sampleEnd
}import ru.fsight.fmp.*
fun main() {
//sampleStart
/*
* Пример получения активных транзакций ресурса.
*/
val transactions: List<FMPTransaction> = resource.getTransactions().result
transactions.forEach { it.delete() } // Удалить все существующие транзакции ресурса.
//sampleEnd
}import ru.fsight.fmp.*
fun main() {
//sampleStart
/*
* Пример итерации ресурса в виде JSON.
* Каждая строчка передаётся как один JSON.
*/
val jsons = resource.iterateAsJson(table).result
for (json in jsons) {
// Ваше преобразование в нужные модели.
}
//sampleEnd
}import ru.fsight.fmp.*
fun main() {
//sampleStart
/*
* Пример отправки RPC запроса без загрузки данных.
*/
val rpc: Boolean =
resource.rpc().result // true если параметры отправлены на источник, при этом ответ не записан в кэш.
//sampleEnd
}Types
Требуемые параметры: name.
Фильтрация по колонке. Будут загружены только те строки, значения колонок которых совпадают с указанными.
Ограничить получаемое число строк.
Сортировка по колонкам.
Пропустить указанное число строк.
Фильтрация по таблице. Будет загружена только требуемая таблица из всего ресурса.
Метаданные ресурса.
Properties
База данных для кэша ресурса.
Флаг использования кэша по параметрам. Включение данного флага переименовывает ресурс и его таблицы в формат "$resource_$paramsHash_$table", где paramsHash - sha1 хэш от параметров.
Флаг использования механизма докачки.
Functions
Загрузить и закэшировать ресурс.
Метаданные ресурса на сервере.
Получить список существующих транзакций.
Прочитать локальный кэш ресурса как json.