JSONTables.jl: JSON3.jl + Tables.jl

JSONTables.jl

A package that provides a JSON integration with the Tables.jl interface, that is, it provides the jsontable function as a way to treat a JSON object of arrays, or a JSON array of objects, as a Tables.jl-compatible source. This allows, among other things, loading JSON "tabular" data into a DataFrame, or a JuliaDB.jl table, or written out directly as a csv file.

JSONTables.jl also provides two "write" functions, objecttable and arraytable, for taking any Tables.jl-comptabile source (e.g. DataFrame, CSV.File, etc.) and writing the table out either as a JSON object of arrays, or array of objects, respectively.

So in short:

# treat a json object of arrays or array of objects as a "table"
jtable = jsontable(json_source)

# turn json table into DataFrame
df = DataFrame(jtable)

# turn DataFrame back into json object of arrays
objecttable(df)

# turn DataFrame back into json array of objects
arraytable(df)

Download Details:

Author: JuliaData
Source Code: https://github.com/JuliaData/JSONTables.jl 
License: MIT license

#julia #json #table 

What is GEEK

Buddha Community

JSONTables.jl: JSON3.jl + Tables.jl

JSONTables.jl: JSON3.jl + Tables.jl

JSONTables.jl

A package that provides a JSON integration with the Tables.jl interface, that is, it provides the jsontable function as a way to treat a JSON object of arrays, or a JSON array of objects, as a Tables.jl-compatible source. This allows, among other things, loading JSON "tabular" data into a DataFrame, or a JuliaDB.jl table, or written out directly as a csv file.

JSONTables.jl also provides two "write" functions, objecttable and arraytable, for taking any Tables.jl-comptabile source (e.g. DataFrame, CSV.File, etc.) and writing the table out either as a JSON object of arrays, or array of objects, respectively.

So in short:

# treat a json object of arrays or array of objects as a "table"
jtable = jsontable(json_source)

# turn json table into DataFrame
df = DataFrame(jtable)

# turn DataFrame back into json object of arrays
objecttable(df)

# turn DataFrame back into json array of objects
arraytable(df)

Download Details:

Author: JuliaData
Source Code: https://github.com/JuliaData/JSONTables.jl 
License: MIT license

#julia #json #table 

Fredy  Larson

Fredy Larson

1595209620

How to alter tables in production when records are in millions

As a developer, I have experienced changes in app when it is in production and the records have grown up to millions. In this specific case if you want to alter a column using simple migrations that will not work because of the following reasons:

It is not so easy if your production servers are under heavy load and the database tables have 100 million rows. Because such a migration will run for some seconds or even minutes and the database table can be locked for this time period – a no-go on a zero-downtime environment.

In this specific case you can use MySQL’s algorithms: Online DDL operations. That’s how you can do it in Laravel.

First of all create migration. For example I want to modify a column’s name the traditional migration will be:

Schema::table('users', function (Blueprint $table) {
            $table->renameColumn('name', 'first_name');
        });

Run the following command php artisan migrate –pretend this command will not run the migration rather it will print out it’s raw sql:

ALTER TABLE users CHANGE name first_name VARCHAR(191) NOT NULL

Copy that raw sql, remove following code:

Schema::table('users', function (Blueprint $table) {
            $table->renameColumn('name', 'first_name');
        });

Replace it with following in migrations up method:

\DB::statement('ALTER TABLE users CHANGE name first_name VARCHAR(191) NOT NULL');

Add desired algorithm, in my case query will look like this:

\DB::statement('ALTER TABLE users CHANGE name first_name VARCHAR(191) NOT NULL, ALGORITHM=INPLACE, LOCK=NONE;');

#laravel #mysql #php #alter heavy tables in production laravel #alter table in production laravel #alter tables with million of records in laravel #how to alter heavy table in production laravel #how to alter table in production larave #mysql online ddl operations

Julie  Donnelly

Julie Donnelly

1596495120

