# Google BigQuery

**URL:** <https://discourse.julialang.org/t/google-bigquery/99684>\
**Category:** Data\
**Created:** [May 31, 2023, 5:49pm UTC](https://discourse.julialang.org/t/google-bigquery/99684 "2023-05-31T17:49:34Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![A\_M](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/a_m/32/46038_2.png) [@A\_M](https://discourse.julialang.org/u/A_M)\
**Post date:** [May 31, 2023, 5:49pm UTC](https://discourse.julialang.org/t/google-bigquery/99684/1 "2023-05-31T17:49:34Z")

</div>

I am trying to use GCP.jl to query data from BQ table, but when I tried to install it. I got this error. Any idea how to fix it?

```julia
   Resolving package versions...
ERROR: Unsatisfiable requirements detected for package GCP [5a343a44]:
 GCP [5a343a44] log:
 ├─possible versions are: 0.1.0-0.1.2 or uninstalled
 ├─restricted to versions * by an explicit requirement, leaving only versions: 0.1.0-0.1.2
 └─restricted by compatibility requirements with DataFrames [a93c6f00] to versions: uninstalled — no versions left
   └─DataFrames [a93c6f00] log:
     ├─possible versions are: 0.11.7-1.5.0 or uninstalled
     ├─restricted to versions * by an explicit requirement, leaving only versions: 0.11.7-1.5.0
     ├─restricted by compatibility requirements with DataFramesMeta [1313f7d8] to versions: 0.13.0-1.5.0
     │ └─DataFramesMeta [1313f7d8] log:
     │ ├─possible versions are: 0.4.0-0.14.0 or uninstalled
     │ ├─restricted to versions * by an explicit requirement, leaving only versions: 0.4.0-0.14.0
     │ └─restricted by compatibility requirements with DataFrames [a93c6f00] to versions: 0.6.0-0.14.0 or uninstalled, leaving only versions: 0.6.0-0.14.0
     │ └─DataFrames [a93c6f00] log: see above
     └─restricted by compatibility requirements with PowerSystemCaseBuilder [f00506e0] to versions: 0.22.0-1.5.0
       └─PowerSystemCaseBuilder [f00506e0] log:
         ├─possible versions are: 0.1.0-1.0.5 or uninstalled
         └─restricted to versions * by an explicit requirement, leaving only versions: 0.1.0-1.0.5

```

---

<div class="post-metadata">

**Author:** ![nilshg](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nilshg/32/2283_2.png) [@nilshg](https://discourse.julialang.org/u/nilshg)\
**Post date:** [May 31, 2023, 6:00pm UTC](https://discourse.julialang.org/t/google-bigquery/99684/2 "2023-05-31T18:00:34Z")

</div>

GCP.jl hasn’t been touched in 3 years and doesn’t provide compat bounds on its dependencies (including DataFrames).

Maybe you can use

> **[GitHub - JuliaCloud/GoogleCloud.jl: Google Cloud APIs for Julia](https://github.com/JuliaCloud/GoogleCloud.jl)**
>
> Google Cloud APIs for Julia. Contribute to JuliaCloud/GoogleCloud.jl development by creating an account on GitHub.

---

<div class="post-metadata">

**Author:** ![A\_M](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/a_m/32/46038_2.png) [@A\_M](https://discourse.julialang.org/u/A_M)\
**Post date:** [May 31, 2023, 7:04pm UTC](https://discourse.julialang.org/t/google-bigquery/99684/3 "2023-05-31T19:04:09Z")

</div>

Thank you, but I don’t see any support for BQ.

I simply used PyCall and it worked fine.

```julia
using PyCall
bigquery = pyimport("google.cloud.bigquery")
client = bigquery.Client()
query_job = client.query("<My Query>")
rows = query_job.result()
for row in rows
       println(row)
end

```

---

<div class="post-metadata">

**Author:** ![drizk1](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/drizk1/32/208422_2.png) [@drizk1](https://discourse.julialang.org/u/drizk1)\
**Post date:** [May 14, 2024, 10:42pm UTC](https://discourse.julialang.org/t/google-bigquery/99684/4 "2024-05-14T22:42:41Z")

</div>

A little bit late, but with TidierDB.jl, you can now use use sql and query a table via Google Big Query (through Tidier.jl syntax) . (GoogleCloud.jl is the connection backend)

```julia
using TidierDB
user = "path_to_Credentials.json"
project_id = "string"
con = connect(:gbq, user, project_id)

@chain db_table(con, "dataset_name.mtcars") begin
    @filter(!starts_with(Column1, "M"))
    @group_by(cyl)
    @summarize(mpg = mean(mpg))
    @mutate(mpg_squared = mpg^2, 
               mpg_rounded = round(mpg), 
               efficiency = case_when(
                                 mpg >= cyl^2 , "efficient",
                                 mpg < 15.2 , "inefficient",
                                 "moderate"))            
    @filter(efficiency in ("moderate", "efficient"))
    #@show_query
    @collect
end

```

```julia
2×5 DataFrame
 Row │ cyl mpg mpg_squared mpg_rounded efficiency 
     │ Int64 Float64 Float64 Float64 String     
─────┼──────────────────────────────────────────────────────
   1 │ 4 27.3444 747.719 27.0 efficient
   2 │ 6 19.7333 389.404 20.0 moderate

```