Beginner’s Guide to Table Partitioning In PostgreSQL

Table partitioning in SQL, as the name suggests, is a process of dividing large data tables into small manageable parts, such that each part has its own name and characteristics.

Table partitioning helps in significantly improving database server performance as less number of rows have to be read, processed and returned. We can also use partitioning techniques for dividing indexes and index-organized tables.

Table partitioning can be of two types, namely, vertical partitioning or horizontal partitioning. In vertical partitioning, we divide the table column wise. While in horizontal partitioning, we divide the table row wise on the basis of range of values in a certain column.

Syntax and parameters

The basic syntax for partitioning a table using range is as follows :

Main table creation :

CREATE TABLE main_table_name (

column_1 data type,

column_2 data type,

.

.

. ) PARTITION BY RANGE (column_2);

Partition table creation :

CREATE TABLE partition_name

PARTITION OF main_table_name FOR VALUES FROM (start_value) TO (end_value);

The parameters used in the above mentioned syntax are similar to CREATE TABLE statement, except these :

PARTITION BY RANGE (column_2) : column_2 is the field on the basis of which partitions will be created.

partition_name : name of the partition table

FROM (start_value) TO (end_value) : The range of values in column_2, which forms the part of this partition. Note that start_value is inclusive, while end_value is exclusive.

Here is an example to illustrate it further.

Example

Imagine that you are working as a data engineer for an e-com firm that gets a huge number of orders on a daily basis. You usually store data such as order_id, order_at, customer_id etc. in a SQL table called “e-transactions’’. Since, the table has a humongous amount of data in it, the low load speed and high return time etc. have become a problem for data analysts, who use this table for preparing KPIs on a daily basis.

What will you do to improvise this table, so that data analysts can run queries quickly?

A logical step would be partitioning the table into smaller parts. Let’s say we create partitions such that the partition stores data pertaining to specified order dates only. This way, we will have less data in each partition and working on it will be more fun.

We can partition the table using declarative partitioning i.e. by using a PARTITION BY RANGE (column_name) function as shown below.

#postgresql #drop-table #sql #alter-table #table-partitioning

Monty  Boehm

Monty Boehm

1659669720

TableView.jl: A Tables.jl Compatible Table Viewer Based on Ag-grid

TableView

TableView.jl is an ag-grid based table viewer built on WebIO.jl. It can display arbitrarily large tables by lazy-loading additional data when scrolling (this is the default for datasets with more than 10k rows).

demo

Usage

showtable(yourtable) returns a WebIO.Scope which can be displayed with multiple frontends (e.g. IJulia, Blink, Juno...). See the WebIO readme for information on that.

Limitations

When trying to display big tables (>10k rows) we switch to lazy-loading additional rows while scrolling, which disables the filtering/sorting that's possible for smaller datasets. It's possible (but not trivial) to write proper backend support for those operations -- PRs would be very welcome.

ag-grid Enterprise

Setting the AG_GRID_LICENSE_KEY environment variable at build and run time will use the enterprise distribution instead of the normal community distribution.

Author: JuliaComputing
Source Code: https://github.com/JuliaComputing/TableView.jl 
License: View license

#julia #data #web #table 

Monty  Boehm

Monty Boehm

1659641700

Tables.jl: An interface for Tables In Julia

Tables.jl

The Tables.jl package provides simple, yet powerful interface functions for working with all kinds tabular data.

Installation: at the Julia REPL, import Pkg; Pkg.add("Tables")

Maintenance: Tables is maintained collectively by the JuliaData collaborators. Responsiveness to pull requests and issues can vary, depending on the availability of key collaborators.

Documentation

List of packages which support Tables.jl interface can be found in INTEGRATIONS.md.

Additional Resources

Please refer to TableOperations.jl for common table operations (select, filter, transform, map, etc.)

Author: JuliaData
Source Code: https://github.com/JuliaData/Tables.jl 
License: MIT license

#julia #data #interfaces #table